[英]Dice prediction game for python
我正在編寫一個python程序,要求您預測死亡。 您以5歐元開始,如果獲勝,您將獲得5歐元;如果是1歐元,則損失1歐元;如果超過1歐元,則損失3歐元。
def main():
while True:
saldo = 5
y = input("[R]oll or [S]top")
if y == "r" :
p = input("What is your prediction?")
from random import randint
x = randint(1, 6)
print(x)
if p == x:
saldo = saldo +5
elif p == int(x-1) or p == int(x+1):
saldo = saldo -1
else:
saldo = saldo -3
print ("saldo is " , saldo)
elif y == "s" :
saldo = saldo
print ("eindsaldo is " , saldo)
return
else:
print ("Enter r or s")
main()
隨機部分正在工作,但薩爾多部分沒有工作,我無法弄清楚出了什么問題。 我是Python的新手,但在Javascript和其他基本編程語言方面有一些經驗。 看起來應該可以。
您的saldo
在while循環內初始化。
這意味着每次您從循環的開頭開始,saldos設置為5。
def main()
saldo = 5
while True:
y = input("[R]oll or [S]top")
...
將saldo = 5
while循環之外。
看下面的代碼。 我自由地進行了其他更改,以使整個過程變得更加Python化和高效。
Update2:我可以自由地進行一些小的調整(Antonvbr)
from random import randint # 1
def main(saldo):
while True:
y = input("[R]oll or [S]top").lower() # 3
if y == "r" :
p = input("What is your prediction?") #4
while p not in list("123456"):
print("Enter a valid number 1-6")
p = input("What is your prediction?")
p = int(p) # convert to integer
x = randint(1, 6)
print(x)
if p == x:
saldo += 5
elif abs(p-x) == 1:
saldo -= 1
else:
saldo -= 3
print ("saldo is {}".format(saldo)) # 5
elif y == "s" :
print ("stop! saldo is {}".format(saldo))
return saldo
else:
print ("Enter R/r or S/s") # Not case sensitivt anymore
startsaldo = 5
saldo = main(startsaldo) #2
說明:
您不希望每次迭代都導入,導入函數總是最先執行的
正如其他人所提到的, saldo
需要初始化一次。 通常,此類參數會注入函數中,並在函數退出時返回。
"R"
或"S"
但要與"r"
和"s"
進行比較。 在Python中,大小寫很重要。 通常,在Python中, var = var + 1
就像var += 1
一樣編寫。 同樣適用於-
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.