使用VS2015
Python 3.4
与此while
计数器有一些问题。由于我确信它'应该'起作用,但它并没有更新柜台,它正在慢慢地让我疯狂。我跑步调试,可以看到计数器重置为3之前的条件线。至少可以说我很烦人。While循环计数器
import random
import getpass
print ('Welcome to Rock, Paper or Sissors\nEnter an option.')
user_obj = getpass.getpass('Rock, Paper or Sissors: ').lower()
ai_obj = input('Rock, Paper or Sissors: ').lower()
rps = ('rock', 'paper', 'sissors')
#ai_rps = ['rock', 'paper', 'sissors']
#ai_obj = random.choice(ai_rps)
counter = 3
def rps_game(user_obj, ai_obj):
print('Player selected %s ' % user_obj)
print('Computer selected %s ' % ai_obj)
condition = user_obj in rps and ai_obj in rps
while condition == True and counter >= 0:
if user_obj == ai_obj:
print('Its a draw!')
elif user_obj == 'rock':
if ai_obj == 'paper':
print('You lose!')
break
else:
print('You win!')
elif user_obj == 'paper':
if ai_obj == 'sissors':
print('You lose!')
break
else:
print('You win!')
elif user_obj == 'sissors':
if ai_obj == 'rock':
print('You lose!')
else:
print('You win!')
break
else:
counter += 1
print('Invalid input, please select Rock, Paper or Sissors')
rps_game(user_obj, ai_obj)
rps_game(user_obj, ai_obj)
您是否收到错误?我收到一个错误。我得到'UnboundLocalError:在赋值之前引用的局部变量'counter'。这是你得到的错误? – Kevin
这是真的,但是如果我移动定义的函数内部的变量,它会将while循环变为无限。请原谅我的无知,我对编码还很陌生。 –
你不是一直在打破你的循环。在某些情况下,当你赢了,你会继续打球。检查所有循环中断场景 – FuriousGeorge