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]+" "+"位置对的个数: "+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 }