2016-10-22 2 views
-1

У меня есть эта программа для кубиков, которая катит пару 6-сторонней матрицы 3 раза. Вы начинаете с 500 долларов в банке, и вас просят сделать ставку и выбрать номер от 2 до 12. Если вы догадаетесь, что первый бросок удвоит ставку и добавит ее в банк, 2-й бросок вы выиграете 1 1/2 раза ваша ставка, 3-й бросок вы выигрываете свою ставку, иначе ваша ставка вычитается из банка. Мне просто нужна помощь в вычислениях, которые я чувствую так глупо.Python Dice gamet program

def main(): 
    bank = 500 
    while bank > 0: 
     print("You have $",bank,"in your account.") 
     bet = int(input("Enter your bet =>")) 
     guess = int(input("Choose a number between 2 and 12: ")) 
     print("Your guess is",guess) 

     roll = 1 
     rolls = [] 
     while roll < 4: 
      dice_pair = random.randint(1, 6) + random.randint(1, 6) 
      rolls.append(dice_pair) 
      print("Roll #",roll, "was",dice_pair) 
      if dice_pair == rolls[0]: 
       bank = bet * 2 
      elif dice_pair == rolls[1]: 
       bank = bet * 1.5 
      elif dice_pair == rolls[2]: 
       bank = bank + bet 
      else: 
       bank= bank - bet 
      roll += 1 

ответ

1

Имея список роликов и делать сравнения, как dice_pair == rolls[0] не имеет смысла: это всегда будет истинна на первой итерации. Предполагается, что вы проверяете dice_pair == guess, корректируя банк на основе текущего значения roll и, возможно, заканчивая цикл, если правильная догадка (не совсем уверенная в правилах).

+0

Кроме того, для ваших первых и вторых рулонных заявлений вы забыли добавить стоимость банка. Итак, скажем, у меня в банке было 500 долларов, я лучше всего 10 долларов и догадываюсь 4, и, похоже, я получаю это сразу в первом броске. Ваш текущий код приведет к тому, что мой банковский баланс составит всего 20 долларов! Возможно, вы захотите рассмотреть возможность использования операторов + = и - =, чтобы сделать это проще. – CodeSurgeon