我是Python的初学者,我一直在尝试制作一个非常简单的游戏。它与板球比赛有一些相似之处。基本上,用户首先选择蝙蝠或碗,并且在他这样做之后,如果他选择击球,则计算机碗,反之亦然。一旦用户做出选择,他就会输入0到6之间的整数,计算机也会随机选择一个。如果计算机的号码与用户的选择相匹配,那么击球的人就会出局,然后另一个人击球,第一个人击球。得分计算得分,得分越高。我有一个接近这个,但我有一个问题。
一旦击球手出局,下一个击球手必须越过前一个击球手才能获胜。但是在我的代码中,下一个击球手甚至在超过前一个击球手的得分直到前一个击球手(现在是投球手)之后继续击球,让巢击球手出局。
一旦第二个击球手越过第一个击球手的得分,我想要一种方法来结束比赛。
到目前为止,这是我的代码:
import random
def comp_bat():
print('You are bowling')
s=0
comp_choice=0
user_choice=1
while comp_choice!= user_choice:
user_choice=int(input('bowl: '))
comp_choice=random.randint(0,6)
if comp_choice==0 and user_choice!=comp_choice:
s+=user_choice
print('bat: ', comp_choice)
print('')
elif user_choice>6:
print('Bowl numbers between 0 and 6')
elif user_choice<0:
print('Bowl numbers between 0 and 6')
elif user_choice!=comp_choice:
s+=comp_choice
print('bat: ', comp_choice)
print('')
elif user_choice==comp_choice:
print('bat: ', comp_choice)
print('')
print("The computer's score is:- ", s)
return s
def user_bat():
print('You are batting')
s=0
comp_choice=0
user_choice=1
while comp_choice!= user_choice:
comp_choice=random.randint(0,6)
user_choice=int(input('bat: '))
if user_choice==0 and user_choice!=comp_choice:
s+=comp_choice
print('bowl: ', comp_choice)
print('')
elif user_choice>6:
print('Bat numbers between 0 and 6')
elif user_choice<0:
print('Bat numbers between 0 and 6')
elif user_choice!=comp_choice:
s+=user_choice
print('bowl: ', comp_choice)
print('')
elif user_choice==comp_choice:
print('bowl: ', comp_choice)
print('')
print("Your score is:- ", s)
return s
def choose_bat_bowl():
bat=1
bowl=2
choice=int(input('press 1 to bat or 2 to bowl: '))
print('')
if choice==1:
return bat
elif choice==2:
return bowl
def main():
while True:
if choose_bat_bowl()==1:
x=user_bat()
y=comp_bat()
if x>y:
print('You win!')
elif x<y:
print('You lose')
elif choose_bat_bowl()==2:
x=comp_bat()
y=user_bat()
if x>y:
print('You lose!')
elif x<y:
print('You win!')
if __name__=="__main__":
main()
我知道这无法编码或非常基本...但请帮我找到终止循环的解决方案。提前谢谢!
答案 0 :(得分:0)
使用之前的分数检查当前分数。希望这会有所帮助。
def comp_bat(S):
# your code
elif user_choice!=comp_choice:
s+=comp_choice
print('bat: ', comp_choice)
print('')
elif user_choice==comp_choice:
print('*bat: ', comp_choice)
print('')
if(s>S and S!=-1): # This is modified
break
# rest of your code
def main():
while True:
if choose_bat_bowl()==1:
x=user_bat(-1) # modified
y=comp_bat(x) # modified
if x>y:
print('You win!')
elif x<y:
print('You lose')
elif choose_bat_bowl()==2:
x=comp_bat(-1) # modified
y=user_bat(x) # modified
if x>y:
print('You lose!')
elif x<y:
print('You win!')