1 package MonkeyGuess;
2 import java.util.Scanner;
3 public class Guess {
4
5 public static void main(String[] args) {
6 Scanner scan = new Scanner(System.in);
7 System.out.println("请现在难度:5、7、9 三个等级中的一个");
8 int cou = scan.nextInt();
9
10 char[] arr;
11 arr = array(cou);
12 System.out.println(arr);//作弊
13 int[] inp;//声明一个数组
14 int sore=0;
15 while(true) {
16 System.out.println("猜吧");
17 String str = scan.next().toUpperCase();//转化为大写
18 if(str.equals("EXIT")) {
19 System.out.println("下次在来吧");
20 break;
21 }
22 char[] arrs = str.toCharArray();
23 inp = input(arr,arrs);
24 int sum;//声明一个变量sum
25 if(inp[1]==5) {
26 sum = 100*arr.length-sore*10;//计算分数
27 System.out.println("恭喜你答对了");
28 System.out.println("你的总分:"+sum);
29 break;
30 }else {
31 sore++;
32 System.out.println("猜错了");
33 System.out.println("字母对的个数: "+inp[0]+"\t"+"位置对的个数: "+inp[1]);
34 }
35
36
37
38 }
39 scan.close();
40 }
41 /*生成随机字母*/
42 public static char[] array(int count) {
43
44 char[] arr = new char[count];
45 char[] number = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};//创建一个26字母数组
46 boolean[] bool = new boolean[number.length];
47 int num;
48 for(int i=0;i<arr.length;i++) {//遍历数组
49 do {
50 num = (int)(Math.random()*number.length);//0到26随机生成一个数
51 }while(bool[num]==true);//避免生成的字母重复
52 arr[i] = number[num];
53 bool[num]=true;
54 }
55 return arr;
56 }
57 /*对比,用户输入的和随机生成的进行对比*/
58 public static int[] input(char[] arr,char[] arrs) {
59 int[] inp = new int[2];
60 for(int i=0;i<arr.length;i++) {
61 for(int j=0;j<arrs.length;j++) {
62 if(arr[i]==arrs[j]) {
63 inp[0]++;//字母对
64 if(i==j) {
65 inp[1]++;//位置对
66 }
67 }
68 }
69 }
70 return inp;
71 }
72
73 }