使用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