Gioca a Hand Cricket usando Python
Con circa 2,5 miliardi di fan, il cricket è uno degli sport più grandi e popolari al mondo. Nella sola India, il cricket vale ben 5,3 miliardi di dollari. Sachin Tendulkar, Donald Bradman, Brian Lara e MS Dhoni sono solo alcune leggende i cui nomi vivono nel cuore di milioni di persone.
Non sorprende che il cricket abbia trovato la sua strada nella realtà virtuale, nei videogiochi e in altre varianti come il libro e il cricket a mano. Porta questo gioco un ulteriore passo avanti costruendo un gioco di cricket a mano usando Python.
Cos’è il cricket a mano?
Il cricket a mano è un gioco in cui due giocatori competono l’uno contro l’altro usando le dita. Ad ogni turno, entrambi i giocatori visualizzano un numero usando le dita contemporaneamente. Se i punteggi corrispondono, il battitore è eliminato, altrimenti guadagna il proprio numero man mano che corre. Alla fine, il giocatore che segna di più vince la partita.
Puoi creare questo gioco e giocarci anche contro un computer. Invece di tendere le dita per rappresentare lo spartito, lo inserisci nel programma. Python è uno dei linguaggi più facili e convenienti da usare. Se non hai alcuna esperienza precedente nell’uso di Python, puoi aggiornarti con uno qualsiasi di questi corsi Python online gratuiti per principianti.
Una volta apprese le basi, è una buona idea costruire mini-progetti e giochi per consolidare il tuo apprendimento. Puoi iniziare costruendo un orologio digitale, lanciando dadi, quiz o un contatore di parole. Puoi anche trarre ispirazione da queste idee di progetti Python per principianti.
Come costruire un gioco di cricket a mano usando Python
Importa la libreria casuale, necessaria per il lancio iniziale e le scelte del computer. Definire una funzione denominata input_num che accetti due argomenti, rispettivamente min e max , per convalidare l’input dell’utente. Usando la funzione input() , memorizza il numero che l’utente inserisce nella variabile num e lo trasforma dal tipo String predefinito a Integer usando int() .
Se il numero inserito dall’utente è maggiore del limite massimo o minore del limite minimo, chiedere all’utente di inserire una scelta valida chiamando la funzione in modo ricorsivo. Se il numero rientra nell’intervallo, restituirlo.
import random
def input_num(min, max):
num = int(input())
if num > max or num < min:
print("Enter valid choice")
return input_num(min, max)
else:
return num
Definire una funzione inning che accetti l’attuale battitore e le corse da inseguire come argomenti di input. Chiedere all’utente di inserire numeri compresi nell’intervallo da uno a sei. Secondo le regole del cricket a mano, se sia l’utente che il computer scelgono lo stesso numero, l’attuale battitore è eliminato.
Inizializza un totale variabile per memorizzare le corse totali segnate da un battitore e impostalo su zero. Inizia un ciclo while infinito e chiama la funzione input_num() per archiviare e convalidare l’input dell’utente. Usa la funzione randint() del modulo random per scegliere un numero casuale compreso tra uno e sei per il computer.
Mostra le scelte di entrambi i giocatori, quindi controlla se sono uguali. Se lo sono, mostra che il battitore è eliminato e restituisci i punti totali che ha segnato in quell’inning.
Altrimenti, controlla chi sta battendo e aggiungi il valore appropriato al punteggio totale, pnum o cnum . Mostra il punteggio attuale del battitore.
Nel caso del secondo inning, vuoi controllare se il battitore ha già battuto il punteggio del suo avversario. Per fare ciò, controlla se il valore to_chase non è vuoto e se il punteggio del battitore è maggiore. In tal caso, restituire il punteggio vincente.
def innings(batsman, to_chase):
print("Enter numbers between 1 and 6. If you both choose the same number then " + batsman + "is out")
total = 0
while True:
pnum = input_num(1, 6)
cnum = random.randint(1, 6)
print("User chose", pnum)
print("Computer chose", cnum)
if pnum == cnum:
print(batsman + "is out")
return total
else:
total = total + (pnum if batsman == "User" else cnum)
print(batsman + "score is", total)
if to_chase is not None and total > to_chase:
return total
Visualizza il messaggio per il lancio e convalida la scelta dell’utente utilizzando la funzione input_num() . Lancia la moneta e memorizza il risultato nella variabile coin . Inizializza il valore predefinito di player_bowls su false. Se il lancio della moneta corrisponde alla scelta dell’utente, l’utente vince il lancio e sceglie tra battuta e bowling.
Prendi la scelta dell’utente e controlla se ne ha inserita una. In caso affermativo, valutare l’espressione su true e memorizzarla nella variabile player_bowls . Visualizza la scelta dell’utente. D’altra parte, se il computer ha vinto il sorteggio, eseguire randint() e valutare il valore appropriato per player_bowls .
Visualizza la scelta del computer e inizia l’inning.
print("Time for toss, Enter 0 for Heads and 1 for Tails")
choice = input_num(0, 1)
coin = random.randint(0, 1)
player_bowls = False
if coin == choice:
print("You have won the toss")
print("Select 0 to bat, 1 to bowl ")
player_bowls = input_num(0, 1) == 1
if player_bowls:
print("You chose to bowl")
else:
print("You chose to bat")
else:
print("Computer won the toss")
player_bowls = random.randint(0, 1) == 1
if player_bowls:
print("Computer chose to bat")
else:
print("Computer chose to bowl")
Se player_bowls è vero, il computer batte per primo e viceversa. Calcola i punti segnati in un inning utilizzando la funzione definita in precedenza. La funzione richiede il nome dell’attuale battitore e le corse da inseguire. Quando il primo battitore imposta il punteggio, rendilo un parametro facoltativo e passa None . Per il secondo inning, passa il punteggio del battitore che ha fissato il bersaglio.
if player_bowls:
comp_score = innings("Computer", None)
user_score = innings("User", comp_score)
else:
user_score = innings("User", None)
comp_score = innings("Computer", user_score)
Se il computer ottiene un punteggio inferiore all’utente, l’utente vince e viceversa. Nel caso in cui i punteggi siano gli stessi, visualizza un pareggio.
if comp_score < user_score:
print("User wins")
elif user_score < comp_score:
print("Computer wins")
else:
print("Match draw")
Metti insieme tutto il codice e preparati a giocare a hand cricket sempre e ovunque a portata di mano.
L’output di Hand Cricket usando Python
Puoi vedere l’output di una partita di hand cricket Usando Python come segue:
Quando esegui il programma, il programma ti chiede di scegliere una scelta per il lancio e assegna il risultato appropriato. Se vinci, puoi decidere se vuoi battere o lanciare, altrimenti il computer prende una decisione. Ogni inning continua finché i numeri non corrispondono e uno è eliminato. Alla fine, il computer confronta il punteggio finale e dichiara il vincitore.
Giochi basati su terminale in Python
Costruire giochi è un modo fantastico per imparare Python ed è molto divertente. Non devi essere un esperto per iniziare a programmare e sperimentare in Python. Con le basi giuste, puoi creare fantastici giochi per terminali.
Inizia costruendo Magic 8 Ball, Hangman, Rock Paper Scissors, Mad Libs Generator e il gioco di indovinare i numeri. Mentre avanzi ulteriormente, esplora la libreria PyGame per creare anche i tuoi videogiochi grafici.
Lascia un commento