Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Game Kéo Búa Bao (Rock Paper Scissors) Python

Game Kéo-Búa-Bao đối kháng máy tính. Người chơi chọn 1/2/3, máy random, so sánh theo luật: Búa > Kéo, Kéo > Bao, Bao > Búa.

Luật chơi

  • Búa (Rock) đập vỡ Kéo (Scissors)
  • Kéo (Scissors) cắt Bao (Paper)
  • Bao (Paper) gói Búa (Rock)

Code hoàn chỉnh

import random

rules = """
Luật chơi:
Rock vs Paper   → Paper wins
Rock vs Scissors → Rock wins
Paper vs Scissors → Scissors wins
"""
print(rules)

choices = {1: 'Rock', 2: 'Paper', 3: 'Scissors'}

while True:
    print("\nChọn: 1.Rock  2.Paper  3.Scissors")
    try:
        user = int(input("Bạn chọn: "))
        if user not in choices:
            print("Chỉ nhập 1, 2 hoặc 3!")
            continue
    except ValueError:
        print("Nhập số!")
        continue

    user_choice = choices[user]
    print(f"Bạn: {user_choice}")

    # Máy chọn khác người (tùy chọn: cho phép trùng)
    comp = random.randint(1, 3)
    while comp == user:  # Bỏ dòng này nếu cho phép hòa
        comp = random.randint(1, 3)
    comp_choice = choices[comp]
    print(f"Máy: {comp_choice}")

    # Xác định thắng thua
    if (user == 1 and comp == 3) or (user == 3 and comp == 1):
        winner, win_choice = ("Bạn", "Rock") if user == 1 else ("Máy", "Rock")
    elif (user == 1 and comp == 2) or (user == 2 and comp == 1):
        winner, win_choice = ("Bạn", "Paper") if user == 2 else ("Máy", "Paper")
    else:  # 2 vs 3
        winner, win_choice = ("Bạn", "Scissors") if user == 3 else ("Máy", "Scissors")

    print(f"{win_choice} wins → {winner} thắng!")

    again = input("Chơi lại? (y/n): ").lower()
    if again != 'y':
        print("Cảm ơn đã chơi!")
        break

Kết quả mẫu

Chọn: 1.Rock  2.Paper  3.Scissors
Bạn chọn: 1
Bạn: Rock
Máy: Paper
Paper wins → Máy thắng!
Chơi lại? (y/n): y

Chọn: 1.Rock  2.Paper  3.Scissors
Bạn chọn: 2
Bạn: Paper
Máy: Rock
Paper wins → Bạn thắng!
Chơi lại? (y/n): n
Cảm ơn đã chơi!

Mở rộng

  • Thêm chế độ "Best of 3/5".
  • Thống kê thắng/thua/hòa.
  • GUI với Tkinter/PyGame.
  • AI học thói quen người chơi (Markov chain).