C#黑傑克(21點)撲克小遊戲
21點
黑傑克
二十一點
本文為C#控制台應用程式,使用VS2019,.net framework 4.0,本測試程序只考慮一副52張的撲克牌。
黑傑克(21點)遊戲規則如下:
點數計算:每張牌都有點數,2到10的牌的點數就是其牌面的數字;J、Q、K的點數是10分;A有兩種算法,1或者11,如果A算為11時總和大於21,則A算為1。例如(A,8)是19點,(A,7,J)則為18點。
21點一般用到1-8副牌。莊家給每個玩家發兩張明牌,牌面朝上面;給自己發兩張牌,一張牌面朝上(叫明牌),一張牌面朝下(叫暗牌)。大家手中撲克點數的計算是:K、Q、J 和 10 牌都算作 10 點。A 牌既可算作1 點也可算作11 點。如果 A 算為 11 時總和大於 21 ,則 A 算為 1 。其餘所有2 至9 牌均按其原面值計算。首先玩家開始要牌,如果玩家拿到的前兩張牌是一張 A 和一張10點牌,就擁有黑傑克(Blackjack);沒有黑傑克的玩家可以繼續拿牌,可以隨意要多少張。目的是儘量往21點靠,靠得越近越好,最好就是21點了。在要牌的過程中,如果所有的牌加起來超過21點,玩家就輸了——叫爆掉(Bust),遊戲也就結束了。假如玩家沒爆掉,又決定不再要牌了,這時莊家就把他的那張暗牌打開來。一般到17點或17點以上不再拿牌,但也有可能15到16點甚至12到13點就不再拿牌或者18到19點繼續拿牌。假如莊家爆掉了,那他就輸了。假如他沒爆掉,那麼你就與他比點數大小,大為贏。
一、新建控制台程序DemoBlackJack。注意選擇.net framework版本為4.0。
二、新建公共類 CommonUtil.cs,輸入代碼:
三、新建玩家類:Player.cs,代碼如下:
四、新建撲克流程邏輯類:BlackjackUtil.cs,輸入代碼:
Console.WriteLine(); Console.WriteLine("玩家隨機獲取兩張撲克牌..."); DealCard(player); DealCard(player); Console.WriteLine(player);
Console.WriteLine(); Console.WriteLine("此時,系統雙方點數情況..."); Console.WriteLine(dealer); Console.WriteLine(player); } }
///