溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2021-09-26 17:57:47 來源:億速云 閱讀:126 作者:小新 欄目:編程語言

這篇文章主要介紹Java如何實(shí)現(xiàn)猜字小游戲,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體代碼如下所示:

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; //猜錯的次數(shù)while(true){ //自造死循環(huán)System.out.println("猜吧!");String str = scan.nextLine().toUpperCase(); //接收用戶輸入的字符串并轉(zhuǎn)換為大寫字母if(str.equals("EXIT")) { //判斷字符串內(nèi)容是否是EXITSystem.out.println("下次再來吧!");break;}char[] input = str.toCharArray(); //將字符串轉(zhuǎn)換為字符數(shù)組int[] result = check(chs,input); //對比:隨機(jī)字符數(shù)組與用戶輸入的字符數(shù)組if(result[0]==chs.length) { //對int score = 100*chs.length-10*count; //1個字符100分,猜錯一次扣10分System.out.println("恭喜你猜對了,得分為:"+score);break; }else { //錯count++; //猜錯次數(shù)增1System.out.println("字符對個數(shù)為:"+result[1]+",位置對個數(shù)為:"+result[0]);}}}//生成隨機(jī)字符數(shù)組chspublic 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對應(yīng)的標(biāo)記為true,表示對應(yīng)字符已經(jīng)使用過,則重新生成index下標(biāo)//下標(biāo)index對應(yīng)的標(biāo)記為false時,表示對應(yīng)字符未用過,則循環(huán)結(jié)束chs[i] = letters[index]; //基于下標(biāo)index獲取對應(yīng)的字符并賦值給chs中的每一個元素flags[index] = true; //將下標(biāo)index對應(yīng)的標(biāo)記修改為true,表示對應(yīng)字符已存過}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* ...*/}//對比:隨機(jī)字符數(shù)組chs與用戶輸入的字符數(shù)組inputpublic static int[] check(char[] chs,char[] input) {int[] result = new int[2]; //對比結(jié)果(0,0)--假設(shè)result[1]為字符對,result[0]為位置對for(int i=0;i<chs.length;i++) { //遍歷隨機(jī)字符數(shù)組for(int j=0;j<input.length;j++) { //遍歷用戶輸入的字符數(shù)組if(chs[i]==input[j]) { //字符對result[1]++; //字符對個數(shù)增1if(i==j) { //位置對result[0]++; //位置對個數(shù)增1}break; //剩余input元素不再參與比較了}}}return result;}}

以上是“Java如何實(shí)現(xiàn)猜字小游戲”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI