Java猜数字游戏

[代码] [Java]代码

01 import java.util.Random;
02 import java.util.Scanner;
03  
04 /**
05  * 猜数字游戏
06  */
07 public class Guess {
08  
09     private static Random random = new Random();
10  
11     // 程序入口
12     public static void main(String[] args) {
13         do {
14             playOnce();
15         while (askUser());
16     }
17  
18     /**
19      * 询问用户是否再玩一局
20      *
21      * @return 用户输入"n"则返回 false,否则返回 true
22      */
23     private static boolean askUser() {
24         System.out.print("再玩一局?");
25         Scanner scanner = new Scanner(System.in);
26         return !scanner.nextLine().equals("n");
27     }
28  
29     /**
30      * 玩一局
31      */
32     private static void playOnce() {
33         int number = generate();
34         Counter counter = new Counter();
35  
36         do {
37             // 继续猜
38         while (!guess(counter, number));
39     }
40  
41     /**
42      * 进行一次猜测
43      *
44      * @param counter 次数计数器
45      * @param number  本局机器生成的数字
46      *
47      * @return 用户是否猜中
48      */
49     private static boolean guess(Counter counter, int number) {
50         System.out.print("请输入一个数字(1-100):");
51         Scanner scanner = new Scanner(System.in);
52         int userGuess = scanner.nextInt();
53         counter.incre();
54  
55         if (userGuess < number) {
56             System.out.println("你的数字太小了。");
57             return false;
58         else if (userGuess > number) {
59             System.out.println("你的数字太大了。");
60             return false;
61         else {
62             System.out.println("你猜对了!你一共猜了" + counter.getValue() +"次。");
63             return true;
64         }
65     }
66  
67     /**
68      * 生成一个1-100之间的随机数
69      *
70      * @return 1-100之间的随机数
71      */
72     private static int generate() {
73         return random.nextInt(100) + 1;
74     }
75  
76     ///
77  
78     /**
79      * 计数器
80      */
81     public static class Counter {
82  
83         private int value;
84  
85         public int getValue() {
86             return value;
87         }
88  
89         public void incre() {
90             this.value += 1;
91         }
92     }
93 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值