-1
私はコンピューターサイエンスのプロジェクトを受けましたが、私は13枚のカードを手に入れる方法が分かりません。ハンドクラスにはメモリエラーがありますが、私は理由を理解できません。それぞれのハンドに13枚のカードを置いていません。ここに私のコードは、これまでのところです:あなたはhandPrinter方法で13枚のトランプカードでハンドを作る方法
result = (self.pop())
を行うと
#Keshav Ramesh
#Project 8
import random
class card:
def __init__(self, suit, value):
self.suit=suit
self.value=value
#methods
def printer(self):
print("{0} {1}".format(self.suit, self.value))
def __lt__(self, other):
if(self.value == other.value):
return self.suit < other.suit
elif (self.value != other.value):
return self.value < other.value
def __gt__(self, other):
return not(self<other)
def __str__(self):
return "Suit: " + str(self.suit) + " value: " + str(self.value)
class deck:
def __init__(self):
self.x=[]
self.load()
random.shuffle(self.x)
def load(self):
for i in range(1, 5):
for j in range(2, 14):
self.x.append(card(i, j))
def deal(self):
return self.x.pop()
p = deck()
class hand:
def __init__(self):
self.x=[]
self.hand_count=0
while len(self.x) != 13:
self.x.append(p.deal())
def accept(self, a):
self.x.append(a)
self.hand_count= self.hand_count + 1
def play(self):
self.hand_count = self.hand_count - 1
return self.x.pop()
def handPrinter(self):
while len(self.x) != 0:
result = (self.pop())
print("{0} {1}".format(result.suit, result.value))
'hand_count'は' len(x) 'と同じように見えますので、' hand_count'を手動で追跡しないことで手間を省くことができます。 'self.x = [p range(13)の_のためのp.deal()]' – Will
を実行することで、 'hand .__ init__'を単純化することができます。これを実行するとエラーは発生しません。エラーが再現されるようにコードを書いてください。 – kabanus
ハンドクラスにはいつカードを追加しようとしますか?私はあなたのコードを取って手をつくり、 'my.accept(p.deal())'を行い、手札にカードを追加しました。 –