简单的猜数字(JAVA版)
按书上的样例来操作的。
不过,书上提到的BUG,我没有在看下一章时就解决了哈。。
从网上查找的删除数组元素的方法。
其实,将数据结构更改为ARRAYLIST,可能更简单。:)
GameHelper.java
import java.io.*;
public class GameHelper {
    public String GetUserInput(String prompt) {
        String inputLine = null;
        System.out.println(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;
    }
}
SimpleDotCom.java
public class SimpleDotCom {
    int[] locationCells;
    int numOfHits = 0;
    public void setLocationCells(int[] locs) {
        locationCells = locs;
    }
    public int[] delLocationCells(int eleInt) {
        for(int i = 0; i < locationCells.length; i++) {
            if (eleInt == locationCells[i]) {
                for(int j = i + 1; j < locationCells.length; j ++) {
                    locationCells[i] = locationCells[j];
                }
            }
        }
        return locationCells;
    }
    public String checkYourself(String stringGuess) {
        int guess = Integer.parseInt(stringGuess);
        String result  = "miss";
        for (int cell : locationCells) {
            if (guess == cell) {
                result = "hit";
                numOfHits++;
                delLocationCells(guess);
                break;
            }
        }
        if (numOfHits == locationCells.length) {
            result = "kill";
        }
        System.out.println(result);
        return result;
    }
}
SimpleDotComTestDrive.java
public class SimpleDotComTestDrive {
    public static void main(String[] args) {
        int numOfGuesses = 0;
        GameHelper helper = new GameHelper();
        SimpleDotCom theDotCom = new SimpleDotCom();
        int randomNum = (int) (Math.random() * 5);
        int[] locations = {randomNum, randomNum + 1, randomNum + 2};
        theDotCom.setLocationCells(locations);
        boolean isAlive = true;
        while(isAlive == true) {
            String guess = helper.GetUserInput("Enter a number");
            String result = theDotCom.checkYourself(guess);
            numOfGuesses++;
            if(result.equals("kill")) {
                isAlive = false;
                System.out.println("You took " + numOfGuesses + " guesses.");
            }
        }
    }
}
输出:


简单的猜数字(JAVA版)的更多相关文章
- Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util
		Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util,导入包的方法为,import java.util.*: 完整的实例代码: /* 导入基础工具包 */ import java.uti ... 
- 【python小练习】简单的猜数字游戏
		简单的猜数字游戏 前两天在论坛回答问题时候,看到一个猜数字的游戏,就在原来的基础上改了一下,玩一玩. 此程序,数字范围和尝试次数是事先设定好的,当然可以通过代码修改.经过测试,由于难度过大,我在其中加 ... 
- [Python3 练习] 007 简单的猜数字小游戏
		题目:简单的猜数字小游戏 (1) 描述 程序随机生成一个数字,玩家用键盘输入所猜数字,在规定次数内猜对为胜. (2) 要求 程序随机生成一个 1 到 100 的自然数 有 7 次机会去猜 机会用尽之前 ... 
- 用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
		最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ... 
- SWFUpload简单使用样例 Java版(JSP)
		SWFUpload官方的样例都是PHP的,在这里提供一个Java版的最简单的使用样例,使用JSP页面完毕全部操作. 实现上传,分为三步: 1.JavaScript设置SWFUpload部分(与官方样例 ... 
- 用while循环写一个简单的猜数字游戏
		import random #练习:模拟猜数字的游戏 """ 计算机出一个1~100之间的随机数由人来猜 计算机根据人猜的数字分别给出 大一点/小一点/猜中了 的提示 & ... 
- 简单的猜数字小游戏--Python
		猜数字小游戏: #coding=utf-8 import random answer =random.randint(1,100) #生成随机数 n=int (input("Please ... 
- 基于虹软 2.0  人脸识别猜年龄 java版 demo
		首先感谢虹软,是你们提供这么好的SDK支撑了我们的想象力! 这是一个用javav编写的可视化应用,用户通过自己的脸和计算机进行交互,计算机则通过萌萌女孩的语音和用户对话.核心程序就是利用ArcFace ... 
- python  简单的猜数字游戏
		!/usr/bin/env python --encoding:utf-8-- import random think=random.randint(1,10) print ("...... ... 
随机推荐
- jeecms v7
			http://bbs.jeecms.com/res_base/jeecms_com_bbs/upload/2015_11/jeecmsv7.zip 安装包 http://bbs.jeecms.com/ ... 
- MySQL删除重复记录的方法
			参考网上的方法,总结了产出重复记录的方法,欢迎交流. 参考:http://www.cnblogs.com/nzbbody/p/4470638.html 方法1:创建一个新表临时储存数据 假设我们有一个 ... 
- 利用spring AOP 实现统一校验
			开发环境 JDK: 1.7 spring: 4.0.6 aspect: 1.7.4 应用背景 在APP与后台通讯的过程中,我们一般都会有个authToken的字符串校验,判断那些请求是需要校验用户 ... 
- AS3 Graphics 多次绘制
			AS3中 Sprite和Shape类都持有一个Graphics对象,利用Graphics对象可以方便的利用内置的绘图方法绘制一些简单的图形. 之前在游戏中做新手引导的时候利用显示对象的BlendMod ... 
- 滑动到底部或顶部响应的ScrollView实现
			关于使用可见:滚动到底部或顶部响应的ScrollView使用 示例APK可从这些地址下载:Google Play, 360手机助手, 百度手机助手, 小米应用商店, 豌豆荚 两种实现方式的主要 ... 
- 安全的PHP代码编写准则(转)
			绝不要信任外部数据或输入 关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数据.在采取措施 ... 
- IOS内存等信息
			1. 获取IOS APP占用的内存 #import <mach/mach.h> // ... void report_memory(void) { struct task_basic_in ... 
- jquery在ie浏览器下中文乱码的问题
			用jquery的ajax方法在调用后台数据发现中文乱码,无法解析中文的url,而在别的浏览器下面就不会,如下所示 $.ajax({ type:'get', url:'薛之谦-演员.lrc', asyn ... 
- codevs2034 01串2
			/* 一开始认为是个水题 直接模拟 没想到只得了50分 一看数据吓niao了 模拟妥妥的TLE 实在不好优化了0.0(最快O(m)) 然后借鉴别人的 DP+神奇的输出 DP:状态:f[i][j] 前i ... 
- php创建读取 word.doc文档
			创建文档; <?php $html = "this is question"; for($i=1;$i<=3;$i++){ $word = new word(); $w ... 
