2014-10-02 91 views
0

我正在编写模拟模拟游戏以更好地理解python的基础知识,但是... 它引发了一个跟踪错误。 这将不胜感激,如果你能帮助我解决这个TRACEBACK Python模拟游戏

import random 


def DiceSize(): 
    DieSize= int(input("""Please pick a dice size, 
4 Sides 
6 Sides 
12 Sides""")) 
    if not (DieSize == 4 or DieSize == 6 or DieSize == 12): 
     print("Thats not right!") 
     DiceSize() 
    else: 
     print("You have picked %i" % DieSize) 
     RollDice() 

def RollDice(): 
    if DieSize == 4: 
     min = 1 
     max = 4 
     print("ROLLING") 
     print (random.randint(min, max)) 
     RollAgain() 
    elif DieSize == 6: 
     min = 1 
     max = 6 
     print("ROLLING") 
     print(random.randint(min, max)) 
     RollAgain() 
    else: 
     min = 1 
     max = 12 
     print("ROLLING") 
     print(random.randint(min, max)) 
     RollAgain() 

def RollAgain(): 
    roll_again = input("Do you want to roll again: ").lower() 

    if roll_again == "y": 
       DiceSize() 
    else: 
       print() 

DiceSize() 
+1

您需要关闭所有的(你打开,而且在未来,包含一个回溯 – geoffspear 2014-10-02 18:04:02

+0

如何添加一个Traceback? – MrPenguin 2014-10-02 18:09:16

+0

'print(“你选择了%i”%DieSize)'是一种更简洁的字符串连接方式。检查出 – TehTris 2014-10-02 18:10:29

回答

0

您的问题是,你的arent传递diesize

RollDice(DieSize) 

def RollDice(DieSize): 
+0

现在已经工作了,但是因为我可以向Python解释新的原因,请向我解释为什么这是必要的? – MrPenguin 2014-10-02 18:21:49

+0

由于您正在将参数从一种方法传递到另一种方法,因此将DieSize设置为DiceSize(),但RollDice()没有将该参数传递给它的概念 – gkusner 2014-10-02 18:25:58