2014-10-02 3 views
0

나는 파이썬의 기초를 더 잘 이해하기 위해 다이 시뮬레이션 게임을 작성하고 있지만, ... Traceback Error가 발생합니다. 이TRACEBACK 파이썬 다이 게임

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

당신은 열려있는 모든을 (폐쇄해야 diesize을 전달합니다. 그리고이 arent이다 미래, 추적을 포함합니다. – geoffspear

+0

트레이스 백을 추가하는 방법은 무엇입니까? – MrPenguin

+0

'print ("% i"% DieSize "를 선택했습니다.)는 문자열 결합에 대한 더 깨끗한 방법입니다. 체크 아웃 – TehTris

답변

0

문제를 해결 나를 도와 수 있다면 그것은 주시면 감사하겠습니다 당신이

RollDice(DieSize) 

def RollDice(DieSize): 
+0

이제는 효과가 있었지만, Python에 익숙하지 않아서 왜 이것이 필요한지 설명해 주실 수 있습니까? – MrPenguin

+0

한 메서드에서 다른 메서드로 매개 변수를 전달하기 때문에 DieSize는 DiceSize()에서 설정되지만 RollDice()는 전달 된 상태로 해당 변수에 대한 개념이 없습니다. – gkusner