2016-07-10 2 views
0

여기까지입니다 ... 모듈을 실행하고 단순히 주사위를 무한정 반복하는 것을 반복하면됩니다. 도움?"while"루프를 사용하여 Cant가 반복하는 프로그램을 멈추십시오 ... Python

answer=input("Would you like to play? Answer Y/N: ") 

while answer == "Y" or answer == "y" or answer == "yes": 
    import random 
    die=random.randint(1,6) 

    dieTwo=random.randint(1,6)  

    if die== 1: 
     print("XXXXXXX") 
     print("X  X") 
     print("X O X") 
     print("X  X") 
     print("XXXXXXX") 
     print("You rolled a one...") 
    if die== 2: 
     print("XXXXXXX") 
     print("X O X") 
     print("X  X") 
     print("X O X") 
     print("XXXXXXX") 
     print("You rolled a two...") 
    if die== 3: 
     print("XXXXXXX") 
     print("X O X") 
     print("X O X") 
     print("X O X") 
     print("XXXXXXX") 
     print("You rolled a three...") 
    if die== 4: 
     print("XXXXXXX") 
     print("X O O X") 
     print("X  X") 
     print("X O O X") 
     print("XXXXXXX") 
     print("You rolled a four...") 
    if die== 5: 
     print("XXXXXXX") 
     print("X O O X") 
     print("X O X") 
     print("X O O X") 
     print("XXXXXXX") 
     print("You rolled a five...") 
    if die== 6: 
     print("XXXXXXX") 
     print("X O O X") 
     print("X O O X") 
     print("X O O X") 
     print("XXXXXXX") 
     print("You rolled a six...") 

    if dieTwo==1: 
     print("XXXXXXX") 
     print("X  X") 
     print("X O X") 
     print("X  X") 
     print("XXXXXXX") 
     print("and a one") 
    if dieTwo==2: 
     print("XXXXXXX") 
     print("X O X") 
     print("X  X") 
     print("X O X") 
     print("XXXXXXX") 
     print("and a two") 
    if dieTwo==3: 
     print("XXXXXXX") 
     print("X O X") 
     print("X O X") 
     print("X O X") 
     print("XXXXXXX") 
     print("and a three") 
    if dieTwo==4: 
     print("XXXXXXX") 
     print("X O O X") 
     print("X  X") 
     print("X O O X") 
     print("XXXXXXX") 
     print("and a four") 
    if dieTwo==5: 
     print("XXXXXXX") 
     print("X O O X") 
     print("X O X") 
     print("X O O X") 
     print("XXXXXXX") 
     print("and a five") 
    if dieTwo==6: 
     print("XXXXXXX") 
     print("X O O X") 
     print("X O O X") 
     print("X O O X") 
     print("XXXXXXX") 
     print("and a six") 
print("") 

if answer=="N" or answer=="n" or answer=="no": 
    print("Thank you for playing.") 
+0

예, 완벽하게 프로그래밍 한 내용 ... while 루프에서 answer = input (...)을 움직이면 answer = 'Y'와 같은 초기 조건이 필요합니다. – TocToc

답변

2

왜 이것이 무한 루프가 아니겠습니까? 당신은 당신의 상태를 확인하는 while 루프를 가지고 있고, 당신은 당신은 또한 당신의 주사위를 인쇄하는 기능을 만들 수 answer

을 변경하지 않을, 대신 or을 사용하면 하나의 예로서 answer in ("Y", "y", "yes")을 사용할 수 있기 때문에이 조건이 항상 true가됩니다 당신이 이런 조건을 가진 곳에서 더 간소 해 지길 원한다면.

0

입력 answer을 사용자로부터 한 번만 가져 오는 경우 해당 값은 프로그램 실행 중에 동일하게 유지됩니다. 따라서 'Y' 또는 'y' 또는 'yes'을 전달하면 while 조건부는 항상 True으로 평가됩니다.

반복 할 때마다 입력을받는 것이 좋습니다. 이 같은 뭔가 도움이 될 수 있습니다 :

while 1: 

answer=input("Would you like to play? Answer Y/N: ") 
if answer in ('Y', 'y', 'yes'): 
# play the game 
else: 
# stop the game 

또 다른 제안 : 루프 내부에 가져 오지 마십시오.
모든 가져 오기 명령문을 스크립트 상단에 놓습니다.

해피 코딩!

관련 문제