我在做纸牌游戏。
该类称为Card
:
它可以使用deal()
方法提供随机值,以显示数字1-13中的随机卡
另一个文件将导入包含Class Card的文件名。它会将该类调用5次,并能够通过将其附加到列表中并将其显示在名为display_hand
这是类文件:
import random
class Card:
def __init__(self):
self.__value = 0
def deal(self):
self.__value = random.randint(1, 13)
def set_value(self, value):
self.__value = value
def get_value(self):
return self.__value
def find_face_value(self):
faces = ['Joker','Ace','Two','Three','Four','Five','Six',
'Seven','Eight','Nine','Ten','Jack','Queen','King']
return faces[self.__value]
def __str__(self):
return self.find_face_value()
程序太大,所以这是调用函数5次的def:
def deal_hand():
# Create an empty list to append the cards.
hand = []
deal_hand = classcard3.Card()
for i in range(1, 6):
deal_hand = classcard3.Card()
deal_hand.deal()
# Create a new object in memory and assign it to the
# hand variable
w = classcard3.Card(deal_hand)
# add it to the list
hand.append(w)
return hand
这是显示功能:
def display_hand(hand):
print ("The 5-card hand is: ")
for item in hand:
print(hand)
除了循环内的打印外,没有显示任何内容。如何将其传递到显示屏上以显示卡片? 这是我在循环中使用print函数时唯一显示的内容。我想在外面使用它,我不知道我做错了什么。如果我不能解释得太好,我很抱歉。我是python的初学者,也是这个网站的新手。谢谢
deal Four
deal Three
deal Five
deal Six
deal Queen
我从中得到的唯一错误是:
line 274, in deal_hand
w = classcard3.Card(deal_hand)
TypeError: __init__() takes 1 positional argument but 2 were given
这没有意义,因为我正如书中所说,并且不愿意显示价值