generate()方法
package day16;
//猜字符小游戏
public class Guessing {
//主方法
public static void main(String[] args) {
//
char[] chs =generate();
char[] input ={'M','C','Q','D','B'};
int [] result =check(chs,input);
System.out.println(result[1]+","+result[0]);
}
//生成随机字符数组chs
public static char[] generate(){
char [] chs = new char[5];
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 = new boolean[letters.length];//开关数组(与letters对应)
for(int i=0;i<chs.length;i++){//遍历随机数组
int index;
do{
index = (int)(Math.random()*letters.length);//随机下标(0到25)
}while(flags[i]==true);//当下标index对应的开关为true时,代表对应字符已经存过了
//当下标index对应的开关为false时,代表对应字符未存过
chs[i]=letters[index];//基于下标index到lettres中的获取字符兵赋值给chs中的每一个元素
flags[index] = true;//将下标index对应的开关修改为true
}
return chs;
}
//对比:随机字符数组chs于用户输入的字符数组
public static int[] check(char[]chs,char[] input){
int [] result = new int[2];
for(int i=0;i<chs.length;i++){//遍历随机字符数组
for(int j=0;j<input.length;j++){//遍历用户输入数组
if(chs[i]==input[j]){//字符对
result[1]++;//字符对个数增1
if(i==j){//位置对
result[0]++;//位置对个数增1
}
break;//剩余input元素不在参与对比
}
}
}
return result;
}
}
运行结果如下