Questo semplice tutorial di gioco ti aiuterà a mettere in pratica i fondamenti della programmazione Python.
Creare un gioco "Sasso, carta, forbici" in Python è un ottimo modo per migliorare le tue capacità di programmazione. Puoi creare il gioco con un singolo script Python e riprodurlo sulla riga di comando.
Il gioco inizia chiedendo al giocatore la sua scelta: "sasso", "carta" o "forbici". Quindi attende che inseriscano la loro risposta. Puoi giocare contro un giocatore "computer", che selezionerà automaticamente la sua mossa.
Il gioco può anche includere molti round. Quindi, anche se perdi il primo round, puoi comunque provare a vincerne due su tre!
Come impostare il gioco e chiedere al giocatore la sua mossa
Quando il gioco inizia, il programma Python dovrebbe chiedere al giocatore di inserire "sasso", "carta" o "forbici" e accettare la risposta del giocatore. Per impostare un nuovo gioco, inizia creando un nuovo file Python con estensione .py.
Il codice completo per questo tutorial è disponibile in un repository GitHub.
- Crea un nuovo file chiamato RockPaperScissors.py.
- Apri il nuovo file Python usando qualsiasi editor di testo, come Notepad++ o Visual Studio Code.
- Nella parte superiore del file, importa il modulo random. Lo userai più avanti nel gioco per selezionare casualmente una mossa per il turno del computer.
importare casuale
- Presenta un messaggio al giocatore, chiedendogli di inserire sasso, carta o forbici.
sceltautente = input("Sasso, carta o forbici? ").inferiore()
- Inizializza un array chiamato "moveOptions" che memorizza un elenco delle mosse disponibili che tu o il computer potete giocare.
mossaOpzioni = ['roccia', 'carta', 'forbici']
- Quando il giocatore inserisce un input, convalidalo per assicurarti che sia una delle mosse disponibili. Una volta che il giocatore ha inserito una mossa valida, stampa un messaggio di conferma.
Mentre (userChoice no In moveOptions):
sceltautente = input("Scelta non valida. Deve essere sasso, carta o forbici: ").inferiore()
stampa("")
stampa(f"Hai scelto {sceltautente}.")
Come fare i turni con il computer e confrontare le mosse
Una volta inserita la tua mossa, il computer farà il suo turno selezionando casualmente "sasso", "carta" o "forbici". Il gioco dovrà quindi confrontare la tua mossa con quella del computer per determinare chi ha vinto.
- Usa il modulo casuale per fare in modo che il computer selezioni casualmente dall'elenco delle mosse disponibili.
computerChoice = random.choice (moveOptions)
stampa(f"Il computer ha scelto {computerChoice}.") - Dovrai confrontare la tua mossa con quella del computer per determinare chi ha vinto. Puoi farlo creando un nuovo dizionario. Questo dizionario contiene ogni mossa (ad esempio, "rock"), e su quale mossa vince o perde (ad esempio, "rock" batte "scissors" e perde contro "paper").
mosse = {
'roccia': { 'batte': 'forbici', 'perde a': 'carta' },
'forbici': { 'batte': 'carta', 'perde a': 'roccia' },
'carta': { 'batte': 'roccia', 'perde a': 'forbici' },
} -
Usa l'istruzione if di Python per verificare se la tua mossa e quella del computer portano a un pareggio. Altrimenti, usa il dizionario delle mosse per confrontare la mossa del giocatore con quella del computer.
Ad esempio, se scegli "rock", il valore di mosse[userChoice]['beats'] sarà "scissors". Se la scelta del computer è stata "forbici", significa che la tua mossa ha battuto la loro.se userChoice == computerChoice:
stampa(f"Sia tu che il computer avete scelto {sceltautente}. È una cravatta!")
altro:
Se (mosse[userChoice]['batte'] == scelta del computer):
stampa(F"{sceltautente} batte {computerChoice}. Hai vinto!")
Se (mosse[userChoice]['perde a'] == scelta del computer):
stampa(F"{sceltautente} perde a {computerChoice}. Il computer vince!")
Come mantenere il punteggio tra il giocatore e il computer tra più round
Puoi anche aggiungere round aggiuntivi, in cui tu e il computer fate tre turni ciascuno.
Una volta che tu e il computer avrete scelto sasso, carta o forbici, il gioco vi chiederà di nuovo e terrà traccia dei vostri punteggi. Il punteggio per il giocatore aumenta in base a chi ha vinto quel particolare round.
- Il codice attuale rappresenta un singolo giro di turni effettuato sia dal giocatore che dal computer. Aggiungi tutto il codice corrente ad eccezione dell'istruzione import all'interno di una nuova funzione turn(). Puoi anche modificare i messaggi di output di conseguenza, per dire "Hai vinto questo round" anziché "Hai vinto":
defgiro():
sceltautente = input("Sasso, carta o forbici? ").inferiore()mossaOpzioni = ['roccia', 'carta', 'forbici']
Mentre (userChoice no In moveOptions):
sceltautente = input("Scelta non valida. Deve essere sasso, carta o forbici: ").inferiore()stampa("")
stampa(f"Hai scelto {sceltautente}.")computerChoice = random.choice (moveOptions)
stampa(f"Il computer ha scelto {computerChoice}.")mosse = {
'roccia': { 'batte': 'forbici', 'perde a': 'carta' },
'forbici': { 'batte': 'carta', 'perde a': 'roccia' },
'carta': { 'batte': 'roccia', 'perde a': 'forbici' },
}se userChoice == computerChoice:
stampa(f"Sia tu che il computer avete scelto {sceltautente}. È una cravatta!")
altro:
Se (mosse[userChoice]['batte'] == scelta del computer):
stampa(F"{sceltautente} batte {computerChoice}. Hai vinto questo round!")Se (mosse[userChoice]['perde a'] == scelta del computer):
stampa(F"{sceltautente} perde a {computerChoice}. Il computer vince!") - Il giocatore e il computer possono fare tre turni ciascuno. Aggiungi una variabile globale chiamata "turns" all'inizio del file.
giri = 3
- Dopo la funzione turn(), usa un ciclo Python for ripetere il giro tre volte. All'inizio di ogni round, stampa il numero del round. Chiama la funzione turn() per chiedere al giocatore e al computer di fare le loro mosse per quel round.
per i nell'intervallo (giri):
stampa("")
stampa(f" Rotondo {i+1}: ")
giro() - Per tenere traccia di chi ha vinto ogni round, aggiungi una variabile di punteggio per ogni giocatore, nella parte superiore del file. Assegnerai valori a queste variabili all'interno della funzione turn(), quindi assicurati di usarle come variabili globali.
Punteggio computer = 0
giocatoreScore = 0defgiro():
globale computerScore, playerScore - All'interno della funzione turn(), una volta che sia il giocatore che il computer hanno fatto la loro mossa, aggiungi un punto al punteggio del vincitore. Modificare l'istruzione if per incrementare il valore della variabile "playerScore" o "computerScore".
Se (mosse[userChoice]['batte'] == scelta del computer):
stampa(F"{sceltautente} batte {computerChoice}. Hai vinto questo round!")
punteggio giocatore += 1Se (mosse[userChoice]['perde a'] == scelta del computer):
stampa(F"{sceltautente} perde a {computerChoice}. Il computer vince!")
Punteggio computer += 1 - Alla fine della funzione turn(), stampa un aggiornamento dei punteggi totali per ciascun giocatore.
# Stampa un aggiornamento sui punteggi totali dopo il round
stampa("")
stampa(f"TABELLONE | Punteggio del giocatore: {playerScore} | Punteggio del computer: {computerScore}") - Alla fine del gioco, e dopo il ciclo for che ripete i turni del giocatore e del computer, stampa il vincitore finale.
stampa("")
if (punteggio computer > punteggio giocatore):
stampa(f"Il computer vince con {computerScore} punti!")
elif (playerScore > computerScore):
stampa(f"Hai vinto con {playerScore} punti!")
altro:
stampa(f"È un pareggio! Entrambi vincete con {playerScore} punti!")
Come eseguire il gioco
Per giocare, esegui lo script Python utilizzando un terminale o un prompt dei comandi. Inserisci la tua mossa e attendi che il computer faccia la sua. Dopo aver completato tre round, il programma visualizzerà il vincitore.
- Apri un prompt dei comandi o un terminale e vai alla cartella in cui stai memorizzando il tuo file Python.
- Usa il comando python per eseguire lo script:
pitoneSasso carta forbici.py
- Gioca inserendo "sasso", "carta" o "forbici".
Impara Python creando giochi
La creazione di giochi semplici come un gioco "Sasso, carta, forbici" è un ottimo modo per acquisire familiarità con i concetti di programmazione. Ci sono così tanti altri giochi divertenti che puoi realizzare usando Python, come un gioco di avventura basato su testo.