Написать игру "Камень-Ножницы-Бумага" на Python. Игроки одновременно показывают один из трех знаков: камень, ножницы, бумага.

Победитель определяется по следующим правилам:

1. Бумага побеждает камень («бумага накрывает камень»).
2. Камень побеждает ножницы («камень ломает ножницы»).
3. Ножницы побеждают бумагу («ножницы разрезают бумагу»).

1. Для начала создадим переменные для подсчета очков.
Например: YourScore, ComputerScore

2. Выведем на экран текущий счет.
Например: Текущий счет - Игрок: 0 - Компьютер: 0

3. Спросим у игрока, что он выбирает? Камень, ножницы или бумагу?
Проверь с if / else что игрок ввел корректное значение, иначе игра не будет работать.
Например: Выбирайте: камень / ножницы / бумага

4. Теперь компьютер делает свой ход.
С функции random.randint(A, B) генерируем случайное число.

5. Теперь надо заменить это число на строку "камень", "ножницы" или "бумага"
Подсказка: нам условный оператор if / elif.

6. Уже почти, осталось определить кто победил.
Самое простое: ничья. Это случится если выбор игрока и компьютера совпал.
Теперь обработаем случаи, когда игрок точно победил.
В остальных случаях игрок проигрывает.
Не забудь добавить за победу в нужную переменную!

7. Добавь сообщения о победе/проигрыше/ничье если еще этого не сделал, а также выводи на экран какой выбор сделал компьютер.

8. Теперь будем играть до трех побед! Добавь цикл while, и повторяй игру, пока кто-нибудь не выиграет 3 раза. Добавь сообщение об окончании игры и итоговый счет.

9. Перед выводом выбора компьютера можно поместить считалку (time.sleep(X) в ):
Камень, ножницы, бумага, 1, 2, 3! Или любой другой на твой выбор. (доп.)

10. Придумай, как можно научить компьютер чаще выигрывать у игрока? (доп.)

Dania2432 Dania2432    2   07.03.2021 00:09    93

Ответы
ilyaronaldo ilyaronaldo  06.04.2021 01:10

Код:

from random import choice

YourScore = 0

ComputerScore = 0

MOVES = "камень", "ножницы", "бумага"

while ((YourScore != 3) and (ComputerScore != 3)):

   print(f"Текущий счет - Игрок: {YourScore} - Компьютер: {ComputerScore}")

   while True:

       YourMove = input(

           "Ваш ход, введите камень/ножницы/бумага ").strip().lower()

       if YourMove in MOVES:

           break

   ComputerMove = choice(MOVES)

   print(f"\nВаш ход: {YourMove}\nХод компьютера: {ComputerMove}\n")

   if YourMove == ComputerMove:

       print("У вас ничья!")

       # Не выйгрывает никто

   elif (YourMove == MOVES[0] and ComputerMove == MOVES[1]):  # Камень VS Ножницы

       print("Вы победили компьютер!")

       YourScore += 1

   elif (YourMove == MOVES[1] and ComputerMove == MOVES[2]):  # Ножницы VS Бумага

       print("Вы победили компьютер!")

       YourScore += 1

   elif (YourMove == MOVES[2] and ComputerMove == MOVES[0]):  # Бумага VS Камень

       print("Вы победили компьютер!")

       YourScore += 1

   else:

       print("Компьютер вас победил!")

       ComputerScore += 1

   print()

Могу ещё дать ссылку на PasteBIN

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика