[Java]猜數字遊戲文字版

最近看到幻冽在用Java開發傷心小棧的遊戲,自己也手癢來寫了一個猜數字遊戲。第一次運用物件導向的概念來開發程式,感覺很不習慣,因此剛開始撰寫時還保留過去使用「程序導向」的寫法,後來發現整個專案很不對勁,程式碼重複的地方太多了,因而砍掉重練。弄了兩三天才終於完成了這個好玩又可以鍛鍊腦筋的猜數字遊戲文字版。

猜數字怎麼玩?

猜數字可以算是一種益智類小遊戲,一般兩個人玩。遊戲規則也很簡單,但可以考驗人的耐心和細心。

規則就是玩家兩人中某方(以下以甲方代稱)先在心裡想出一組由四個皆不同的數所組成的四位數字(例如:1234、5678、0653),且每位數的數字範圍都在0到9。而另一方(以下以乙方代稱)則要猜出甲方心裡所想的數字。甲方需以XAYB(例如1A2B)的形式提示乙方猜的答案。XA中的X表示數值正確且位置也正確的數字數量;YB中的Y表示數值正確但位置不正確的數字數量。例如:假設甲方心中的數字為1357,而乙方所猜的數為1234,則甲方要回答提示1A1B給乙方,因為甲方的1與乙方的1位置正確,但甲方的3與乙方的3位置不正確。下面舉個完整的例子↓

假設乙要猜甲的數字,以下是他們的對話內容:
乙:1234
甲:0A0B (此時我們可以確定這個4位數字絕對不會是1、2、3、4所組成。)
乙:5678 (因此繼續猜5678)
甲:0A3B
乙:7865
甲:3A0B
乙:7860
甲:4A0B
直到甲方說出4A0B才算乙方真的猜中甲方的數字!

熟悉猜數字的玩法之後可以考慮互相輪流猜對方的數字。假設甲、乙要互猜數字,以下是他們的對話內容:
甲猜乙:8935
乙提示:0A2B
乙猜甲:0791
甲提示:1A0B
甲猜乙:7489
乙提示:1A0B
乙猜甲:2841
甲提示:1A0B
甲猜乙:3629
乙提示:0A0B
乙猜甲:0346
甲提示:1A1B
甲猜乙:5180
乙提示:2A2B
乙猜甲:0853
甲提示:1A1B
甲猜乙:1580
乙提示:4A0B
甲先猜到乙的數字,所以甲勝利!

猜數字的基本原則就是:使用最少的次數猜中對方的數字。因此慎選自己所猜的數字十分重要,胡亂猜一通也只是徒增加自己的所猜次數而已,絲毫有沒幫助。至於要怎麼猜,其實沒有一定的標準,但是動腦計算是必須的,這部分就給各位看官自行研究囉!

猜數字遊戲文字版

「猜數字遊戲『文字版』」?這是蝦米碗糕啊?顧名思義,就是沒有圖形介面的猜數字遊戲,只可在命令提示字元或是終端機上執行顯示。正因為遊戲只有文字沒有圖片,能大大的節省玩家電腦內的記憶體,所以是個非常人性化的小遊戲。雖然本遊戲只有文字,但卻以對話的方式賦予冰冷的電腦新的生命,玩家可以注意電腦所說的話其實都不完全相同喔!

遊戲特色

  • 只有文字的文字版遊戲,降低執行程式的硬體需求。
  • 提供多種遊戲模式給玩家選擇,看你是要猜電腦所想的數字,還是要讓電腦猜你自己所想的數字,亦或和電腦輪流互猜比賽誰先猜出對方的數字也可以。
  • 擁有強大的說話系統,無聊看看電腦說蠢話也是挺有趣的。
  • 開放Java原始碼,想要修改的自己拿去用。

遊戲畫面

遊戲一開始會先要求使用者玩家輸入大名,盡量別亂輸入無意義的名稱,因為這樣會看起來很蠢。

輸入名稱後會出現遊戲主選單,一共有七項。可以輸入半形數字來選擇使用。

由電腦出題讓使用者猜

在這個模式中,使用者玩家要輸入數字來猜電腦玩家心裡所想的數字,而電腦也會給使用者XAYB的提示。

當使用者玩家讓電腦玩家說出「4A0B」時,遊戲便結束了,最後會顯示出使用者玩家所猜的次數。

接著會出現遊戲結束的訊息,要求使用者輸入Y或N決定是否要繼續遊戲。

由使用者出題讓電腦猜

在這個模式中,使用者玩家必須先在心裡想好一組數字讓電腦玩家來猜,並針對電腦玩家所猜的數字回答XAYB的提示,請注意不要輸入錯誤的提示讓電腦猜不出來,否則會……(有興趣的自己試試)

電腦互猜

在這個模式中,使用者可以看兩位電腦玩家是如何猜對方的數字,可以學習電腦的猜數字方法。

電腦助猜

在這個模式中,使用者玩家可以尋求電腦玩家來幫忙猜數字。使用時機也許是在自己與別人玩猜數字的時候,可以利用這個模式來作弊。

人機大戰

在這個模式中,使用者玩家可以和電腦玩家輪流猜對方的數字,看誰先猜出來。

不下苦功而要贏過電腦是很困難的。

遊戲下載

【軟體名稱】 猜數字遊戲文字版

【軟體下載】 Google協作平台Dropbox (任選一個)

下載下來為「.jar」檔案,需要安裝JRE來執行。有關於JRE的安裝與JAR檔案的開啟方式可以參考這篇

文章分類:Java|標籤:,

迴響已關閉