Permainan Gunting Kertas Batu Python

Buat game Batu-Kertas-Gunting dengan Python. Kuasai pilihan acak, validasi input pengguna, dan pemetaan aturan relasional.

Coba di Editor

Ikhtisar

Batu-Kertas-Gunting adalah tantangan logika permainan standar. Hal ini memerlukan verifikasi masukan terhadap aturan permainan tertentu dan menentukan pemenang.

Daripada menulis tangga if/else berlapis-lapis yang membosankan, kita bisa mengimplementasikan aturan menggunakan kamus pemetaan. Ini sangat skalabel, memungkinkan perluasan aturan yang mudah (misalnya, menambahkan Lizard dan Spock).

Skrip memilih secara acak dari pilihan standar, membandingkannya dengan pilihan pemain, dan mencetak hasil termasuk pembaruan skor.

Kode & Output Eksekusi

Skrip Batu Gunting Kertas yang mengilustrasikan pencocokan aturan kamus dan modul acak.

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()
Keluaran Terminal
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!

Implementasi Langkah demi Langkah

  • Matriks verifikasi aturan yang menentukan
  • Mesin pemilih nomor acak
  • Proyek logika aliran kontrol pendidikan

Pertanyaan yang Sering Diajukan

Bagaimana saya bisa memperluas ini ke Batu-Kertas-Gunting-Kadal-Spock?

Cukup perluas pemetaan kamus `aturan_pemenang` sehingga setiap kunci mengarah ke daftar elemen yang dikalahkannya. Misalnya, `'batu': ['gunting', 'kadal']`.

Bagaimana cara membuat game berjalan tanpa batas hingga pengguna berhenti?

Bungkus logika interaksi di dalam loop `sementara Benar:` dan hentikan eksekusi jika pemain memasukkan 'keluar'.

Topik Terkait