Gioco Python Sasso Carta Forbici
Crea un gioco Sasso-Carta-Forbici in Python. Padroneggia le scelte casuali, la convalida degli input dell'utente e la mappatura delle regole relazionali.
Panoramica
Sasso-Carta-Forbici è una sfida logica di gioco standard. Richiede la verifica degli input rispetto a specifiche regole del gioco e la determinazione di un vincitore.
Invece di scrivere noiose scale if/else multistrato, possiamo implementare le regole utilizzando un dizionario di mappatura. Questo è altamente scalabile e consente una facile espansione delle regole (ad esempio, aggiungendo Lizard e Spock).
Lo script sceglie in modo casuale tra le scelte standard, lo confronta con la scelta del giocatore e stampa i risultati inclusi gli aggiornamenti del punteggio.
Codice e output di esecuzione
Uno script di Rock Paper Scissors che illustra la corrispondenza delle regole del dizionario e i moduli casuali.
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!Implementazione passo dopo passo
- Matrici di verifica delle regole decisive
- Motori di selezione di numeri casuali
- Progetti di logica del flusso di controllo educativo
Domande frequenti
Come posso estenderlo a Sasso-Carta-Forbici-Lucertola-Spock?
Espandi semplicemente la mappatura del dizionario `wining_rules` in modo che ogni tasto punti a un elenco di elementi che batte. Ad esempio, "roccia": ['forbici', 'lucertola']`.
Come faccio a far funzionare il gioco all'infinito finché l'utente non esce?
Avvolgi la logica dell'interazione all'interno di un ciclo ` while True:` e interrompi l'esecuzione se il giocatore inserisce "quit".
Argomenti correlati
Esegui un gioco Tic-Tac-Toe da terminale in Python. Impara la gestione dello stato del tabellone, il cambio di turno e i controlli delle condizioni di vittoria.
Implementazione del gioco Python HangmanCostruisci ed esegui un gioco dell'Impiccato in Python. Esplora il controllo dei set di caratteri, i contatori dei tentativi rimanenti e la sostituzione delle stringhe di parole nascoste.