Gra Python Rock Paper Scissors
Utwórz grę Kamień, Papier, Nożyce w Pythonie. Opanuj losowe wybory, sprawdzanie poprawności danych wejściowych użytkownika i mapowanie reguł relacyjnych.
Przegląd
Kamień-Papier-Nożyce to standardowe wyzwanie logiczne w grze. Wymaga sprawdzenia danych wejściowych pod kątem określonych zasad gry i wyłonienia zwycięzcy.
Zamiast pisać żmudne, wielowarstwowe drabinki if/else, możemy wdrożyć reguły za pomocą słownika mapującego. Jest to wysoce skalowalne, co pozwala na łatwe rozszerzanie reguł (np. dodanie Lizarda i Spocka).
Skrypt wybiera losowo spośród standardowych opcji, porównuje je z wyborem gracza i drukuje wyniki wraz z aktualizacjami wyników.
Dane wyjściowe kodu i wykonania
Skrypt Rock Paper Scissors ilustrujący dopasowywanie reguł słownikowych i moduły losowe.
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!Wdrażanie krok po kroku
- Decydujące macierze weryfikacji reguł
- Silniki selektora liczb losowych
- Projekty logiki przepływu sterowania w edukacji
Często zadawane pytania
Jak mogę rozszerzyć to na Kamień-Papier-Nożyce-Jaszczurkę-Spocka?
Po prostu rozwiń mapowanie słownika `winning_rules` tak, aby każdy klawisz wskazywał listę elementów, które przewyższa. Na przykład ``kamień': ['nożyczki', 'jaszczurka']`.
Jak sprawić, by gra działała nieskończenie, dopóki użytkownik nie wyjdzie?
Zawiń logikę interakcji w pętlę „while True:” i przerwij wykonanie, jeśli gracz wprowadzi „quit”.
Powiązane tematy
Uruchom terminalową grę w kółko i krzyżyk w języku Python. Dowiedz się, jak zarządzać stanem płytki, przełączać zakręty i wygrywać kontrole warunków.
Implementacja gry Wisielec w PythonieZbuduj i uruchom grę Hangman w Pythonie. Przeglądaj sprawdzanie zestawów znaków, liczniki pozostałych prób i zastępowanie ukrytych ciągów słów.