2016-06-25 9 views
1

私はポーカーゲームをパイソンで作ろうとしています。中には、使用済みのカードを別のカード(中古カード)のリストに移動したいと思っています。問題は、私が複写を得ることができる手を印刷するときです。私のソート戦略に何か問題があり、何がわからないのですか?手伝って頂けますか?ポーカーカードゲームのリストを別のものに移動するPython

import random 

deck = ['AS', 'KS', 'QS', 'JS', '10S', '9S', '8S', '7S', '6S', '5S', '4S', '3S', '2S',\ 
     'AD', 'KD', 'QD', 'JD', '10D', '9D', '8D', '7D', '6D', '5D', '4D', '3D', '2D',\ 
     'AC', 'KC', 'QC', 'JC', '10C', '9C', '8C', '7C', '6C', '5C', '4C', '3C', '2C',\ 
     'AH', 'KH', 'QH', 'JH', '10H', '9H', '8H', '7H', '6H', '5H', '4H', '3H', '2H'] 

used = [] 
p1 = [] 
p2 = [] 
a = 0 

while (a < 2): 
    drawn_card = random.choice(deck) 
    deck.append(drawn_card) 
    deck = [f for f in deck if f not in used] 
    p1.append(drawn_card) 
    a+=1 

答えて

1

はまあランダム選択は、あなたがこのようにすると、ユニークであることが保証されていません。

drawn_card = random.choice(deck) 
.. 
p1.append(drawn_card) 

あなたはいくつかの時間を重複を見ると、いくつかのではないと説明していること(重複を持つことになるかもしれません)。

drawn_cardがのリストの中にであることを確認し、そうでない場合は、追加してください。そうすれば、重複することはありません。コードでは、このようにそれを可能性:

if drawn_card not in p1: 
    p1.append(drawn_card) 

あるいは、ロリー・Daultonが言ったように:

あなたが許可されている場合は、そのリストから連続した項目を削除し、その後、全体のデッキをシャッフルすることができます。

+0

@RoryDaulton良いアイデア、更新されました!今はいいですか? :) – gsamaras

+1

@gsamaras素晴らしい!これは私の問題を解決しました:) – mariostoev

+0

はい、それは良いですが、私の名前を含める必要はありませんでした。とにかく、あなたは私のアップヴォートを手に入れます。 –

関連する問題