【发布时间】:2018-05-12 07:23:43
【问题描述】:
我目前正在编写我的 Programming Fundamentals w/ Python final 项目,这是一个小游戏的集合。我正在尝试制作“高牌”游戏,其中生成 1 和 13 之间的 2 个随机数(52 张牌的面值),然后比较较高的数字并显示获胜者。
我们需要为类和程序代码提供单独的文件。这就是我的班级的样子。
import random
class card:
def __init__(self, value):
self.card_value = value
def deal(self):
numb = random.randrange(1, 13)
def set_value(self, value):
self.card_value = value
def get_value(self):
return self.card_value
def find_face_value(self, numb):
#face = 'test'
print(numb)
if numb == 1:
print("numb == 1")
return 'Ace'
elif numb == 2:
return 'two'
## elif numb == 3:
## face = 'three'
## elif numb == 4:
## face = 'four'
## elif numb == 5:
## face = 'five'
## elif numb == 6:
## face = 'six'
## elif numb == 7:
## face = 'seven'
## elif numb == 8:
## face = 'eight'
## elif numb == 9:
## face = 'nine'
## elif numb == 10:
## face = 'ten'
## elif numb == 11:
## face = 'jack'
## elif numb == 12:
## face = 'queen'
## elif numb == 13:
## face = 'king'
#return face
def __str__(self):
return 'Numeric Value: ' + str(self.card_value)
我已经注释掉了那些(如果 numb == ...)语句 b/c 我正在测试,看看我是否能得到一个正确的回报。 这是我的游戏程序代码。
def high_card():
#player1_card = cardClass.card(random.randrange(1, 13))
player1_card = cardClass.card(1)
player2_card = cardClass.card(2)
card1 = player1_card.find_face_value(player1_card)
#player2_card = cardClass.card(random.randrange(1, 13))
card2 = player2_card.find_face_value(player2_card)
print('Player 1 got', card1, player1_card, '\nPlayer 2 got', card2, player2_card)
这是我在运行 high_card() 函数时收到的输出。
>>> high_card()
Numeric Value: 1
Numeric Value: 2
Player 1 got None Numeric Value: 1
Player 2 got None Numeric Value: 2
我的问题出在输出的最后两行。它应该说“玩家 1 得到了 Ace 数值:1”和“玩家 2 得到了两个数值:2”。我需要在我的类中使用 find_face_value 函数来返回卡片“面”的字符串。相反,Python 正在打印“None”,这意味着我没有在 find_face_value 函数中返回任何内容。我不知道该怎么做才能使它正常工作,非常感谢一些帮助。
【问题讨论】:
标签: python python-3.x class object