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 char[] arr;
8 arr = array();
9 System.out.println(arr);//作弊
10 int[] inp;//声明一个数组
11 int sore=0;
12 while(true) {
13 System.out.println("猜吧");
14 String str = scan.next().toUpperCase();//转化为大写
15 if(str.equals("EXIT")) {
16 System.out.println("下次在来吧");
17 break;
18 }
19 char[] arrs = str.toCharArray();
20 inp = input(arr,arrs);
21 int sum;//声明一个变量sum
22 if(inp[1]==5) {
23 sum = 100*arr.length-sore*10;//计算分数
24 System.out.println("恭喜你答对了");
25 System.out.println("你的总分:"+sum);
26 break;
27 }else {
28 sore++;
29 System.out.println("猜错了");
30 System.out.println("字母对的个数: "+inp[0]+"\t"+"位置对的个数: "+inp[1]);
31 }
32
33
34
35 }
36 scan.close();
37 }
38 /*生成随机字母*/
39 public static char[] array() {
40 char[] arr = new char[5];
41 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字母数组
42 boolean[] bool = new boolean[number.length];
43 int num;
44 for(int i=0;i<arr.length;i++) {//遍历数组
45 do {
46 num = (int)(Math.random()*number.length);//0到26随机生成一个数
47 }while(bool[num]==true);//避免生成的字母重复
48 arr[i] = number[num];
49 bool[num]=true;
50 }
51 return arr;
52 }
53 /*对比,用户输入的和随机生成的进行对比*/
54 public static int[] input(char[] arr,char[] arrs) {
55 int[] inp = new int[2];
56 for(int i=0;i<arr.length;i++) {
57 for(int j=0;j<arrs.length;j++) {
58 if(arr[i]==arrs[j]) {
59 inp[0]++;//字母对
60 if(i==j) {
61 inp[1]++;//位置对
62 }
63 }
64 }
65 }
66 return inp;
67 }
68
69 }