Java實(shí)現(xiàn)猜字小游戲

猜字游戲是一款益智游戲,喜歡玩具有挑戰(zhàn)性單詞游戲的你就可以來(lái)體驗(yàn)一下了,給你一個(gè)字母板。嘗試通過(guò)想象相鄰字母的單詞。您將獲得一個(gè)分?jǐn)?shù),根據(jù)您使用的字母,你已經(jīng)使用了多少個(gè)字母,并以這些字母相關(guān)聯(lián)的任何修飾符都可以的。

成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專(zhuān)業(yè)提供成都服務(wù)器托管,服務(wù)器租用,西部信息服務(wù)器托管,西部信息服務(wù)器托管,成都多線(xiàn)服務(wù)器托管等服務(wù)器托管服務(wù)。

具體代碼如下所示:

package test07;
import java.util.Scanner;
//猜字符游戲
public class Guessing {
//主方法
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
char[] chs = generate(); //獲取隨機(jī)字符數(shù)組
System.out.println(chs); //作弊
int count = 0; //猜錯(cuò)的次數(shù)
while(true){ //自造死循環(huán)
System.out.println("猜吧!");
String str = scan.nextLine().toUpperCase(); //接收用戶(hù)輸入的字符串并轉(zhuǎn)換為大寫(xiě)字母
if(str.equals("EXIT")) { //判斷字符串內(nèi)容是否是EXIT
System.out.println("下次再來(lái)吧!");
break;
}
char[] input = str.toCharArray(); //將字符串轉(zhuǎn)換為字符數(shù)組
int[] result = check(chs,input); //對(duì)比:隨機(jī)字符數(shù)組與用戶(hù)輸入的字符數(shù)組
if(result[0]==chs.length) { //對(duì)
int score = 100*chs.length-10*count; //1個(gè)字符100分,猜錯(cuò)一次扣10分
System.out.println("恭喜你猜對(duì)了,得分為:"+score);
break; 
}else { //錯(cuò)
count++; //猜錯(cuò)次數(shù)增1
System.out.println("字符對(duì)個(gè)數(shù)為:"+result[1]+",位置對(duì)個(gè)數(shù)為:"+result[0]);
}
}
}
//生成隨機(jī)字符數(shù)組chs
public static char[] generate() {
char[] chs = new char[5]; //隨機(jī)字符數(shù)組
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' }; //隨機(jī)字符范圍數(shù)組
boolean[] flags = new boolean[letters.length]; //標(biāo)記數(shù)組
for(int i=0;i<chs.length;i++) { //遍歷隨機(jī)字符數(shù)組
int index;
do {
index = (int)(Math.random()*letters.length); //隨機(jī)下標(biāo)(0到25之間)
}while(flags[index]==true); //下標(biāo)index對(duì)應(yīng)的標(biāo)記為true,表示對(duì)應(yīng)字符已經(jīng)使用過(guò),則重新生成index下標(biāo)
//下標(biāo)index對(duì)應(yīng)的標(biāo)記為false時(shí),表示對(duì)應(yīng)字符未用過(guò),則循環(huán)結(jié)束
chs[i] = letters[index]; //基于下標(biāo)index獲取對(duì)應(yīng)的字符并賦值給chs中的每一個(gè)元素
flags[index] = true; //將下標(biāo)index對(duì)應(yīng)的標(biāo)記修改為true,表示對(duì)應(yīng)字符已存過(guò)
}
return chs;
/*
* i=0 index=0 chs[0]='A' flags[0]=true
* i=1 index=25 chs[1]='Z' flags[25]=true
* i=2 index=0/25/0/1 chs[2]='B' flags[1]=true
* ...
*/
}
//對(duì)比:隨機(jī)字符數(shù)組chs與用戶(hù)輸入的字符數(shù)組input
public static int[] check(char[] chs,char[] input) {
int[] result = new int[2]; //對(duì)比結(jié)果(0,0)--假設(shè)result[1]為字符對(duì),result[0]為位置對(duì)
for(int i=0;i<chs.length;i++) { //遍歷隨機(jī)字符數(shù)組
for(int j=0;j<input.length;j++) { //遍歷用戶(hù)輸入的字符數(shù)組
if(chs[i]==input[j]) { //字符對(duì)
result[1]++; //字符對(duì)個(gè)數(shù)增1
if(i==j) { //位置對(duì)
result[0]++; //位置對(duì)個(gè)數(shù)增1
}
break; //剩余input元素不再參與比較了
}
}
}
return result;
}
}

總結(jié)

以上所述是小編給大家介紹的Java實(shí)現(xiàn)猜字小游戲,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

網(wǎng)站欄目:Java實(shí)現(xiàn)猜字小游戲
網(wǎng)站URL:http://muchs.cn/article48/joppep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、軟件開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、商城網(wǎng)站、定制網(wǎng)站、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司