java學(xué)習(xí)之猜數(shù)字小游戲
今天主要學(xué)習(xí)了一些初級的設(shè)計,完成了這個猜數(shù)字的小游戲,其是也算不上是什么游戲,因為我答案都給出來了。當(dāng)然也是想對代碼更加熟練的操作,讓自己能夠得心應(yīng)手。
這個小程序中讓我花了點時間的主要是那個如何去重的問題,當(dāng)時也是思考良久,后來才考慮到使用死循環(huán)讓隨機數(shù)產(chǎn)生直到不重復(fù)為止,其他感覺也還好。
import java.util.Scanner; public class GuessingGames { public static void main(String[] args) { Scanner in=new Scanner(System.in); char[] chs=generate(); System.out.println(chs); int score=500; while(true) { System.out.println("請猜猜看!"); String str=in.next(); char[] input=str.toCharArray(); //將用戶輸入的字符串轉(zhuǎn)換為數(shù)組 int[] result=compare(chs, input); if (result[1]==chs.length) { System.out.println("恭喜你,猜對了!!!你獲得的分數(shù)為"+score+"猜錯次數(shù)為:"+(500-score)/10); break; }else { System.out.println("字符猜對個數(shù)為:"+result[0]+","+"位置猜對為:"+result[1]); score-=10; } } } // 隨機生成字母 public static char[] generate() { 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' }; char[] chs = new char[5]; char copy; for (int i = 0; i < chs.length; i++) { chs[i] = letters[(int) (Math.random() * 26)]; copy=letters[(int) (Math.random()*26)]; for (int j = 0; j < i; j++) { if (chs[i]==chs[j]) { for(;;) { copy=letters[(int) (Math.random()*26)]; if (chs[i]!=copy) { chs[i]=copy; break; } } } } } return chs; } //完成兩個數(shù)組的對比 public static int[] compare(char[] chs,char[] input) { int[] score=new int[2]; for (int i = 0; i < input.length; i++) { for (int j = 0; j < chs.length; j++) { if (input[i]==chs[j]) { score[0]++; if (i==j) { score[1]++; } break; } } } return score; } }
小編再為大家分享一段代碼:Java控制臺猜數(shù)字小游戲:
import java.util.*; /** *控制臺猜數(shù)字小游戲,系統(tǒng)自動生成范圍為1-100的數(shù)字 *@version 1.0 2018-01-04 *@author jie1024(wechat:wxxueba) */ public class GuessX{ public static void main(String[] args){ Random random = new Random();//創(chuàng)建random int x = random.nextInt(100)+1;//生成一個1-100之間的隨機數(shù) random.nextInt(100)的范圍為0-99,所以+1,范圍為1-100 System.out.println("系統(tǒng)已自動為您生成了一個隨機數(shù)(范圍為1-100),游戲開始!"); System.out.print("猜猜這個數(shù)字是多少吧:"); Scanner in = new Scanner(System.in);//創(chuàng)建scanner int y = in.nextInt(); //輸入數(shù)字 int count = 1; //次數(shù) while(y != x){ count ++; if(y<1 || y>100){ System.out.print("Sorry,你猜的數(shù)字不在范圍之內(nèi)(范圍為1-100),請再重新猜一次吧:"); y = in.nextInt(); } else if (y>x){ System.out.print("Sorry,你輸入的數(shù)字太大了,請再重新猜一次吧:"); y = in.nextInt(); } else if (y<x){ System.out.print("Sorry,你輸入的數(shù)字太小了,請再重新猜一次吧:"); y = in.nextInt(); } } System.out.println("恭喜你,猜對了!你猜的數(shù)字是" + y + "你總共猜了" + count + "次!"); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot集成SSE實現(xiàn)單工通信消息推送流程詳解
SSE簡單的來說就是服務(wù)器主動向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的。SSE適用于消息推送,監(jiān)控等只需要服務(wù)器推送數(shù)據(jù)的場景中,下面是使用Spring Boot來實現(xiàn)一個簡單的模擬向前端推動進度數(shù)據(jù),前端頁面接受后展示進度條2022-11-11RabbitMQ排他性隊列Exclusive Queue詳解
這篇文章主要介紹了RabbitMQ排他性隊列Exclusive Queue詳解,如果你想創(chuàng)建一個只有自己可見的隊列,即不允許其它用戶訪問,RabbitMQ允許你將一個Queue聲明成為排他性的Exclusive Queue,需要的朋友可以參考下2023-08-08SpringCloud OpenFeign超詳細講解模板化遠程通信的實現(xiàn)
這篇文章主要介紹了SpringCloudSpringboot集成OpenFeign實現(xiàn)模板化遠程通信,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2022-07-07Java Druid連接池與Apache的DBUtils使用教程
這篇文章主要介紹了Java Druid連接池與Apache的DBUtils使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-12-12