Java阶段小项目:猜字符游戏终极版本

import java.util.Scanner;
public class GuessingChar {
//主方法
public static void main(String[] args) {

Scanner scan=new Scanner(System.in);
char[] chs=generate();//获取随机字符数组
int count=0;//记录猜错的次数
while(true){//只要没猜对 就一直循环
  System.out.println("猜吧!!!");
  String str=scan.nextLine().toUpperCase();//获取用户收入的字符串,将字符转换成大写
  
  if(str.equals("EXIT")){
    System.out.println("下次再来吧");
    break;
  }
 
  char[] input=str.toCharArray();//将字符串转换成char数组
  int[] result=check(chs,input);//对比字符数组和系统随机数组
  if(result[1]==chs.length){//位置对的个数为5,结束游戏
    int score=100*result[1]-count*10;//猜对了,计算用户得分
    System.out.println("恭喜你猜对了,得分为:"+score);
    break;//猜对了,结束循环
  }else{
    count++;//猜错了,次数加1
    System.out.println("字符对的个数为"+result[0]+",位置对的个数为:"+result[1]);//提示用户猜字符的比较情况
  }
}
 }

//生成随机数组的方法,返回数组
public static char[] generate(){

char [] chs=new char [5];//声明接收5个随机字符的数组
char [] letters={'A','B','C','D','F','E','G','H','I','J','K','L',
    'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};//随机的26个英文字符
boolean [] used=new boolean [letters.length];//使用状态数组,boolean数组默认false
for(int i=0;i

int index;

 do{
     index=(int)(Math.random()*26);//产生0-25随机数,对应数组A-Z字符
 }while(used[index]==true);//判断index是否被使用过
 chs[i]=letters[index];//没被使用则赋值
 used[index]=true;//将使用过的index状态进行修改成不可用
 //通过随机下标来获得随机字符数组
 
 //判断字符状态的第二种方法
 /*if(used[index]==false){
 chs[i]=letters[index];//对字符数组进行赋值
 used[index]=true;
 }else{
   i--;//i会不会等于-1???
   continue;
 }*/    

}

return chs;

}

//对比:随机字符数组chs与用户输入的字符数组intput
public static int[] check(char[] chs,char[] input){

int [] result=new int [2];//result[0]:字符对的个数;result[1]:位置对的个数

for(int i=0;i

}
}

你可能感兴趣的:(小练习)