Java編程開發(fā)新手學(xué)習(xí):數(shù)組方法的應(yīng)用猜字母游戲

Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。

給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

/*

* 猜字母游戲

* 要求:

* 1,系統(tǒng)隨機生成5個不同的字母

* 2,用戶輸入5個不同的字母去匹配

* 3,輸出結(jié)果包括正確字母個數(shù)和正確位置個數(shù)

* 4,統(tǒng)計得分,總共500分,錯一次扣10分

* 5,輸入EXIT退出游戲

* */

/*

* 分析:

* 數(shù)據(jù)結(jié)構(gòu):

* 采用數(shù)組來存儲字母

* 第一步:產(chǎn)生5個不同的字母

* 用方法實現(xiàn)generate()

* 隨機產(chǎn)生字母的方法Java沒有提供,需要自己設(shè)計:

* 可以隨機產(chǎn)生數(shù)字做數(shù)組的下表。

* 第二步:比較兩個數(shù)組的字母check()

* 判斷字母對的個數(shù)和位置對的個數(shù)

*

* 第三步:main()函數(shù)

* 輸出結(jié)果

* */

package day06;

import java.util.Scanner;

public class Guessing {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner scan = new Scanner(System.in);

System.out.println("游戲開始啦----->ready go......");

char[] chs = generate();

//作弊,提示正確答案

//注意因為"要猜的字母是:"和chs不能寫在同一個輸出語句中

System.out.print("提示:要猜的字母是:");

System.out.println(chs);//專門打印出數(shù)組,Java給出的功能

int count=0;//標(biāo)記猜錯的次數(shù)

while(true){//這里創(chuàng)建while循環(huán)是為了后面break跳出循環(huán),因為是exit就不需要進入循環(huán)了,

//同時猜對了也要跳出,不然就是死循環(huán)了還會讓你繼續(xù)猜

System.out.println("寫出你猜的字母:");

//然后用戶輸入字母

String str = scan.next().toUpperCase();//對輸入的字母不區(qū)分大小寫,因為會轉(zhuǎn)化為大寫

if(str.equals("EXIT")){

System.out.println("歡迎下次再來?。?!");

break;

}

char[] input = str.toCharArray();//轉(zhuǎn)化為數(shù)組

//比較

int[] result = check(chs,input);

System.out.println("字母正確個數(shù)是:"+result[1]);

System.out.println("位置正確個數(shù)是:"+result[0]);

//添加一個得分功能的話上面的代碼需要修改

//判斷猜對了只要是猜對的位置個數(shù)是5就行

if(result[0]==chs.length){

System.out.println("恭喜你猜對了!??!");

int score = chs.length*100-count*10;

System.out.println("你的得分是:"+score);

break;

}

else{

count++;

//System.out.println("你的答案中字母正確個數(shù)為:"+result[1]+",位置正確個數(shù)為:"+result[0]);

}

}

}

/*

*

* */

public static char[] generate(){//看到不是viod就必須有返回

char[] chs = new char[5];

char[] array = 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'};

//int index = (int)(Math.random()*array.length);產(chǎn)生隨機值一定要放在循環(huán)體里面,否則的話可能一直產(chǎn)生某一個值不進入賦值

//int index = (int)(Math.random()*array.length);//一共有26個字母

boolean[] flags = new boolean[array.length];//默認值為false,給array每個元素標(biāo)記

//給chs元素賦值

for(int i=0;i

//chs[i]=array[index];//這里如果就這樣的話會可能產(chǎn)生相同的字母,不符合要求,代碼需要修正,采用標(biāo)記的方法來修正

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

/*

* 給array中每個元素標(biāo)記false,當(dāng)取到了某個字母時候,對其進行標(biāo)記true不再訪問

* 這里要使用到循環(huán),do……while適合在這里,第一遍是必須要走的

* */

int index;//必須聲明

do{

index = (int)(Math.random()*array.length);//一共有26個字母

}while(flags[index]==true);

chs[i]=array[index];

flags[index]=true;

}

return chs;

}

/*

* 比較兩個數(shù)組,采用數(shù)組來獲得結(jié)果

* 比較獲得的結(jié)果有兩個

* 一個是字母相同數(shù)

* 一個是位置相同數(shù)

* 所以采用一個長度為2的數(shù)組來存儲

* */

public static int[] check(char[] chs,char[] input){//看到不是viod就必須有返回

int[] result = new int[2];//默認值result[0]=0,result[1]=0

//result[0]存儲位置相同的個數(shù)result[1]存儲字母相同的個數(shù)

//兩個數(shù)組的每個元素都要比較,從chs的第一個開始逐一跟input的每一個比較,for循環(huán)嵌套

for(int i=0;i

for(int j=0;j

//開始比較

if(chs[i]==input[j]){//找到相同字母,跳出最里面的循環(huán)

result[1]++;

if(i==j){//位置相同

result[0]++;

}

break;

}

}

}

return result;

}

}

程序運行結(jié)果演示

程序運行結(jié)果演示

程序運行結(jié)果演示

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

程序運行結(jié)果演示程序運行結(jié)果演示

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,227評論 0 41
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 2,077評論 0 2
  • 50道經(jīng)典Java編程練習(xí)題,將數(shù)學(xué)思維運用到編程中來。抱歉哈找不到文章的原貼了,有冒犯的麻煩知會聲哈~ 1.指數(shù)...
    OSET我要編程閱讀 7,289評論 0 9
  • 今天用了四年的哆啦A夢的交通卡折成了兩半。本來以為自己會多少有些傷感,結(jié)果實際上我隨手就丟進了衛(wèi)生間的垃圾桶。我認...
    白月明閱讀 191評論 0 0
  • 原文:Thread Stack Fundamentals 介紹 一般特點 Thread協(xié)議棧是可靠,經(jīng)濟高效,低功...
    公子小水閱讀 8,853評論 0 4

友情鏈接更多精彩內(nèi)容