java_猜字母游戏

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.length;i++){
				word[i]=(char)(65+i);//赋值 A、B、C、D、、、、
			}
			boolean[] flags=new boolean[word.length];
			for(int i=0;i<chs.length;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<chs.length;i++){
			 for(int j=0;j<input.length;j++){
				 if(chs[i]==input[j]){   
					 result[1]++;   //result[1]表示字母对
					 if(i==j){
						 result[0]++; //result[0]表示位置对
					 }
					 break; 
				 }
			 }
		 }
		 return result;
	 }
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值