作業#41 Black Jack 21點 — 撲克牌遊戲
Published in
Dec 20, 2021
目的:練習做出能夠與電腦對戰的21點撲克牌遊戲
功能
- 自選賭注籌碼
- 選擇繼續發牌或直接開牌與電腦正面對決
- 破產則直接重新開始
自選賭注籌碼
這遊戲不用三百萬美金最少只要10塊就能玩了,一開場還送你1000塊比送你十連抽還划算,總共有三種籌碼最少十塊最多一百塊,用UIStepper控制數量這樣我不用擔心變成負數的,贏錢反而還要被倒扣
computed property
只要需要用到這三種籌碼的數量就從UIStepper取值,然後總數就回傳這三種籌碼數量乘以自己的加總,只要用到total就會自動計算然後回傳給我們使用
UIStepper IBAction
三個stepper都連到同一個IBAction,只要按下去computed property就會回傳給我們使用,所以在IBAction裡寫這樣就可以了
生出52張牌
- 先建立一個Card的類別,兩個屬性花色跟A~K的數
- 寫一個function利用迴圈生成52張撲克牌,放進Cards的陣列中之後從陣列中抽牌
遊戲功能
extension
將function都寫在extension中,ViewController只負責控制以及使用function
初始化功能
儲存雙方撲克牌的陣列、初始卡牌數量的索引值( 因為一開始會先出現兩張所以是1)、只顯示兩張牌並加入各兩張牌到雙方撲克牌的陣列中,然後顯示兩張卡牌的花色以及數字,其他三張牌先隱藏,輸入籌碼的元件全部歸零
發牌
- 先判目前場上張數是否低於五張,是的話就可以繼續發牌,先洗牌在將亂數取得位置的牌放進陣列中,然後顯示取得的牌
- 得到牌後開始判斷目前場上的結果
computed property
雙方目前牌的點數的總和,運用computed property,只要需要用到它就會進去目前牌的陣列中取出所有牌做計算
開牌
- 如果電腦小於16點再繼續給電腦發牌,如果沒有則繼續發牌給電腦
- 用迴圈發牌給電腦,每發一張牌就做確認,電腦是否獲勝或超過21點
- 如果電腦超過16點則直接裁定雙方誰大誰小
其他
- 玩家一定要出金而且不能超過自己目前所有財產
- 判定玩家是否財產歸零,以上發牌開牌最後都有做破產鑑定
遊戲畫面
以上內容參考下方連結:
GitHub連結: