Python Taş Kağıt Makas Oyunu

Python'da bir Taş-Kağıt-Makas oyunu oluşturun. Rastgele seçimlerde, kullanıcı girişlerinin doğrulanmasında ve ilişkisel kural eşlemelerinde uzmanlaşın.

Editör'de deneyin

Genel Bakış

Taş-Kağıt-Makas standart bir oyun mantığı mücadelesidir. Girdilerin belirli oyun kurallarına göre doğrulanmasını ve bir kazananın belirlenmesini gerektirir.

Sıkıcı, çok katmanlı if/else merdivenleri yazmak yerine, bir eşleme sözlüğü kullanarak kuralları uygulayabiliriz. Bu oldukça ölçeklenebilirdir ve kuralların kolayca genişletilmesine olanak tanır (örneğin, Lizard ve Spock'ın eklenmesi).

Komut dosyası, standart seçenekler arasından rastgele seçim yapar, bunu oyuncunun seçimiyle karşılaştırır ve skor güncellemeleri dahil sonuçları yazdırır.

Kod ve Yürütme Çıkışı

Sözlük kuralı eşleştirmeyi ve rastgele modülleri gösteren bir Taş Kağıt Makas komut dosyası.

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()
Terminal Çıkışı
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!

Adım Adım Uygulama

  • Belirleyici kural doğrulama matrisleri
  • Rastgele sayı seçici motorlar
  • Eğitimsel kontrol akış mantığı projeleri

Sıkça Sorulan Sorular

Bunu Taş-Kağıt-Makas-Kertenkele-Spock'a nasıl genişletebilirim?

Her bir anahtarın, geçtiği öğelerin bir listesini işaret etmesi için "kazanan_kurallar" sözlük eşlemesini genişletmeniz yeterlidir. Örneğin, `'taş': ['makas', 'kertenkele']`.

Kullanıcı çıkana kadar oyunun sonsuz şekilde çalışmasını nasıl sağlayabilirim?

Etkileşim mantığını bir 'while True:' döngüsü içine sarın ve oynatıcı 'quit' girerse yürütmeyi durdurun.

İlgili Konular