Задача 9. Недоделка

Вы пришли на работу в контору по разработке игр, целевая аудитория которых — дети и их родители. У прошлого программиста было задание сделать две игры в одном приложении, чтобы пользователь мог выбирать одну из них. Однако программист, на место которого вы пришли, перед увольнением не успел сделать эту задачу и оставил только небольшой шаблон проекта.
Используя этот шаблон, реализуйте игры «Камень, ножницы, бумага» и «Угадай число».

Правила игры «Камень, ножницы, бумага»:
Программа запрашивает у пользователя строку и выводит победил он или проиграл.
Камень бьёт ножницы, ножницы режут бумагу, бумага кроет камень.

Правила игры “Угадай число”:
Программа запрашивает у пользователя число до тех пор, пока он его не отгадает.

Решение:

import random


def rock_paper_scissors():
  you_win = ' Вы проиграли.'
  comp_win = ' Вы проиграли.'
  stone_win = 'Камень бьет ножницы!'
  paper_win = 'Бумага оборачивает камень!'
  scissors_win = 'Ножницы режут бумагу!'
  possible_actions = ['камень', 'бумага', 'ножницы']
  computer_action = random.choice(possible_actions)

  user_action = int(input("Сделайте выбор — 1 - камень, 2 - бумага или 3 - ножницы: "))
  #user_action = possible_actions[user_action - 1]
  if user_action == 1:
    user_action = 'камень'
  elif user_action == 2:
    user_action = 'бумага'
  #elif user_action == 3:
  else:
    user_action = 'ножницы'

  print(f"Вы выбрали {user_action}, компьютер выбрал {computer_action}.")

  if user_action == computer_action:
    print(f'Оба пользователя выбрали {user_action}. Ничья!!')
  elif user_action == 'камень':
    if computer_action == 'ножницы':
      print(stone_win + you_win)
    else:
      print(paper_win + comp_win)
  elif user_action == 'бумага':
    if computer_action == 'камень':
      print(paper_win + you_win)
    else:
      print(scissors_win + comp_win)
  elif user_action == 'ножницы':
    if computer_action == 'бумага':
      print(scissors_win + you_win)
    else:
      print(stone_win + comp_win)

def guess_the_number():
  rnd_number = random.randint(1, 10)
  popitka = 0

  while True:
    user_number = int(input('Введите число (от 1 до 10): '))
    popitka += 1
    #if user_number != rnd_number:
    #  print('Не угадали. Попробуйте ещё раз!')
    if user_number > rnd_number:
      print('Число больше, чем нужно. Попробуйте ещё раз!')
    elif user_number < rnd_number:
      print('Число меньше, чем нужно. Попробуйте ещё раз!')
    elif user_number == rnd_number:
      break

  print(f'Вы угадали! Загаданное число было {rnd_number}. Число попыток: {popitka}')

def mainMenu():
  menu = 'В какую игру хотите выграть?\n1 - Камень, ножницы, бумага\n2 - Угадай число'
  print(menu)
  game = int(input('Ваш выбор: '))
  if game == 1:
    rock_paper_scissors()
  #elif game == 2:
  else:
    guess_the_number()

mainMenu()


2300login-checkЗадача 9. Недоделка

Добавить комментарий