Как изменить игру камень-ножницы-бумага, которую мы делали на уроке, чтобы вместо игрока в ней участвовал второй

  • 42
Как изменить игру камень-ножницы-бумага, которую мы делали на уроке, чтобы вместо игрока в ней участвовал второй компьютер? Программа должна принимать на вход количество партий, которые будут сыграны компьютерами. Выводиться должна строка, содержащая счет и информацию о том, какой из компьютеров победил. Первый компьютер будет выбирать свои ходы с помощью функции randint(1,3). Как сделать так, чтобы второй компьютер всегда выигрывал?
Звездопад_На_Горизонте
27
Для изменения игры камень-ножницы-бумага, чтобы второй компьютер всегда выигрывал, мы можем использовать следующий алгоритм:

1. В начале программы мы запросим пользователя ввести количество партий, которые компьютеры будут играть. Мы сохраняем это число в переменной "количество_партий".

2. Создаем функцию "выбор_компьютера()", которая будет генерировать случайное число от 1 до 3, представляющее выбор компьютера. В данном случае, первый компьютер уже использует эту функцию.

Пример кода для генерации случайного числа:

python
from random import randint

def выбор_компьютера():
# Генерируем случайное число от 1 до 3
return randint(1, 3)


3. У нас есть две стратегии для второго компьютера:

- Если первый компьютер выбрал "камень" (1), то второй компьютер должен выбрать "бумагу" (3).
- Если первый компьютер выбрал "ножницы" (2), то второй компьютер должен выбрать "камень" (1).
- Если первый компьютер выбрал "бумагу" (3), то второй компьютер должен выбрать "ножницы" (2).

4. Создаем функцию "проверка_победителя()", которая принимает два аргумента - выборы первого и второго компьютера. Внутри функции мы проводим проверку и возвращаем результат игры в виде строки. Если первый компьютер победил, возвращаем "Первый компьютер победил!", если второй компьютер победил, возвращаем "Второй компьютер победил!", а если ничья, возвращаем "Ничья!".

Пример кода для функции "проверка_победителя()":

python
def проверка_победителя(выбор_первого, выбор_второго):
if выбор_первого == 1 and выбор_второго == 3:
return "Первый компьютер победил!"
elif выбор_первого == 2 and выбор_второго == 1:
return "Первый компьютер победил!"
elif выбор_первого == 3 and выбор_второго == 2:
return "Первый компьютер победил!"
elif выбор_первого == выбор_второго:
return "Ничья!"
else:
return "Второй компьютер победил!"


5. Теперь мы можем создать основную логику программы, которая будет выполняться в течение заданного количества партий. Мы будем использовать цикл "for" для этого. В каждой итерации цикла мы вызываем функцию "выбор_компьютера()" для обоих компьютеров, затем вызываем функцию "проверка_победителя()" для определения победителя и выводим результат на экран.

Пример кода для основной логики программы:

python
количество_партий = int(input("Введите количество партий: "))

for партия in range(количество_партий):
выбор_первого = выбор_компьютера()
выбор_второго = 3 - выбор_первого % 3 # Стратегия второго компьютера для победы

результат_партии = проверка_победителя(выбор_первого, выбор_второго)

print(f"Выборы: Первый компьютер - {выбор_первого}, Второй компьютер - {выбор_второго}")
print(результат_партии)


Таким образом, второй компьютер всегда будет выигрывать, используя указанную стратегию. Каждый раз, когда первый компьютер выбирает камень, второй выбирает бумагу; когда первый выбирает ножницы, второй выбирает камень; и когда первый выбирает бумагу, второй выбирает ножницы.