[英]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.