我一直在試圖編寫一個簡單的RPS遊戲,其中用戶扮演計算機。 在這一點上只有1次迭代(因爲我被卡住了......),並且沒有驗證用戶的輸入是否有效。 我遇到的問題是,無論我爲了獲得計算機和用戶的分數而存儲在一個變量中的操作,它都保持等於0,無論我嘗試了什麼縮進或者試圖放置哪個位置返回。 (正如你可以在下面的代碼中看到的那樣...我嘗試着沒有運氣的一些部分被註釋掉了)。理想情況下,因爲我計劃進行多次迭代,所以我希望變量u和v本身被更新並保持得分,而不僅僅是打印贏得特定迭代的人。Python新手練習:岩石剪刀
你能幫我理解我在這裏做錯了嗎?
乾杯
from random import randrange
rps = ["r", "p", "s"]
def gameplay(user,comp):
u = 0 #user's score
v = 0 #computer's score
print "Computer chose: " + comp
if comp == user:
pass
elif comp == "r" and user == "p":
u += 1
#print u
#return u
elif comp == "r" and user == "s":
v += 1
#print v
#return v
elif comp == "p" and user == "s":
u += 1
#print u
#return u
elif comp == "p" and user == "r":
v += 1
#print v
#return v
elif comp == "s" and user == "r":
u += 1
#print u
#return u
elif comp == "s" and user == "p":
v += 1
#print v
#return v
return u
return v
gameplay(raw_input("your move?"),rps[randrange(3)])
print u
print v
嘗試'返回U,v'和'U,v =遊戲(...)' –
當函數返回值,函數完成,所以你永遠不會返回v。你可以在一個語句ret中返回它們urn(u,v)。之後返回值必須存儲在變量中:u,v =遊戲玩法(...) –