编辑代码

import java.util.*;
import java.util.Random;

/**
 * 猜字游戏!
 * @author Anderson Lee
 *
 */
public class CaiZi {

	public static void main(String[] args) {
		// 第一步:定义一个字符数组存储随机产生的5个字符;
		char[] chs = new char[5];
		//定义得分;
		int score = 0; 
		
		// 第二步:定义一个字符数组letters用来存放24个字符;
		char[] letters = {'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'};
		// 定义一个boolean类型的数组flags与letter数组长度一致,用于去重的作用,boolean数组默认都是false,当循环随机到某一letter值时,flags数组对应的值变成true。
		boolean[] flags = new boolean[letters.length]; 
		
		// 第三步:随机产生5个字符数;
		Random random = new Random();//使用随机函数Random();
		// 使用for循环往逐个将取出来的数组值存入chs数组中,取值范围为chs.length;
		for(int i=0;i<chs.length;i++){
			// 取letters数组随机位置下标;			
			int index ; 
			do{
				index = random.nextInt(letters.length);				
			}while(flags[index] == true);
			// 将随机取出的数组值存入chs数组中;
			chs[i] = letters[index];
			// 标注被取过的数组为true;
			flags[index] = true;
		}		
		// 查看随机取出的数组值的两种方法;
		// 方法1:
		System.out.println(Arrays.toString(chs));
		// 方法2:
		for(char chs1:chs){
			System.out.print(chs1+",");
		}
		
		// 第四步:取用户输入值,并且输入值转化为大写;
		char[] inputStr ;
		// 判断输入的字符刚好等于5个;
		do{
			Scanner key = new Scanner(System.in);
			System.out.println();
			System.out.println("请输入五个字符:");
			// 取字符串,将取值转化为大写字母toUpperCase();
			String str = key.next().toUpperCase();
			// 将字符串转换为字符数组,使用toCharArray()函数;
			inputStr = str.toCharArray();
		}while(inputStr.length!=5);
		System.out.println(Arrays.toString(inputStr));
		
		// 第五步:判断用户输入的字符序列(数值和位置均相同 ),所以需要两个变量分别存储判断字符正确的正确个数及位置正确的个数,这里用数组一起存储。
		int[] result =  new int[2];
		//使用双重for循环,对比随机数组与输入数组;
		for (int i=0;i<inputStr.length;i++){
			for(int j=0;j<chs.length;j++){
				if(chs[i] == inputStr[j]){
					result[0] = result[0] + 1;
					if(i == j){
						result[1] = result[1] + 1;
					}
				}
			}
		}
		score = 50*(result[0] + result[1]);
		System.out.println(Arrays.toString(result));
		System.out.println("输入的序列中有"+result[0]+"个字符正确");
		System.out.println("输入的序列中有"+result[1]+"个位置正确");	
		if(score<500){
			System.out.println("猜字游戏总分500分,本次得分:" + score +"分,加油!");
		}else{
			System.out.println("猜字游戏总分500分,本次得分:" + score +"分,你真厉害!");
		}
		
	}

}