トランプのブラックジャック(BJ)を作るための準備として、点数計算用の関数を作ります。
BJはdealerとplayerにまず2枚ずつカードが配られます。 点数計算に便利なように画像のfile名を使います。
そのカードは♥3、♦2、♠K、♧9とすると、リストには[3, 2, 13, 9]と格納されています。
カードの種類(suitと云います)は点数計算には関係ありません。 絵札は別関数でAは1か 11、J~Kは10と変換されます。
❶ リストの数値を合計する
def get_sum(hand):
result = 0
for num in hand:
result += num
return result
deck = [3,2,13,9]
dealer_hand = deck
dealer_sum = get_sum(dealer_hand)
print(dealer_sum) # 27
———————————————-
❷ dealerとplayerの点数を計算する(初歩的なやり方)
def get_sum(hand):
result = 0
for num in hand:
result += num
return result
deck = [3,2,13,9] # 一つ置きに取り出してからaddしたい
dealer_hand = [deck[0], deck[2]]
player_hand = [deck[1], deck[3]]
dealer_sum = get_sum(dealer_hand)
player_sum = get_sum(player_hand)
print(dealer_sum) # 16
print(player_sum) # 11
———————————————–
❸ dealerとplayerの点数を計算する(スマートなやり方)
def get_sum(hand):
result = 0
for num in hand:
result += num
return result
deck = [3,2,13,9,1,4,] # カードを増やしてます
dealer_hand = deck[::2]#奇数番目を一つ置きに
player_hand = deck[1::2]#偶数番目を一つ置きに
dealer_sum = get_sum(dealer_hand)
player_sum = get_sum(player_hand)
print(dealer_sum) # 17
print(player_sum) # 15
❹ 次のような飛び飛びにでも出来ます。
(例1)[1:]、[1::1]は同等で、インデックス1,2,3…を切り出します。
(例2)[1::2]はインデックス1,3,5…を切り出します。
(例3)[1::3]はインデックス1,4,7…を切り出します。
(例2)[1::2]はインデックス1,3,5…を切り出します。
(例3)[1::3]はインデックス1,4,7…を切り出します。
以上