面向对象1

来源:《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》,上面有从伪码到测试码再到真实码的详细介绍。当然,这个代码本身仅供参考。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容