Игра Python «Камень, ножницы, бумага»
Создайте игру «Камень-ножницы-бумага» на Python. Освойте случайный выбор, проверку пользовательских данных и сопоставление реляционных правил.
Обзор
«Камень-ножницы-бумага» — стандартная игровая логическая задача. Это требует проверки введенных данных на соответствие конкретным правилам игры и определения победителя.
Вместо написания утомительных многоуровневых лестниц if/else мы можем реализовать правила, используя словарь сопоставления. Это легко масштабируется, что позволяет легко расширять правила (например, добавлять Ящерицу и Спока).
Скрипт выбирает случайным образом из стандартных вариантов, сравнивает его с выбором игрока и печатает результаты, включая обновления счета.
Код и вывод выполнения
Скрипт «Камень, ножницы, бумага», иллюстрирующий сопоставление словарных правил и случайные модули.
import random
def get_winner(player, computer):
if player == computer:
return "tie"
# Dictionary mapping choice -> what it beats
winning_rules = {
"rock": "scissors",
"paper": "rock",
"scissors": "paper"
}
if winning_rules[player] == computer:
return "player"
return "computer"
def play_game():
choices = ["rock", "paper", "scissors"]
# Mocking player selections
player_moves = ["rock", "paper", "scissors"]
print("Rock, Paper, Scissors Game!")
# Seed generator for deterministic outputs
random.seed(11)
for player_move in player_moves:
computer_move = random.choice(choices)
winner = get_winner(player_move, computer_move)
print(f"\nPlayer chose: {player_move.capitalize()}")
print(f"Computer chose: {computer_move.capitalize()}")
if winner == "tie":
print("Result: It is a Tie!")
elif winner == "player":
print("Result: Player Wins!")
else:
print("Result: Computer Wins!")
play_game()Rock, Paper, Scissors Game!
Player chose: Rock
Computer chose: Scissors
Result: Player Wins!
Player chose: Paper
Computer chose: Paper
Result: It is a Tie!
Player chose: Scissors
Computer chose: Rock
Result: Computer Wins!Пошаговая реализация
- Матрицы проверки решающих правил
- Механизмы выбора случайных чисел
- Образовательные проекты логики потока управления
Часто задаваемые вопросы
Как я могу распространить это на Камень-Бумага-Ножницы-Ящерица-Спока?
Просто разверните сопоставление словаря `winning_rules` так, чтобы каждый ключ указывал на список элементов, которые он превосходит. Например, `'камень': ['ножницы', 'ящерица']`.
Как заставить игру работать бесконечно, пока пользователь не выйдет?
Оберните логику взаимодействия внутри цикла while True: и прерывайте выполнение, если игрок вводит команду «quit».
Связанные темы
Запустите терминальную игру «Крестики-нолики» на Python. Изучите управление состоянием платы, переключение поворотов и выиграйте проверки состояния.
Реализация игры «Палач» на PythonСоздайте и запустите игру Hangman на Python. Изучите проверку наборов символов, счетчики оставшихся попыток и замену строк скрытых слов.