棒打老虎雞吃蟲(iOS 遊戲App)
這個週末完成了一個遊戲App,棒打老虎雞吃蟲,這是源自於某個綜藝節目的趣味遊戲,想知道原本的遊戲規則可以參考:
我是根據這個規則做了些微改變,並以卡牌遊戲的方式呈現。改變以後的規則如下:
- 玩家和電腦各持四張牌,這四張牌分別是棒、老虎、雞、蟲各一張。
- 分四個回合,每回合同時出一張牌,同時亮牌。
- 棒子贏老虎、雞。
- 老虎贏雞、蟲。
- 雞贏蟲。
- 蟲贏棒子。
- 如果雙方同時出一樣的牌,則判定雙方平局。
- 贏一回合得一分,四個回合比完後總分最高者勝利。
為了讓電腦的四張牌能夠以亂數的方式隨機排列出牌的順序,使用了shuffle()這個函數。也就是我先宣告一個字串陣列如下:
var cards = [“棒”, “老虎”, “雞”, “蟲”]
然後在每次viewDidLoad()時執行cards.shuffle()。這樣就能確保每一盤新的遊戲開始時都是像被洗過牌似的,這樣才無法預測電腦的出牌順序。
這個App也應用了Popover,在每一盤遊戲結束時彈出Popover告訴玩家贏或輸。
遊戲執行過程動畫如下:
各個卡牌使用的圖如下:
GitHub網址:
最後要分享的是這個遊戲看似運氣成份為主,但其實策略運用或機率計算在其中也是很重要的。比如當電腦第一張牌出了蟲,就可以確定自己的棒子接下來是獨大的,頂多遇到棒子會平局,所以接下來出棒子得分的機率是很高的。因為這個遊戲每一種牌都只有一張,出去了就沒了,這也說明了資源的有限,必須善加利用。基本上,這和戰國時代孫臏幫田忌賽馬所提出的下駟對上駟,上駟對中駟,中駟對下駟的戰術類似。這裡順便貼上田忌賽馬的典故。
https://read01.com/zh-tw/Kn572L.html#.W13bFC33Wt8
而會在遊戲畫面稱呼電腦為AI是因為我發現雖然電腦是以亂數、隨機的方式出牌,但要贏好像也不是那麼容易,我自己玩了很多次,勝率是不高的,這讓我彷彿感覺到AI的存在。