简单的猜数字(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.");
            }

        }

    }
}

输出:

时间: 2024-10-15 05:16:44

简单的猜数字(JAVA版)的相关文章

简单的猜数字小游戏

/** 简单的猜数字小游戏 要求如下: 用户输入想猜测数字的范围,输入1000则是0~1000之内的数字,程序就会内置一个 1 到 1000 之间的数字作为猜测的结果,由用户猜测此数字,用户每猜测一次,由系统提示猜测结果:大了.小了或者猜对了:直到用户猜对结果,则提示游戏结束.用户可以提前退出游戏,即,游戏过程中,如果用户录入数字0则游戏终止.加入新功能: 记次猜测次数功能,提示游戏开始时间,计猜测总用时功能,提示游戏结束时间 思路:1.用户输入电脑生成的数值取值范围,接收并判断是否是合理数值?

Python实现简单的猜数字游戏

Python实现简单的猜数字游戏,具体如下: 随机生成一个1-10之间的数字,让用户来猜,当猜错时,会提示猜的数字是大还是小了,直到用户猜对为止. import random secret = random.randint(1,10) #print(secret) print('------猜数字游戏!-----') guess = 0 while guess != secret: temp = input('猜数字游戏开始,请输入数字:') guess = int(temp) if guess

【python小练习】简单的猜数字游戏

简单的猜数字游戏 前两天在论坛回答问题时候,看到一个猜数字的游戏,就在原来的基础上改了一下,玩一玩. 此程序,数字范围和尝试次数是事先设定好的,当然可以通过代码修改.经过测试,由于难度过大,我在其中加入的作弊功能,聪明的你一定能发现啦~ 代码思路: 随机生成初始数 random.randint() 循环限制尝试次数 将输入的数与初始数进行比较,并输出比较结果 经过不断尝试,相等后会下载一张暴漫的图片,暴漫的图片分两种 imglist = re.findall('data-original-ima

C++编写的一个简单的猜数字游戏源码

将开发过程比较重要的一些内容段做个记录,下面内容段是关于C++编写的一个简单的猜数字游戏的内容. #include <iostream> #include <string> #include <cstdlib> #include <cctype> #include <ctime> #include <conio.h> using namespace std; int main () { int wins = 0; int losses

用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面: 从这个主界面可以看到,它包含标题,菜单栏,工具栏. 标题是给人一个认识,这是什么游戏,标题设置为:“猜数游戏”: 而菜单栏和工具栏才是游戏的核心,它要保证能够完成游戏的基本功能. 菜单栏和工具栏是对应的,包含了”start“,"help","restart"这三个菜

python写简单的猜数字游戏

最近在学python,学到控制流程要写一个猜数字游戏.不经想起小时候三色台的一个综艺节目,里面也有个猜数字游戏,于是就想写个简单的自己玩玩也好. 规则:[0-100]随机生成一个数字,然后在猜数字,每叫一次数字都是出现一个区间,不断的缩小区间直到猜对正确数字. 刚开始写就想着用赋值的方法解决吧,可变量越来越多,头晕啊!冷静下,仔细想来,其实我要的结果就是区间的不断减小,这就没必要拘束在变量里面了,于是就用了list.list的排序,可变都有助于功能的实现,果然功能就简单的实现了. import 

SWFUpload简单使用样例 Java版(JSP)

SWFUpload官方的样例都是PHP的,在这里提供一个Java版的最简单的使用样例,使用JSP页面完毕全部操作. 实现上传,分为三步: 1.JavaScript设置SWFUpload部分(与官方样例类似): Js代码   var upload; window.onload = function() { upload = new SWFUpload({ // 处理文件上传的url upload_url: "${pageContext.request.contextPath}/swfupload/

用C语言编写的简单的猜数字游戏

#include <stdio.h>#include <time.h>#include <stdlib.h>int main(){          int random = 0;          int input = 0;          int start = 1;          while (start)             {                   printf("*********************\n")

使用python进行简单的猜数字游戏(while循环)

本案例主要是练习while循环,需求:如果给出某人的年龄,让你猜,猜对的话打印出You guess right 如果猜的数字小于真实年龄值,那就打印出Think bigger,如果该数字大于真实年龄值就打印Think smaller :如果不想玩了就按n结束,如果继续就按enter继续 oldboy_age = 56 count = 0 #添加计数器,初始数据为0 while count <3:#当count小于3 的时候执行下面代码     guess_age = int ( input (