java猜字母游戏
猜字母游戏:用户指定游戏难度(5、7、9),程序生成随机不重复字母。用户猜错,提示用户对的字母数量和对的位置数量。
import java.util.Scanner;
public class GuessWord {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int num;
do{
System.out.println("猜字母游戏,请输入数字设置游戏难度(5、7、9),输入“EXIT”退出");
num=scan.nextInt();
}while(num!=5&&num!=7&&num!=9);//判断输入的难度值
char[] arr=generate(num);
//System.out.println(Arrays.toString(arr)); //生成随机数
int [] result;
do{
String str=scan.next().toUpperCase();//toUpperCase()将小写字母改成大写字母
if(str.equals("EXIT"))
break;
char[] chs=str.toCharArray();//toCharArray()将字符串转换成字符数组
result=check(arr,chs);
if(result[0]==chs.length){
System.out.println("恭喜你猜对了");
}else{
System.out.println("你猜对字母:"+result[1]+"个 猜对位置:"+result[0]+"个");
}
}while(result[0]!=num);
}
//生成随机字母
public static char[] generate(int num){
char[] chs=new char[num];
char[] word=new char[26];
for(int i=0;i
word[i]=(char)(65+i);//赋值 A、B、C、D、、、、
}
boolean[] flags=new boolean[word.length];
for(int i=0;i
int index;
do{
index=(int)(Math.random()*word.length);
if(flags[index]==false){ //如果生成的随机下标数flags[]的值为false,则可以生成word[]中该下标的字母
chs[i]=word[index];
flags[index]=true;
break;
}
}while(flags[index]);
}
return chs;
}
//判断用法输入
public static int[] check(char[] chs ,char[] input){
int result[]=new int[2];
for(int i=0;i
for(int j=0;j
if(chs[i]==input[j]){
result[1]++; //result[1]表示字母对
if(i==j){
result[0]++; //result[0]表示位置对
}
break;
}
}
}
return result;
}
}