5

別バージョンのハートゲームの宿題をやっています。プレイヤーが現在手札に持っているすべてのカードを含むリストmycardsが与えられた場合、それはそうです。そして、プレイは潜在的なカードを表す 1 枚のカードです。すべてのカードに HEART( H) または QUEEN OF SPADES( QS) が含まれている場合、True が返されます。

例えば

>>> mycards= ['0H','8H','7H','6H','AH','QS']
>>> play = ['QS']

True を返します

これは私が試したことです

if play[1] == 'H':
    return True
if play == 'QS':
    return True
else:
    return False

しかし、私のコードは、リスト内の 1 つの QS と 1 つの H をチェックするだけだと思います。allQSまたはHのいずれかを含むコードを作成するには?

4

3 に答える 3

2

それはあなたの「宿題」なので、既製のコードを提供するつもりはありません。:)

ループを使用してリストを反復処理します。

例:

for el in mycards:

反復ごとに、2 つの条件のいずれかが真かどうかを確認する必要があります。

if el == 'QS' or el[1] == 'H':

カードがスペードのクイーンまたはハートより上の条件の場合は真になります。あなたが今までそれを手に入れることを願っています。条件が真でない場合は、単純に False を返します。

リスト内のすべての要素がループによってチェックされても False が返されない場合、すべてのカードはスペードのクイーンまたはハートのいずれかです。したがって、ループが終了したら True を返します。

しばらく自分で試してみてください。まだ取得できない場合は、リクエストに応じてコードを投稿します(ただし、試したことを見せてください:p)

編集:試してみたので、コードも投稿しています。

def HorQS(mycards):
    for i in mycards:
        if i != 'QS':
            if i[1] != 'H':
                return False
    return True

print HorQS(['0H','8H','7H','6H','AH','QS'])  # True
print HorQS(['0H','8H','7H','6H','AH','HS'])  # False
print HorQS(['0H','8H','7K','6H','AH','HS'])  # False
于 2013-05-24T06:44:40.227 に答える