求!JAVA 程式..SlotMachine吃角子老虎遊戲機
4.請設計一類別名稱為SlotMachine (好人吃角子老虎)之類別,用來模擬可顯示 3 個數字的吃角子老虎遊戲機,最後要結算其輸贏。
(1)其 2 個實體變數分別為:
整數變數 MAX,用來表示機器可跑出的最大數字;
整數變數 amount,用來表示使用者的代幣點數總額。
(2)SlotMachine 類別中要使用 enum 設計一個使用者自訂的資料型態 RESULT 用來設定使用者玩拉霸的三個可能結果:
贏 (WIN)、平手 (EVEN)、輸 (LOSE)
(3)此類別之建構子需有二整數參數,其內容為:
a. 檢查第 1 個參數的值,如果其值介於 3 至 7 (含 3 及 7) 之間,則將 MAX 設
為該值;否則將 MAX 值設為 7。
b. 檢查第 2 個參數的值,如果其值為正,則將 amount 設為該值;否則將 amount
設為 100。
(4)SlotMachine 類別的方法有 3:
3.1RESULT check( ):此方法需有 3 個整數參數,其內容顯示此 3 隨機整數,並判斷
a、如果 3 個數字完全一樣,傳回 WIN;
b、如果其中 2 個數字一樣,傳回 EVEN;
c、其他狀況,傳回 LOSE;
3.2 slot( ),此方法不須參數,其內容如下:
隨機產生 3 個介於 1到MAX的整數,
呼叫 check( ) 方法,
以 switch檢查傳回結果:
如果是 WIN,將 amount 加 10,顯示
“大贏,加 10 點,目前點數 xx ”;
如果是 EVEN,顯示 “平平,再試”;
如果是 LOSE,將 amount 減 8,顯示
“大輸,減 8 點,目前點數 xx ”;
檢查 check( ) 的結果,直到 WON 或 LOSE 為止,
如果不是 WON 或 LOSE,持續以下縮排程式:
隨機產生 3 個介於 1到MAX的整數,
呼叫 check( ) 方法,
以 if 檢查傳回結果:
如果是 WIN,將 amount 加 5,顯示
“小贏,加 5 點,目前點數 xx ”;
如果是 EVEN,顯示 “平平,再試”,
如果是 LOSE,將 amount 減 4,顯示
“小輸,減 4 點,目前點數 xx ”;
最後問使用者要不要再玩,
如果要的話,呼叫 slot( ) 以開啟下一回合;
如果不要的話,顯示 “最後點數 xx,你贏了 xx 點”
[註:這部份需要你自己想想看要怎麼解決]
3.2main( ),此方法須宣告二個SlotMachine 物件, 第 1 個物件的引數為 3, 100,第 2 個物件引數為 4, 200;並依續呼叫其 slot( ) 方法。
參考畫面:
三數為 3, 3, 3
大贏加 10 點,目前點數 110
要不要再玩?要
三數為 1, 3, 2
大輸,減 8 點,目前點數 102
要不要再玩?要
三數為 1, 1, 2
平平,再試
三數為 1, 2, 2
平平,再試
三數為 2, 1, 3
小輸,減 4 點,目前點數 98
要不要再玩?不要
最後點數 110,你贏了 -2 點 [註:如果輸的話,點數顯示為負值]
第 2 個遊客的部份如同上面,省略
1 則回答
最佳解答
依照你的需求作了一下
程式碼自行下載
http://www.badongo.com/file/11394198
執行結果跟你的差不多
3個數為:1,6,2
平平,再試
要不要再玩?
要
3個數為:3,1,3
大贏,加 10 點,目前點數: 110
要不要再玩?
要
3個數為:6,6,1
大贏,加 10 點,目前點數: 120
要不要再玩?
要
3個數為:4,7,3
平平,再試
要不要再玩?
不要
最後點數 120 你贏了 20點
2008-09-19 18:27:11 補充:
不好意思
之前做的有點小錯誤
後來修正過了
載點如下:
http://www.badongo.com/file/11414655