/**
* 猜字符游戏 1.设计数据结构
* a.char[] chs;//随机生成的字符数组
* b.char[] input;//用户输入的字符数组
* c.int
* letterRight;//字符对的个数
* D.int positionRight;//位置对的个数
* e.int[] result;//对比的结果
* f.int score;//得分
* g.int count;//猜错的次数
* 2.设计程序结构:
* 方法
* 主方法:main方法
* 随机生成字符数组:public static char generate(){
* char[] chs=new char[5];
*....
* return chs;
* }
*
* 对比随机生成字符数组和用户输入字符数组
* public static int[] check(char[] chs,char[] input) {
* int[] result=new int[2];
* return result;
* }
* 3.设计算法
*
*/
public class Guessing {
//主方法
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
char[] chs=generate();//随机生成字符数组
System.out.println(chs);
int count=0;
while(true) {
System.out.println("请输入您猜的字符:");
String str = scanner.next();
if(str.equal("exit")) {
System.out.println("退出游戏,下次再见!!");
break;
}
char[] input=str.toCharArray();//用户定义的字符数组----str.toCharArray()字符串转换为字符数组
int[] check=check(chs,input);//对比数组方法调用
if((check[0]==5)&&(check[1]==5)) {
System.out.println("恭喜你猜对了,最终得分:"+(500-count*10)+"分");
break;
}else {
count++;
System.out.println("字符对:"+check[0]+"个 "+"位置对:"+check[1]+"个");
}
}
}
//随机生成字符数组
public static char[] generate() {
char[] chs=new char[5];
//算法
for(int i=0;i<chs.length;i++) {
char c=(char)(Math.random()*25+65);//随机生成字符
boolean flag=true;//开关
for(int j=0;j<chs.length;j++) {
if(c==chs[j]) {// A 0 0 0 0
flag=false;
i--;//防止不赋值而造成字符数组元素为空
break;
}
}
if(flag) {
chs[i]=c;//存储字符
}
}
return 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[0]++;//字符比较 加1
if(i==j) {
result[1]++;//位置比较 加1
}
break;//跳出内循环
}
}
}
return result;
}
}
JAVA---猜字游戏
最新推荐文章于 2023-08-01 12:18:48 发布