ジョーカーが出るまでカードを配り直そう
今回はトランプの配列にジョーカーを追加して、ジョーカーが出るまでカードの選択を繰り返してみましょう。
ジョーカーが出るまでカードを配り直すプログラム
ジョーカー(JK)が出るまでカードの選択をやり直すために、while文で選択処理をループします。
選択したカードの中にジョーカーがあるかどうかを判定するために、in演算子を使います。
もしジョーカーがなければ、continue文でループの先頭に戻り、あればカードの内容を表示して、ジョーカーが含まれていた人に「HIT!!」の文言を追加しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
### インポート import numpy as np ### カード配列 CARD = ['CA','C2','C3','C4','C5','C6','C7','C8','C9','CT','CJ','CQ','CK', 'DA','D2','D3','D4','D5','D6','D7','D8','D9','DT','DJ','DQ','DK', 'HA','H2','H3','H4','H5','H6','H7','H8','H9','HT','HJ','HQ','HK', 'SA','S2','S3','S4','S5','S6','S7','S8','S9','ST','SJ','SQ','SK', 'JK'] ### ジョーカーが出るまで繰り返す while True: ### カードをランダムで取得 cards = np.random.choice(CARD, [3,5], False) ### 取得した中にジョーカーがあるか確認 if ('JK' in cards) == False: continue ### カードの内容を画面表示 for i,name in enumerate(['山田','鈴木','佐藤']): if ('JK' in cards[i]): print(name, cards[i], 'HIT!!') else: print(name, cards[i]) ### ループ終了 break |
プログラムを実行すると、ジョーカーが選択された人に「HIT!!」が表示されます。
実行例
C:\>python card3-1.py
山田 ['ST' 'D5' 'H7' 'DJ' 'SK']
鈴木 ['CA' 'D2' 'H5' 'C9' 'H9']
佐藤 ['H8' 'S4' 'H3' 'JK' 'C4'] HIT!!