Java实现的猜数字游戏示例

时间:2022-11-19 12:20:42

本文实例讲述了java实现的猜数字游戏。分享给大家供大家参考,具体如下:

这里演示一段java语言猜数字代码,流程如下:

  • 系统随机生成0-9中的不重复四位数字。
  • 然后用户输入四个数字
  • 如果数字对了,位置不对 则显示 nb,n是有几个是位置对的。
  • 如果数字对了,位置也是对的 则显示ma,m代表有几个数字是正确位置上的。

例如:  生成的是0369    用户输入的是0396 则显示2a2b,两个位置是正确并且数字正确的,另外两个是数字正确,位置不正确的。

java代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.example.test;
import java.util.random;
import java.util.scanner;
public class numbercode {
  int[] nums = new int[4];
  int[] inputnumsarray = new int[4];
  int difficultylevel;
  int difficulty;
  int aa = 0;
  int bb = 0;
  string numberstr = "";
  string str = "";
  /**
   * 生成随机数
   */
  public int[] randnums(int n) {
    for (int i = 0; i < nums.length; i++) {
      random ran = new random();
      int a = ran.nextint(10);
      if (i - 1 != -1) {
        for (int j = 0; j < i; j++) {
          if (a == nums[j]) {
            i--;
            break;
          } else {
            nums[i] = a;
          }
        }
      } else {
        nums[i] = a;
      }
    }
    return nums;
  }
  /**
   * 选择游戏难度
   */
  public int selectlevel() {
    // 接受一个数字
    // 1:easy 可以猜12次
    // 2:common 可以猜9次
    // 3:hard 可以猜7次
    @suppresswarnings("resource")
    scanner scan = new scanner(system.in);
    system.out
        .println("请选择难度系数(输入数字),1:easy 可以猜12次;2:common 可以猜9次;3:hard 可以猜7次");
    difficulty = scan.nextint();
    switch (difficulty) {
    case 1:
      difficultylevel = 12;
      break;
    case 2:
      difficultylevel = 9;
      break;
    case 3:
      difficultylevel = 7;
      break;
    default:
      break;
    }
    return difficultylevel;
  }
  /**
   * 接受用户输入的数字
   */
  public int[] inputnums(int n) {
    @suppresswarnings("resource")
    scanner scan = new scanner(system.in);
    int b = scan.nextint();
    for (int i = 0; i < inputnumsarray.length; i++) {
      int c = (int) ((int) b / math.pow(10, 3 - i));
      inputnumsarray[i] = c;
      b = (int) (b - c * math.pow(10, (3 - i)));
    }
    return inputnumsarray;
  }
  /**
   * 数字比对的方法
   */
  public string compare(int[] answer, int[] inputs) {
    for (int i = 0; i < answer.length; i++) {
      if (inputs[i] == answer[i]) {
        aa += 1;
        continue;
      } else {
        for (int j = 0; j < answer.length; j++) {
          if (inputs[i] == answer[j]) {
            bb += 1;
          }
        }
      }
    }
    str = "" + aa + "a " + bb + "b ";
    return str;
  }
  /**
   * 整个游戏过程代码
   */
  public void play() {
    randnums(4);
    for (int i = 0; i < nums.length; i++) {
      numberstr = numberstr + nums[i];
    }
    selectlevel();
    system.out.println("你选择了难度系数:" + difficulty + " 共有:" + difficultylevel
        + "次机会。");
    for (int i = 0; i < difficultylevel; i++) {
      inputnums(4);
      int chancenums = difficultylevel - i - 1;
      compare(nums, inputnumsarray);
      if (aa != 4) {
        if (chancenums == 0) {
          system.out.println("机会用完了,答案是:" + numberstr);
          break;
        } else {
          system.out.println(str + " 你还有" + chancenums + "次机会");
        }
        aa = 0;
        bb = 0;
      } else if (aa == 4) {
        system.out.println("恭喜你,答对了");
        break;
      }
    }
  }
  public static void main(string[] args) {
    numbercode a = new numbercode();
    a.play();
  }
}

运行结果:

请选择难度系数(输入数字),1:easy 可以猜12次;2:common 可以猜9次;3:hard 可以猜7次
1
你选择了难度系数:1 共有:12次机会。
0123
0a 2b  你还有11次机会
2345
2a 0b  你还有10次机会
5678
2a 0b  你还有9次机会
7890
0a 2b  你还有8次机会
2378
恭喜你,答对了

运行效果如下图:

Java实现的猜数字游戏示例

希望本文所述对大家java程序设计有所帮助。

原文链接:https://blog.csdn.net/visiontime/article/details/51776769