用java的一些基礎知識來實作一個簡單的猜字母的小遊戲,就在控制台玩玩,目得也是為了熟悉熟悉java的基礎知識。
首先系統随機産生5個字母,然後我們認為輸入5個字母,輸入的字母和系統随機産生的字母做比較,隻有當5個字母順序完全正确才算猜對。總分為500分,猜錯一次扣10分,輸入“exit”退出遊戲。
代碼如下:
package com.test.basics;
import java.util.Scanner;
public class GuessGame {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
char[] chs = generator();
StringBuffer rand = new StringBuffer();
for(char ch:chs) {
rand.append(ch);
}
System.out.println("随機産生的字元為:"+rand.toString());//作弊,否則不好猜啊
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();
int[] result = check(chs, input);
if(result[0]==input.length) {
int score = 100*input.length-10*count;
System.out.println("恭喜你,猜對了,得分為"+score);
break;
}else {
count++;
System.out.println("本次位置對的字母個數為:"+result[0]+";字母正确的個數為:"+result[1]);
}
}
}
//産生随機字元的方法
public static char[] generator() {
char[] chs = new char[5];
char[] letters = new char[]{ '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[] flags = new boolean[letters.length];
for(int i=0;i
int index;
do {
index = (int)(Math.random()*letters.length);
}while(flags[index]==true);
chs[i] = letters[index];
flags[index] = true;
}
return chs;
}
//随機字元和輸入的字元對比的結果
public static int[] check(char[] chs,char[] input) {
int[] result = new int[2];//result[0]表示位置猜對了,result[1]表示字元猜對了
for(int i=0;i
for(int j=0;j
if(chs[i]==input[j]) {
result[1]++;
if(i==j) {
result[0]++;
}
break;
}
}
}
return result;
}
}