Сделать игру "Кости" на Python
Условия:
В начальный момент у играющего 100 очков.
Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход.
Программа выбирает два случайных числа от 1 до 6 («бросает кубик», на гранях которого цифры от 1 до 6).
Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка.
Ставка проиграна, если не имеет место ни одна из описанных ситуаций.
При израсходовании всех очко игра заканчивается, после каждой попытки предлагается закончить игру.

Ответы

Ответ дал: vimmortal2
1

Программа:

Python:

from random import randint

pts = 100

while pts > 0:

  num, bet = map(int, input('Введите число от 2 до 12 и ставку: ').split())

  if bet > pts:  print(f'У вас не хватает очков! Вы имеете {pts} очков.')

  else:

      cube1, cube2 = randint(1,6), randint(1,6)

      print(f'Первый куб: {cube1}, второй куб: {cube2}')

      summ = cube1 + cube2

      if (summ < 7 and num < 7) or (summ > 7 and num > 7):

          pts += bet

          print(f'Ваша ставка прошла! Теперь у вас {pts} очков.')

      elif summ == num:

          pts += bet * 4

          print(f'Ваша ставка прошла! Теперь у вас {pts} очков.')

      else:

          pts -= bet

          print(f'Ваша ставка не прошла! Теперь у вас {pts} очков.')

      if input('Желаете закончить игру (да/нет)? ').lower() == 'да':

          print(f'Вы закончили игру с {pts} очков.')

          break


GeekZn: Не работает
Рулез: Проверил его ответ там в двух строчках не хватает f перед текстом принта - по этому не выводятся очки. В остальном всё работает.
Ответ дал: Рулез
0

Ответ:

from random import randint

points = 100

gameover = False

while not gameover and points > 0:

   print('Ваш баланс: ', points)

   while True:

       choice = int(input('Введите число на которое хотите поставить(2-12): '))

       if choice in range(2,13):

           break

       print('Ставка должна быть в диапазоне от 2 до 12!')

   while True:

       bet = int(input('Введите сумму ставки: '))

       if bet <= points:

           break

       print('Недостаточно балланса для такой ставки!')

   points -= bet

   rand1 = randint(1,6)

   rand2 = randint(1,6)

   result = rand1 + rand2

   print('Выпали числа {} и {}. Сумма = {}'.format(rand1, rand2, result))

   if result == choice:

       print('Вы выиграли x4 свой ставки!')

       points += bet*4

   elif (result < 7 and choice < 7) or (result > 7 and choice > 7):

       print('Вы выиграли свою ставку!')

       points += bet * 2

   else:

       print('Вы проиграли ставку!')

   gameover = bool(input('Если хотите выйти, введите любой символ. Если хотите продолжить - нажмите Enter: '))

print('Game Over. У вас закончились баллы или вы захотели выйти из игры.')

Объяснение:

Вас заинтересует