pythonでブラックジャックを作る

#＜はじめに＞
最近ネットフリックスに加入しました。（３０日間のお試し期間中）洋画は人生でインディージョーンズくらいしか見た事なかったのですが、これを機に***オーシャンズ１３、オーシャンズ１２、オーシャンズ１１***という映画（ハマったので３本ほぼ連続で）を見ました。そこでカジノが出てくるのですがなんとなくブラックジャックでも作ってみようかと思い、今回のプログラミングに至った次第であります。
***※補足***
・オーシャンズシリーズを見ている中で「主人公の相棒的なポジションのこの人かっこいいなぁ～演技うめぇなんていう人なんダロォ」と思っていた人がいたんですが、調べたら***ブラッドピット***と出てきました。前述したように洋画も全く見ず、特に芸能にもあまり興味なく、ブラッドピットという名前しか知らなかった自分に若干引きました。
#今回作成したもの
***ブラックジャックのルール（色々あるようなのですが今回は以下の通りです）***
・ディーラーとプレイヤーの対決。
・ジョーカーを除く52枚のトランプを使用。
・トランプの数を足した合計が21に近いほうの勝利。
・初めにディーラー、プレイヤーに2枚のトランプを配る。この際ディーラーのもつ2枚のうち1枚はプレイヤーには分からないように裏に伏せられている。
・プレイヤーは配られた2枚のトランプを見て、カードを追加するかどうか決める。（何枚でも追加可能）
・プレイヤーのトランプの合計が21を超えるとバーストとなり負けが決まる。
・プレイヤーがカードの追加を止めるとディーラーは伏せられていたカードを表にしその合計を求める。合計が***17以上***になるまでディーラーはカードを引き続ける。
・2～10のカードはその数として扱います。J、Q、Kは10として扱います。***Aは1と11の両方の値を持ち、より強い"手"になるように値をとります。***
#コード全体
```python
import random
available_card = [2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,"J","J","J","J","Q","Q","Q","Q","K","K","K","K","A","A","A","A"]
player_burst = False
dealer_burst = False
check = False
draw = False
dealer_all_card = []
player_all_card = []


def card():
    return random.sample(available_card,1)

def add_dealer_card():
    dealer_all_card.append(selected_dealer_card[0])
def add_player_card():
    player_all_card.append(selected_player_card[0])
    
def change_dealer_card():
    return "".join(map(str,selected_dealer_card))
def change_player_card():
    return "".join(map(str,selected_player_card))

def remove_dealer_card():
    available_card.remove(selected_dealer_card[0])
def remove_player_card():
    available_card.remove(selected_player_card[0])

times = 1
while times < 3:
    selected_dealer_card = card()
    add_dealer_card()
    remove_dealer_card()
    
    selected_player_card = card()
    add_player_card()
    remove_player_card()
    times += 1
    
player_all_card_replace = [10 if i == "J" or i == "Q" or i == "K" else i for i in player_all_card]
player_all_card_replace_replace = [11 if i == "A" else i for i in player_all_card_replace]
player_all_card = player_all_card_replace_replace
player_amount = sum(player_all_card)

print("●ディーラーは"+change_dealer_card()+"と１枚カードを引きました")
print("--------------------------------------------------")
print("〇プレイヤーは"+str(player_all_card[0])+"と"+str(player_all_card[1])+"を引きました")
print("〇プレイヤーの合計は"+str(player_amount)+"です。")
print("--------------------------------------------------")

check = int(input("〇カードを追加しますか？ 0:追加しない 1:追加する    "))
print("--------------------------------------------------")

while check:
    selected_player_card = card()
    add_player_card()
    remove_player_card()
    player_all_card_replace = [10 if i == "J" or i == "Q" or i == "K" else i for i in player_all_card]
    player_all_card_replace_replace = [11 if i == "A" else i for i in player_all_card_replace]
    player_all_card = player_all_card_replace_replace
    player_amount = sum(player_all_card)
    if player_amount > 21 and player_all_card.count(11) != 0:
        player_all_card.remove(11)
        player_all_card.append(1)
    player_amount = sum(player_all_card)
    print("〇プレイヤーはカードを引きました")
    print("〇引いたカードは"+change_player_card()+"でした。")
    print("〇合計は"+str(player_amount)+"です。")
    draw = True
    if player_amount > 21:
        check = False
    if check:
        check = int(input("〇カードを追加しますか？ 0:追加しない 1:追加する    "))
        print("--------------------------------------------------")
if draw:   
    print("〇プレイヤーの合計は"+str(player_amount)+"です。")
    print("--------------------------------------------------")
if player_amount > 21:
    print("〇プレイヤーはバーストしました・・・")
    player_burst = True
    print("--------------------------------------------------")
    
dealer_all_card_replace = [10 if i == "J" or i == "Q" or i == "K" else i for i in dealer_all_card]
dealer_all_card_replace_replace = [11 if i == "A" else i for i in dealer_all_card_replace]
dealer_all_card = dealer_all_card_replace_replace
dealer_amount = sum(dealer_all_card)

dealer_amount = sum(dealer_all_card)
print("●ディーラーが引いていたカードは"+str(dealer_all_card[0])+"と"+str(dealer_all_card[1])+"でした。")
print("●ディーラーの合計は"+str(dealer_amount)+"でした。")
print("--------------------------------------------------")

while dealer_amount < 17:
    selected_dealer_card = card()
    add_dealer_card()
    remove_dealer_card()
    dealer_all_card_replace = [10 if i == "J" or i == "Q" or i == "K" else i for i in dealer_all_card]
    dealer_all_card_replace_replace = [11 if i == "A" else i for i in dealer_all_card_replace]
    dealer_all_card = dealer_all_card_replace_replace
    dealer_amount = sum(dealer_all_card)
    if dealer_amount > 21 and dealer_all_card.count(11) != 0:
        dealer_all_card.remove(11)
        dealer_all_card.append(1)
    dealer_amount = sum(dealer_all_card)
    print("●ディーラーは"+change_dealer_card()+"を引きました。")
    print("●ディーラーの合計は"+str(dealer_amount)+"です。")
    print("--------------------------------------------------")
    
if dealer_amount > 21:
    dealer_burst = True
    print("●ディーラーはバーストしました。")
    print("--------------------------------------------------")

if player_burst:
    print("★ディーラーの勝ちです。")
if not player_burst and not dealer_burst and player_amount < dealer_amount:
    print("★ディーラーの勝ちです。")
if not player_burst and player_amount > dealer_amount:
    print("☆プレイヤーの勝ちです。")
if not player_burst and dealer_burst:
    print("☆プレイヤーの勝ちです。")
if not player_burst and not dealer_burst and player_amount == dealer_amount:
    print("引き分けです。")
```
#補足
Aを1と11の両方の値をとれるようにするのが一番大変だと思います。

```python
player_all_card_replace = [10 if i == "J" or i == "Q" or i == "K" else i for i in player_all_card]
player_all_card_replace_replace = [11 if i == "A" else i for i in player_all_card_replace]
```
上記のようにしてJ、Q、Kを10に、Aを11に変換しています。

もし、持ち札の中に11が含まれていて、かつ合計が21より大きくなってしまったら以下のようにして11を1に変換しています。

```python
if player_amount > 21 and player_all_card.count(11) != 0:
        player_all_card.remove(11)
        player_all_card.append(1)
```

#おわりに
関数の使い方がまだまだ慣れていないなぁと感じました。洋画ってこんなにおもしろいのかと気づかせてくれたブラピありがとう。
コメントお待ちしています。
最後までお読みいただきありがとうございました。