【问题标题】:Trouble with restarting a program - Python重新启动程序的问题 - Python
【发布时间】:2019-12-14 11:32:24
【问题描述】:

我正在尝试用 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 输入它一直在问同样的事情并且不会重新启动程序。

【问题讨论】:

    标签: python class blackjack


    【解决方案1】:

    在 blackjackMain(self) 中,变量 self.conditionalBoolean 仅设置为 True。发生这种情况时,您的 while 条件始终为 False,并且不再执行其中的代码。 如果你想进入while块,你需要在这个块之外的某个地方设置变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 2010-12-21
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多