作業#41 Black Jack 21點 — 撲克牌遊戲

目的:練習做出能夠與電腦對戰的21點撲克牌遊戲

功能

  1. 自選賭注籌碼
  2. 選擇繼續發牌或直接開牌與電腦正面對決
  3. 破產則直接重新開始

自選賭注籌碼

這遊戲不用三百萬美金最少只要10塊就能玩了,一開場還送你1000塊比送你十連抽還划算,總共有三種籌碼最少十塊最多一百塊,用UIStepper控制數量這樣我不用擔心變成負數的,贏錢反而還要被倒扣

computed property

只要需要用到這三種籌碼的數量就從UIStepper取值,然後總數就回傳這三種籌碼數量乘以自己的加總,只要用到total就會自動計算然後回傳給我們使用

UIStepper IBAction

三個stepper都連到同一個IBAction,只要按下去computed property就會回傳給我們使用,所以在IBAction裡寫這樣就可以了

生出52張牌

  1. 先建立一個Card的類別,兩個屬性花色跟A~K的數
  2. 寫一個function利用迴圈生成52張撲克牌,放進Cards的陣列中之後從陣列中抽牌

遊戲功能

extension

將function都寫在extension中,ViewController只負責控制以及使用function

初始化功能

儲存雙方撲克牌的陣列、初始卡牌數量的索引值( 因為一開始會先出現兩張所以是1)、只顯示兩張牌並加入各兩張牌到雙方撲克牌的陣列中,然後顯示兩張卡牌的花色以及數字,其他三張牌先隱藏,輸入籌碼的元件全部歸零

發牌

  1. 先判目前場上張數是否低於五張,是的話就可以繼續發牌,先洗牌在將亂數取得位置的牌放進陣列中,然後顯示取得的牌
  2. 得到牌後開始判斷目前場上的結果

computed property

雙方目前牌的點數的總和,運用computed property,只要需要用到它就會進去目前牌的陣列中取出所有牌做計算

開牌

  1. 如果電腦小於16點再繼續給電腦發牌,如果沒有則繼續發牌給電腦
  2. 用迴圈發牌給電腦,每發一張牌就做確認,電腦是否獲勝或超過21點
  3. 如果電腦超過16點則直接裁定雙方誰大誰小

其他

  1. 玩家一定要出金而且不能超過自己目前所有財產
  2. 判定玩家是否財產歸零,以上發牌開牌最後都有做破產鑑定

遊戲畫面

以上內容參考下方連結:

GitHub連結:

--

--