黑马程序员技术交流社区

标题: 基础班的一个猜数字游戏自我优化版 [打印本页]

作者: 晓寒轻    时间: 2016-3-2 23:41
标题: 基础班的一个猜数字游戏自我优化版
  1. /*
  2.         完成猜数字小游戏
  3.                 产生一个随机数
  4.                         用到Random类java.util.Random;
  5.                                 Random rm = new Random();
  6.                                 rm.nextInt(max);         方法可以得到[0,max)范围的随机数
  7.                 接收用户通过键盘输入的数字
  8.                         用到Scanner类 java.util.Scanner
  9.                 比较用户输入的数字与之前的随机数(采用if,else和for循环语句)
  10.                         猜对:输出猜对了
  11.                         猜错:
  12.                                 猜大了:输出大了
  13.                                 猜小了:输出小了
  14.                         直到猜对为止
  15.                         限制5次,否则输出失败
  16. */
  17. import java.util.Random;
  18. import java.util.Scanner;

  19. public class GuseeGame {
  20.         public static void main(String[] args) {
  21.                 /*
  22.                         产生随机数
  23.                 */
  24.                 Random rm = new Random();
  25.                 int result = rm.nextInt(100)+1;                //得到[1.100]的随机数
  26.                 /*
  27.                         接收用户通过键盘输入的数字
  28.                 */
  29.                 System.out.println("OK,随机数已经生成");
  30.                 System.out.println("按任意键查看随机数,直接按enter键不看随机数");
  31.                 Scanner sc = new Scanner(System.in);
  32.                 sc.nextLine();
  33.                 //System.out.println(result);
  34.                 //通过for循环不断的判断用户是否输入正确
  35.                 for (int i = 0; i < 5; i++) {
  36.                         System.out.println("请输入数字,范围是1-100");
  37.                         int input = sc.nextInt();                        //得到用户输入的数字
  38.                         //为了更好的用户体验,判断用户输入的数字是否规范,不在范围之内则提示用户
  39.                         while (input>100 || input<1) {
  40.                                 System.out.println("抱歉,您输入的范围不对,应该是1-100之间的数字,包括1和100,请重新输入");
  41.                                 System.out.println();
  42.                                 input = sc.nextInt();
  43.                         }
  44.                         //比较大小并根据不同情况做出不同的输出
  45.                         if (input == result) {
  46.                                 System.out.println("恭喜您,猜对了");
  47.                                 break;
  48.                         } else {
  49.                                 if (i == 4)        {
  50.                                         System.out.println("Game Over ! 你输了!  正确数字是:"+result);
  51.                                         break;
  52.                                 }
  53.                                 if (input > result) {
  54.                                         //为了更好的用户体验,判断用户输入的数字是否规范,不在范围之内则提示用户
  55.                                         while (input>100 || input<1) {
  56.                                         System.out.println("抱歉,您输入的范围不对,应该是1-100之间的数字,包括1和100,请重新输入");
  57.                                         System.out.println();
  58.                                         input = sc.nextInt();
  59.                                 }
  60.                                         System.out.println("猜的大了,请重试,您还有"+(4-i)+"次机会");
  61.                                 } else {
  62.                                         //为了更好的用户体验,判断用户输入的数字是否规范,不在范围之内则提示用户
  63.                                         while (input>100 || input<1) {
  64.                                         System.out.println("抱歉,您输入的范围不对,应该是1-100之间的数字,包括1和100,请重新输入");
  65.                                         System.out.println();
  66.                                         input = sc.nextInt();
  67.                                 }
  68.                                         System.out.println("猜的小了,请重试,您还有"+(4-i)+"次机会");
  69.                                 }
  70.                         }
  71.                 }
  72.         }
  73. }
复制代码





作者: DDK畅    时间: 2016-3-2 23:57
插入System.out.println(rm);  百发百中
作者: 晓寒轻    时间: 2016-3-3 00:10
DDK畅 发表于 2016-3-2 23:57
插入System.out.println(rm);  百发百中

啥?不太明白、、
作者: DDK畅    时间: 2016-3-3 00:16
晓寒轻 发表于 2016-3-3 00:10
啥?不太明白、、

作弊 不会么?插入这条语句的时候 系统生成数字的时候 直接打印出来就能看见系统随机生成的数字  然后输入这个数字 就GG了
作者: 晓寒轻    时间: 2016-3-3 00:20
DDK畅 发表于 2016-3-3 00:16
作弊 不会么?插入这条语句的时候 系统生成数字的时候 直接打印出来就能看见系统随机生成的数字  然后输 ...

//System.out.println(result);
这个啊,这个我把它注释了,本来想实现个功能让用户选择是否查看生成的随机数的、后来过去了就没再去写。。。嘿嘿、




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2