小城盱眙网

标题: Java课程有趣案例:如何用java实现简单的猜数字游戏 [打印本页]

作者: ohnoma    时间: 2016-6-17 16:53
标题: Java课程有趣案例:如何用java实现简单的猜数字游戏
猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏。一般由两个人或多人玩,也可以由一个人和电脑玩。
游戏规则
通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4个数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
如正确答案为 5234,而猜的人猜 5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B。
接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为止。
猜数字游戏通常设有猜测次数的上限。根据计算机测算,如果采用严谨的猜测策略,任何数字最多7次就可猜出(即达到 4A0B)。值得注意的是,在有些地方把次数上限定义为最多几次猜测以后就可以肯定数字是几,但这时或还需要再猜一次才能得到 4A0B 的结果。
标准的猜数字游戏由10个数码(0-9)和4个数位组成。可以通过变化数码或数位来丰富游戏。例如,可以使用9个数码玩4个数位的游戏。
那么你知道如何用java来实现简单的猜数字游戏呢,今天甲骨文OAEC就来分享这个有趣的java课程案例。分享给大家供大家参考。
代码如下:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
        public static void main(String[]args) {
               // 产生一个随机数
               int number = (int) (Math.random() * 100) + 1;
               // 加入count
               int count = 0;
               // 在这里加入最大值,和最小值
               int max = 100;
               int min = 1;
               while (true) {
                       // 键盘录入数据
                       Scanner sc = new Scanner(System.in);
                       System.out.println("请输入你要猜的数据:(" + min +"~" + max + ")");
                       try {
                               count++;
                               int guessNumber = sc.nextInt();
                               // 判断
                               if (guessNumber > number) {
                                       max = guessNumber;
                                       System.out.println("你猜大了");
                               } else if (guessNumber < number) {
                                       min = guessNumber;
                                       System.out.println("你猜小了");
                               } else {
                                       System.out.println("恭喜你,花了" + count + "次就猜中了");
                                       // 问是否继续
                                       System.out.println("请问还要继续吗?(yes)");
                                       sc = new Scanner(System.in);
                                       String str = sc.nextLine();
                                       if ("yes".equals(str)) {
                                               // 重写赋值随机数
                                               number = (int) (Math.random() * 100) + 1;
                                               count = 0;
                                               max = 100;
                                               min = 1;
                                       } else {
                                               break;
                                       }
                               }
                       } catch (InputMismatchException e) {
                               System.out.println("你输入的数据有误");
                       }
               }
        }
}
如果想要更详细的讲述资料,可以观看我们的免费视频,地址:
http://www.chuanke.com/6764109-175809.html
https://ke.qq.com/course/135821#term_id=100152381
或者直接到腾讯课堂/百度传课搜索海文IT教育,观看更多免费视频。
更多精彩课程尽在上海海文信息技术有限公司
http://www.oracleoaec.net/training/java-web






欢迎光临 小城盱眙网 (http://www.xcxy.net/) Powered by Discuz! X3.2