リストのデータを合算する(ブラックジャックに使用する)

トランプのブラックジャック(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…を切り出します。
 
 
 
 
 
以上
 
 
Python小学館
画像表示の基本設定

# canvasとラベルへのpng画像の表示設定# Tak-2-2-list4a.py 10/22/ …

Python小学館
リストから飛び飛びにデータを取得する

リストや辞書からデータを 飛び飛びに取り出したい時に便利な関数# 偶数のみ取り出す filter、l …

Python別館
Python別館 目次

・Pythonで作成したアプリ関連の記事は「Python別館」に、・widgetやその使用方法・それ …