PROGRAM PYTHON

Pythonスクリプト【トランプの山から全てのカードを人数分配布する】

 

 

全てのカードを人数分配布しよう

前回まではトランプのカードをそれぞれ5枚というように数を決めて配布しました。
今回は53枚全てのカードを3人に配布するプログラムを作ります。
カードの数は53枚なので、2人に18枚、1人に17枚のカードを配布します。

 

ndarrayを通常の配列に変換する

NumPyで作られる配列はndarrayといい、配列の要素の数は同じでなければならず、[[1,2,3],[4,5,6],[7,8]]のような形にはできません。
今回は配列の要素の数が異なるため、NumPyのndarrayをPythonの通常の配列に変換する必要があります。
ndarrayを通常の配列に変換するには、tolist()メソッドを使います。

ndarrayオブジェクト.tolist()

 実行例
■ ndarray配列
>>> np.arange(5)
array([0, 1, 2, 3, 4])
 
■ 通常の配列
>>> np.arange(5).tolist()
[0, 1, 2, 3, 4]

 

トランプの山から全てのカードを配布するプログラム

トランプの山から全てのカードを配布するプログラムは、以下のようになります。
21行目でtolist()メソッドを使って、ndarray配列を通常の配列に変換しています。
24~27行目で残ったカードを取得して、30、31行目で残ったカードを先頭の配列と次の配列に追加しています。

プログラムを実行すると、以下のように山田さんと鈴木さんに18枚、佐藤さんに17枚のカードが配布されます。

 実行例
C:\>python card5-1.py
山田 ['D2', 'S7', 'CJ', 'S6', 'D5', 'D3', 'DQ', 'D8', 'C5', 'D7', 'S8', 'SA', 'SJ', 'SQ', 'HJ', 'SK', 'DT', 'H5']
鈴木 ['DJ', 'S4', 'C7', 'H3', 'D9', 'HK', 'HA', 'H7', 'D6', 'CQ', 'C6', 'C4', 'DA', 'C8', 'DK', 'CT', 'H4', 'ST']
佐藤 ['S5', 'H6', 'H9', 'C9', 'CK', 'HQ', 'H2', 'S3', 'JK', 'CA', 'S2', 'C2', 'H8', 'C3', 'D4', 'S9', 'HT']

 

 

-PROGRAM, PYTHON
-