面向对象1

2016-11-18  本文已影响19人  科学旅行者

来源:《Head First Java》

package games;

public class SimpleDotCom {//仅限于一维空间;
    int[] locationCells;//目标的坐标位置;
    int numOfHits = 0;//目标被击中多少次, 击中一次去掉对应击中的位置, 全部击中则胜利;
    
    public void setLocationCells(int[] location) {
        locationCells = location;//设置目标的坐标集合;
    }
    
    public String checkYourself(String guess) {//检测当前是否被击中;
        int g = Integer.parseInt(guess);//将字符串转换为数字;
        String result = "miss";//最终结果, 初始化为"miss";
        for (int cell : locationCells) {//加强版for循环;
            if (cell == g) {
                result = "hit";//击中;
                ++numOfHits;//当前击中的次数;
                break;//这一轮已经找到被击中的位置;
            }
        }
        if (numOfHits == locationCells.length) {//所有位置均被击中;
            result = "kill";//击沉;
        }
        System.out.println(result);
        return result;
    }
}
package games;

public class SimpleDotComTestDrive {
    public static void main(String[] args) {
        SimpleDotCom dot = new SimpleDotCom();
        int[] local = {2, 3, 4};//假设目标的位置集合;
        dot.setLocationCells(local);
        String userGuess = "2";//假设用户命令攻击的位置;
        dot.checkYourself(userGuess);//检查是否击中;
    }
}

这个测试代码的目的是模拟一个简单的游戏。
游戏假设有一个线性一维空间(数轴),其中有一个目标(它占用了几个位置空间),用户指定攻击位置攻击该目标。如果击中则去掉那个位置(不属于目标),当所有原本属于目标的位置被击中去掉则击沉目标取得胜利。

考虑情况:
类成员变量:代表目标的位置集合,该目标被击中的次数。
类成员方法:设置目标位置的集合的方法,检查是否击中的方法。

推荐看一看《Head First Java》,上面有从伪码到测试码再到真实码的详细介绍。当然,这个代码本身仅供参考。

上一篇 下一篇

猜你喜欢

热点阅读