[代码] [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 | } |