您的位置:首页 > 其它

攻击DotCom小游戏

2015-10-14 22:48 369 查看
许久都没写博客了,些许是前段时间有些懈怠,今天来写博客,想记录下做过的事情,怕以后电脑换了,以前做的小项目也跟着丢了,总结下最近做的一个小游戏:

游戏目的:建立一个7X7的网格,选择其中的连续的三格来作为一个目标,一共有3个目标,对每次的猜数,给一个hit,miss,kill,如果三个目标都杀完了,返回猜测次数,给个分数

游戏核心:类之间的交流 private对属性设置后部分代码的重构 ArrayList的使用

要求:main()作为一个启动程序 基本上所有的代码都放到各类中

一个类里面:属性propety和方法method

property method main 三者居然就构建了java的世界 佩服OO

headfirst中提及极限编程:意在对课题有基本了解后,先写只重功能的测试码,却不去想怎么实现,再去一一写各类,在我写这个游戏时,确也不只一次的先联想到测试码,而后再去想各类的编写,竟是如此自然

注意:这其中却遇到了一个for循环,在逻辑上一定会对res变量赋值,愚蠢的电脑却只有在运行的时候才能知道,可是由于res的赋值在for循环中,因此编译器只能报错

因此如果以后遇到这种情况姑且给变量赋值,因为既然逻辑上会被赋值,想必也会更改他的值,我们就姑且打消编译器的疑虑吧,啊哈哈哈哈

Game类:

package twoClass;
import java.util.*;
import java.io.*;
public class GameHelper {
private static final String alphabet = "abcdefg";
private int gridLength= 7;
private int gridSize = 49;
private int [] grid = new int[gridSize];
private int comCount;

public String getUserInput(String prompt){
String inputLine = null;
System.out.print(prompt + "  ");
try{
BufferedReader is = new BufferedReader(
new InputStreamReader(System.in));
inputLine = is.readLine();
if(inputLine.length() == 0 )    return null;
}catch (IOException e) {
System.out.println("IOException: " + e);
}
return inputLine;
}

public ArrayList<String> placeDotCom(int comSize) {
ArrayList<String> alphaCells = new ArrayList<String>();
String [] alphacoords = new String [comSize];
String temp = null;
int [] coords = new int[comSize];
int attempts = 0;
boolean success = false;
int location = 0;

comCount++;
int incr = 1;
if((comCount % 2) == 1){
incr = gridLength;
}

while( !success & attempts++ < 200 ){
location = (int) (Math.random() * gridSize);
int x = 0;
success = true;
while(success && x<comSize){
if(grid[location] == 0){
coords[x++] = location;
location += incr;
if(location >= gridSize){
success = false;
}
if(x>0 && (location % gridLength == 0)){
success = false;
}
}else{
success = false;
}
}
}

int x = 0;
int row = 0;
int column = 0;

while(x < comSize){
grid[coords[x]] = 1;
row = (int) (coords[x] / gridLength);
column = coords[x] % gridLength;
temp = String.valueOf(alphabet.charAt(column));

alphaCells.add(temp.concat(Integer.toString(row)));
x++;

}

return alphaCells;
}

}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: