Игра 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».

Связанные темы