Java猜字符小程序1.0

Java猜字符小程序1.0

import java.util.Scanner;
public class Text {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("GuessingGame>遊戲開始");
		char[] chs= generate();
		System.out.println(chs);
		int score = 0;
		int score1 = 0;
		while (true){
			System.out.println("猜吧");
			String str = scan.next().toUpperCase();
			if(str.equals("EXIT")){
				System.out.println("下次再來吧");
				break;
			}
			char[] input= str.toCharArray();//字符串轉換成字符數組
			int[] result = pk(chs, input);
			if(result[1]==chs.length){
				System.out.println("猜對了");
				score=100;
				System.out.println("字符猜對的個數是:"+result[0]+"個,並且位置猜對的個數是:"+result[1]+"個。"+"本次得分爲:"+score+"分。");
				break;
			}else{
				switch (result[0]) {
				case 1:
					score=10;
					break;
				case 2:
					score=20;
					break;
				case 3:
					score=30;
					break;
				case 4:
					score=40;
					break;
				case 5:
					score=50;
					break;
				default:
					break;
				}
				switch (result[1]) {
				case 1:
					score1=10;
					break;
				case 2:
					score1=20;
					break;
				case 3:
					score1=30;
					break;
				case 4:
					score1=40;
					break;
				case 5:
					score1=50;
					break;
				default:
					break;
				}
				score=score+score1;
				System.out.println("字符猜對的個數是:"+result[0]+"個,並且位置猜對的個數是:"+result[1]+"個。"+"本次得分爲:"+score+"分。");
				
			}
		}	
	}
	public static char[] generate(){
		char[] result = new char [5];
		char[] letters = {'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'};
		boolean[] flags = new boolean[26]; 
		for(int i=0;i<result.length;i++){
			int index = (int)(Math.random()*26);
			while(flags[index]){
				index=(int)(Math.random()*26);
			}
			result[i]=letters[index];
			flags[index] = true;
			result[i]=letters[index];
		}
		return result;
	}
	public static int[] pk(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]++;//用第二個元素代表位置猜對的個數
					}
				}
			}
		}
		return result;		
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章