Permainan Gunting Kertas Batu Python
Buat game Batu-Kertas-Gunting dengan Python. Kuasai pilihan acak, validasi input pengguna, dan pemetaan aturan relasional.
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()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
Jalankan game terminal Tic-Tac-Toe dengan Python. Pelajari manajemen status papan, peralihan giliran, dan menangkan pemeriksaan kondisi.
Implementasi Permainan Python HangmanBangun dan jalankan game Hangman dengan Python. Jelajahi pemeriksaan kumpulan karakter, penghitung sisa percobaan, dan penggantian string kata tersembunyi.