PROGRAM PYTHON

Pythonスクリプト【ババ抜きプログラム①】

 

 

隣の人のカードを1枚取り、ペアだったら除外する

前回は3人にカードを配り、配られたカードからペアのカードを除外しました。
今回は隣の人からカードを1枚取り、残った手持ちのカードの中で数字が同じものがあれば除外します。
今回は誰かのカードが無くなったら終了です。

 

カードをやり取りするプログラム

前回のプログラムに、隣の人からカードを引いてそのカードが手持ちのカードと同じ数字であれば除外する処理を追加します。
86行目以降が追加した処理です。

87行目

プログラムを終了するためのフラグを設定します。

90行目

誰かのカードが無くなるまでループします。

93~97行目

カードを引く人を変数i、カードを引かれる人を変数nextとします。

100行目

random.choice()を使って、次の人からカードを1枚取ります。

105行目

append()メソッドを使って、引いた人の配列に引いたカードを追加します。

114~135行目

引いたカードが手持ちのカードと同じ数字かどうかを確認します。
ロジックは51~71行目と同じなので、前回の記事を参照してください。
131~135行目は、130行目でbreakした時に二重ループから抜けるため処理です。

157、158行目

変数end_flg1の場合は、93行目のループから抜けます。
そのあとwhileループに戻りますが、while文の条件が「end_flg == 0」なので、whileループも抜けてプログラムを終了します。

メモ

84行目までは前回と同じなので、詳しくは前回までの記事を参照してください。

プログラムを実行すると、以下のように誰かがクリアすると終了します。

 実行例
C:\>python card7-1.py
### 配布したカード
山田 ['HA', 'SQ', 'D9', 'D4', 'C9', 'D3', 'DA', 'CQ', 'D8', 'HQ', 'C3', 'C4', 'C5', 'S4', 'SA', 'SK', 'H5', 'C7']
鈴木 ['CK', 'D5', 'DJ', 'H6', 'HK', 'H7', 'S6', 'CA', 'HT', 'CT', 'ST', 'H3', 'DT', 'HJ', 'H9', 'S5', 'JK', 'H2']
佐藤 ['CJ', 'SJ', 'H4', 'H8', 'C8', 'DK', 'S9', 'D6', 'D2', 'S7', 'DQ', 'C6', 'C2', 'S8', 'S2', 'S3', 'D7']
 
### ペアのカードを除外
山田 ['D8', 'HQ', 'S4', 'SA', 'SK', 'C7']
鈴木 ['H7', 'CA', 'H3', 'H9', 'JK', 'H2']
佐藤 ['H4', 'DK', 'S9', 'DQ', 'S8', 'S2', 'S3']
 
山田 → 鈴木 ['CA']
 
山田 ['D8', 'HQ', 'S4', 'SK', 'C7']
鈴木 ['H7', 'H3', 'H9', 'JK', 'H2']
佐藤 ['H4', 'DK', 'S9', 'DQ', 'S8', 'S2', 'S3']
 
鈴木 → 佐藤 ['S3']
 
山田 ['D8', 'HQ', 'S4', 'SK', 'C7']
鈴木 ['H7', 'H9', 'JK', 'H2']
佐藤 ['H4', 'DK', 'S9', 'DQ', 'S8', 'S2']
 
佐藤 → 山田 ['HQ']
 
山田 ['D8', 'S4', 'SK', 'C7']
鈴木 ['H7', 'H9', 'JK', 'H2']
佐藤 ['H4', 'DK', 'S9', 'S8', 'S2']
 
山田 → 鈴木 ['H2']
 
山田 ['D8', 'S4', 'SK', 'C7', 'H2']
鈴木 ['H7', 'H9', 'JK']
佐藤 ['H4', 'DK', 'S9', 'S8', 'S2']
 
鈴木 → 佐藤 ['DK']
 
山田 ['D8', 'S4', 'SK', 'C7', 'H2']
鈴木 ['H7', 'H9', 'JK', 'DK']
佐藤 ['H4', 'S9', 'S8', 'S2']
 
佐藤 → 山田 ['S4']
 
山田 ['D8', 'SK', 'C7', 'H2']
鈴木 ['H7', 'H9', 'JK', 'DK']
佐藤 ['S9', 'S8', 'S2']
 
山田 → 鈴木 ['DK']
 
山田 ['D8', 'C7', 'H2']
鈴木 ['H7', 'H9', 'JK']
佐藤 ['S9', 'S8', 'S2']
 
鈴木 → 佐藤 ['S8']
 
山田 ['D8', 'C7', 'H2']
鈴木 ['H7', 'H9', 'JK', 'S8']
佐藤 ['S9', 'S2']
 
佐藤 → 山田 ['H2']
 
山田 ['D8', 'C7']
鈴木 ['H7', 'H9', 'JK', 'S8']
佐藤 ['S9']
 
山田 → 鈴木 ['H7']
 
山田 ['D8']
鈴木 ['H9', 'JK', 'S8']
佐藤 ['S9']
 
鈴木 → 佐藤 ['S9']
 
山田 ['D8']
鈴木 ['JK', 'S8']
佐藤 [CLEAR!!]

カードのやり取り

カード引く人 → カードを引かれる人 [引かれるカード]

 

 

-PROGRAM, PYTHON
-,