-1

所以我有这个程序,即使用户可以毫无问题地使用它,它也可以(数学上)工作。唯一的问题是,最终当程序要求用户退出或重新启动它时不会!那我怎么重新开始游戏!!!谢谢大家的帮助

print('guess what number im thinking of\n')
Max=int(input('Give us your hights number that your interval can have:')) 
Min=0
print'Now think to a number between 0 and',Max,'once you have chose your numebr'
print'Great !'
print'its your turn to help us,if the number is :Exacte (0),higher(1)or lower(-1)'
milieu=(Max-Min)/2
print int(milieu),'is that the number your thinking of ?'
z=input(str('its important that you only answer by 0, 1 or -1:'))
x=False 
while milieu<Max and x==False: 
    if z==0:                  
        print('We had guess what number you chosed')
        x=True
    while z!=0:   
        if z==1: 
            x=False
            Min=milieu  
            milieu=milieu+((Max-Min)/2)   
            print(int(milieu))
            z=input('its important that you only answer by E, G or P:') 
        if z==-1:
            x=False
            Max=milieu  
            milieu=(milieu-((Max-Min)/2))
            print(int(milieu))
            z=input('its important that you only answer by E, G or P:')
            break
while x==True:
    a=input('[5] to go out game\nor [9] to restart:')
    if a==5: break 
    print ("restart")
    if a==9: 
        x=False
4

2 回答 2

2

1)你从输入函数得到一个字符串,你应该把它转换成一个int。

2)你应该使用一个函数来实现你的目标

def game():
   ... # all the code for your game that you posted

if __name__ == "__main__":
   while True:
     game()
     response = int(raw_input('[5] to go out game\nor [9] to restart:'))
     if response != 9:
       break
于 2014-09-29T00:10:23.440 回答
-1

看起来您的主程序不在 while 循环中。您应该将代码放在一个函数中并在主循环中调用它。此外,在您的主循环中,您正在测试 int 和字符串。请记住“5”!= 5。您可以直接将其转换为 int,或者将其测试为“5”而不是 5。我更喜欢将其测试为 5,因此如果用户输入非数字,它不会破坏你的程序。

def game():
    print('guess what number im thinking of\n')
    Max=int(input('Give us your hights number that your interval can have:')) 
    Min=0
    print'Now think to a number between 0 and',Max,'once you have chose your numebr'
    print'Great !'
    print'its your turn to help us,if the number is :Exacte (0),higher(1)or lower(-1)'
    milieu=(Max-Min)/2
    print int(milieu),'is that the number your thinking of ?'
    z=input(str('its important that you only answer by 0, 1 or -1:'))
    x=False 
    while milieu<Max and x==False: 
        if z==0:                  
            print('We had guess what number you chosed')
            x=True
        while z!=0:   
            if z==1: 
                x=False
                Min=milieu  
                milieu=milieu+((Max-Min)/2)   
                print(int(milieu))
                z=input('its important that you only answer by E, G or P:') 
            if z==-1:
                x=False
                Max=milieu  
                milieu=(milieu-((Max-Min)/2))
                print(int(milieu))
                z=input('its important that you only answer by E, G or P:')
                break

while True:
    a=input('[5] to go out game\nor [9] to restart:')
    if a=="5": 
        break 
    if a=="9":
        print("restart")
        game()
于 2014-09-29T00:13:19.007 回答