Java基础语法巩固—猜字符游戏

版权声明:木心 https://blog.csdn.net/sinat_41642067/article/details/84640750

    鉴于不同的高级语言在基础语法规则存在一些细微的差异,因此我们更加应当注重基础语法规则不混淆。通过猜字符游戏可以将Java语法中的基础知识结合起来,因而可以作为一种复习。

    猜字符游戏需求:将系统随机生成的不重复五位字符数组与用户输入(这里由控制台输入)的五位字符数组进行匹配,若答对显示得分,若答错提示匹配字符个数和匹配位置个数。

import java.util.Scanner;
/**猜字符游戏*/
public class GuessingGame {
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		char[]chs=generate();
		System.out.println(chs);//作弊
		int count=0;
		while (true) {
			System.out.println("猜吧");
			String a=scan.nextLine().toUpperCase();
			if (a.equals("X")) {
				System.out.println("下次再來");
				break;
			}
			char[]input=a.toCharArray();
			int[] result=check(chs, input);
			if (result[1]==chs.length) {
				int score=100*chs.length-count*10;
				System.out.println("正确,得分"+score);
				break;
			} else {
				count++;
				System.out.println("猜对了"+result[0]+"个,"+result[1]+"位");
			}
		}
		scan.close();
	}
	/**产生随机字符数组*/
	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[]used=new boolean[letters.length];
		for (int i = 0; i < chs.length; i++) {
			int index;
			do {
				index=(int)(Math.random()*letters.length);

			} while (used[index]==true);
			chs[i]=letters[index];
			used[index]=true;
			/**i=0 0<5 index=0 false chs[0]=letters[0]='A' used[0]=true
			 * i=1 1<5 index=3 false chs[1]=letters[3]='D' used[3]=true
			 * i=2 2<5 index=2 false chs[2]=letters[2]='C' used[2]=true
			 * ......
			 * i=4 4<5 index=0 true
			 *         index=2 true
			 *         index=5 false chs[4]=letters[5]='F' used[5]=true
			 * */
		}
		return chs;
	}

	/**比较用户输入的input字符数组和chs随机字符数组*/
	private 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]++;
					if (i==j) {
						result[1]++;						
					}
					break;
				}	
			}
		}
		return result;
	}
}


          

 

猜你喜欢

转载自blog.csdn.net/sinat_41642067/article/details/84640750