python - 重新启动程序的问题 - Python
问题描述
我正在尝试用 python 制作一个非常简单的二十一点游戏,并且效果很好。问题是我想在它完成后重新启动它,但不重新启动。有任何想法吗?一段代码导入随机
class BlackjackGame():
def __init__(self):
self.randomNumberMachine = random.randint(4,24)
self.randomNumberUser = random.randint(4,24)
self.conditionalBoolean = False
def blackjackMain(self):
self.numberInput = int(input("Introduzca la apuesta "))
while not self.conditionalBoolean:
if self.randomNumberUser > 21:
print("Desgraciadamente has perdido\nPuntos de la maquina: " + str(self.randomNumberMachine) + "\nPuntos tuyos: " + str(self.randomNumberUser))
self.numberInput = self.numberInput / 2
if self.numberInput <= 0:
print("Tienes solo 0 euros")
else:
print("Tienes " + str(self.numberInput) + " euros")
self.conditionalBoolean = True
else:
userChoice = int(input(("Tienes " + str(self.randomNumberUser) + "puntos, deseas:\n1)Retirarte\n2)Aumentar\n")))
if userChoice == 1:
if self.randomNumberUser > self.randomNumberMachine or self.randomNumberMachine > 21:
print("Enhorabuena, has ganado\nPuntos de la maquina: " + str(self.randomNumberMachine) + "\nPuntos tuyos: " + str(self.randomNumberUser))
self.numberInput = self.numberInput * 2
print("Ahora tienes " + str(self.numberInput) + " euros")
elif self.randomNumberMachine == self.randomNumberUser:
print("Empate\nPuntos de la maquina: " + str(self.randomNumberMachine) + "\nPuntos tuyos: " + str(self.randomNumberUser))
else:
print("Desgraciadamente has perdido\nPuntos de la maquina: " + str(self.randomNumberMachine) + "\nPuntos tuyos: " + str(self.randomNumberUser))
self.numberInput = self.numberInput / 2
if self.numberInput <= 0:
print("Tienes solo 0 euros")
else:
print("Tienes " + str(self.numberInput) + " euros")
self.conditionalBoolean = True
elif userChoice == 2:
self.aumentPoints = random.randint(2,10)
self.randomNumberUser = self.randomNumberUser + self.aumentPoints
self.blackjackMain()
jugador1 = BlackjackGame()
jugador1.blackjackMain()
self.numerInput 输入它一直在问同样的事情并且不会重新启动程序。
解决方案
在 blackjackMain(self) 中,变量 self.conditionalBoolean 仅设置为 True。发生这种情况时,您的 while 条件始终为 False,并且不再执行其中的代码。如果要进入 while 块,则需要在该块之外的某处设置变量。
推荐阅读
- c++ - 如何正确创建合并排序函数?
- git - Git ssh url 到特定文件夹
- google-cloud-platform - 是否可以在本地模拟 Google Cloud Task?
- windows - Powershell:如何在“;”之后获得数字的平均值 象征?(来自一个txt文件)
- javascript - 如何在节点中创建 Twilio 视频连接?
- admob - 仅仅请求应用透明度权限是否足以确保谷歌移动广告符合 iOS14 标准?
- amazon-web-services - AWS ec2 userdata ssl验证错误..唯一
- angular - 角度单元测试:属性订阅没有访问类型获取
- apache-beam - 非常小的 BEAM pCollection 没有被刷新到输出文件
- web-services - Sabre PNR 中的历史会计行