我知道这可能还不够,但我正在尝试创建一个掷骰子游戏,如果你掷了某个数字,它会添加到另一个变量中,就像游戏中的货币一样。我在关于添加gold的elif语句中不断收到无效语法错误。
import random
num = random.randint(1, 7)
def dice_roll():
gold = 0
if num == 2:
gold = (gold + 2)
gold = gold
print (gold)
print ('You Win!')
else:
print ('Loser')
dice_roll()
我将您的代码封装在一个小类中,并进行了一些更改。我为用户累积的黄金量保留了一个全局计数器
import random
class RollGame:
def __init__(self, gold_increment=2):
self.accumulated_gold = 0
self.gold_increment = gold_increment
def dice_roll(self):
num = random.randint(1, 7)
if num == 2:
self.accumulated_gold = self.accumulated_gold + self.gold_increment
print 'Accumulated Gold: {}'.format(self.accumulated_gold)
print ('You Win!')
else:
print ('Loser')
def play(self):
while True:
choice = raw_input('play? (Y/N) ')
if choice in ['y', 'Y']:
self.dice_roll()
game = RollGame()
game.play()
game_2 = RollGame(gold_increment=9) # if you want gold to increment by 9 each time
示例游戏:
play? (Y/N) y
Loser
play? (Y/N) y
Loser
play? (Y/N) y
Accumulated Gold: 2
You Win!
play? (Y/N) y
Loser