为骰子对象创建一个类,可以随机生成1到6之间的数字并保存文件。
您将需要随机模块和
创建2个骰子对象a和b并将它们的值相加。
以下是规则
Win =总数等于7或11
失去=总数等于2,3或12
再次滚动=总数等于5,6,8,9,10直到7滚动或再次抛出相同的数字。
现在我写的代码:
import random
class Dice:
'''A class that makes Dice'''
number = random.randint(1,6)
a = Dice
b = Dice
result = a.number + b.number
def resultgiver():
if result == '7':
result == '11'
print('You won! You got ' ,result,'.')
elif result == '2':
result == '3'
result == '12'
print('You lost! You got ' ,result,'.')
elif result == '5':
result == '6'
result == '8'
result == '9'
result == '10'
print('Roll again! You got ' ,result,'.')
elif result == '5':
result == '6'
result == '8'
result == '9'
result == '10'
elif result == '7':
result == '11'
resultgiver()
答案 0 :(得分:1)
一些问题:
a = Dice()
和
b = Dice()
result
是一个整数,但所有if语句都会检查它是否等于char。删除数字周围的所有引号
如果结果== 5:
你需要在你的班级中使用一个init,这样你在实例化这个班时总会得到一个不同的数字。
类骰子: '''制作骰子的课程'''
def __init__(self):
self.number = random.randint(1,6)
尝试在结尾处放置一个else以捕获任何非7或5的结果:
elif result == '7':
result == '11'
else:
print "we got here"
我认为您正在尝试使用if语句模拟switch语句。你做的方式不会工作,但试试这个:
def resultgiver():
if result in [7,11]:
print('You won! You got ' ,result,'.')
elif result in [2, 3, 12]:
print('You lost! You got ' ,result,'.')
elif result in [5, 6, 8, 9, 10]:
print('Roll again! You got ' ,result,'.')
else:
print "default case for result =", result
答案 1 :(得分:1)
出了什么问题?没有什么东西在Python中打印
如果结果为7,2或5,则只打印任何内容,并且出于某种原因,如果它是字符串(并且它永远不是字符串,因为您不将其转换为字符串)。您只在全局范围内设置一次结果,因此重新运行该函数不会改变任何内容。
了解功能参数。您希望将数字结果作为参数传递给函数。
答案 2 :(得分:1)
你应该写
if result == 2 or result == 3 or result == 4:
等检查两个或更多条件。 另外a.number总是等于b.number,因为你只为Dice.number分配一次值。 试试这个:
class Dice(random.Random):
def number(self):
return self.randint(1, 6)
a = Dice()
b = Dice()
result = a.number() + b.number()
答案 3 :(得分:1)
答案 4 :(得分:0)
您将字符串与整数进行比较!!
if result == '7':
我想在这段代码中
if result == '7':
result == '11'
print('You won! You got ' ,result,'.')
你想要这样做
if result == 7 or result == 11 :
print('You won! You got ' ,result,'.')