Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Med uppskattningsvis 2,5 miljarder fans är cricket en av de största och mest populära sporterna i världen. Bara i Indien är cricket värt hela 5,3 miljarder dollar. Sachin Tendulkar, Donald Bradman, Brian Lara och MS Dhoni är bara några få legender vars namn lever i miljoner människors hjärtan.

Det kommer inte som någon överraskning att cricket har hittat sin väg till virtuell verklighet, videospel och andra varianter som bok- och handcricket. Ta det här spelet ett steg längre genom att bygga ett handcricketspel med Python.

Vad är handcricket?

Handcricket är ett spel där två spelar tävlar mot varandra med sina fingrar. I varje tur visar båda spelarna ett nummer med sina fingrar samtidigt. Om poängen stämmer överens är slagmannen ute, annars får de sitt nummer som runs. Slutligen vinner den spelare som gör flest poäng spelet.

Du kan bygga detta spel och spela det mot en dator också. Istället för att hålla ut fingrarna för att representera partituren, anger du det i programmet. Python är ett av de enklaste och bekvämaste språken att använda. Om du inte har någon tidigare erfarenhet av att använda Python kan du komma igång med någon av dessa

instagram viewer
gratis online Python-kurser för nybörjare.

När du har lärt dig grunderna är det en bra idé att bygga miniprojekt och spel för att stärka ditt lärande. Du kan börja med att bygga en digital klocka, rulla tärningar, frågesport eller en ordräknare. Du kan också hämta inspiration från dessa Python-projektidéer för nybörjare.

Hur man bygger handcricketspel med Python

Du kan hitta källkoden för Hand Cricket Using Python i denna GitHub förvaret.

Importera det slumpmässiga biblioteket, som krävs för den första slängningen och datorns val. Definiera en funktion som heter input_num som accepterar två argument, min och max för att validera användarens inmatning. Använda inmatning() funktion, lagra antalet användaren anger variabeln num, och casta den från standardtypen String till heltal med hjälp av int().

Om antalet som användaren anger är större än maxgränsen eller lägre än minimigränsen, be användaren att ange ett giltigt val genom att anropa funktionen rekursivt. Om numret ligger inom intervallet, returnera det.

importera slumpmässig

definput_num(min Max):
num = int (input())

om antal > max eller antal < min:
skriva ut("Ange giltigt val")
lämna tillbaka input_num (min, max)
annan:
lämna tillbaka num

Definiera en funktion omgångar som accepterar den nuvarande slagmannen och körningarna att jaga som inmatningsargument. Be användaren att ange siffror inom intervallet ett till sex. Enligt reglerna för handcricket, om både användaren och datorn väljer samma nummer, är den nuvarande slagmannen ute.

Initiera en variabel total för att lagra det totala antalet poäng som gjorts av en slagman och ställa in det på noll. Börja en oändlig medan loop och ring input_num() funktion för att lagra och validera användarens input. Använd de slumpmässiga modulerna randint() funktion för att välja ett slumpmässigt tal mellan ett och sex för datorn.

Visa båda spelarnas val och kontrollera sedan om de är lika. Om de är det, visa att slagmannen är ute och returnera de totala runs de gjorde i den inningen.

Annars, kontrollera vem som slår och lägg till lämpligt värde till den totala poängen, antingen pnum eller cnum. Visa den aktuella poängen för slagmannen.

När det gäller den andra omgången vill du kontrollera om smeten redan har slagit poängen för sin motståndare. För att göra det, kontrollera om att jaga värdet är inte tomt och om slagmannens poäng är högre. Om så är fallet, returnera deras vinnande poäng.

defomgångar(slagman, att_jaga):
skriva ut("Ange siffror mellan 1 och 6. Om ni båda väljer samma nummer så " + slagman + " är ute")
totalt = 0

medanSann:
pnum = input_num(1, 6)
cnum = random.randint(1, 6)

skriva ut("Användaren valde", pnum)
skriva ut("Dator valde", cnum)

om pnum == cnum:
print (batsman + " är ute")
lämna tillbaka total
annan:
totalt = totalt + (pnum om slagman == "Användare"annan cnum)
print (batsman + "poäng är", totalt)
om att jaga ärinteIngenoch totalt > att_jaga:
lämna tillbaka total

Visa meddelandet för att kasta och validera användarens val med hjälp av input_num() fungera. Kasta myntet och lagra resultatet i variabeln mynt. Initiera standardvärdet för player_bowls till falskt. Om myntkastet stämmer överens med användarens val, vinner användaren kasten och väljer mellan vadd och bowling.

Ta användarens val och kontrollera om han har angett ett. Om ja, utvärdera uttrycket till sant och lagra i player_bowls variabel. Visa användarens val. Å andra sidan, om datorn vann kastningen, kör randint() och utvärdera lämpligt värde till player_bowls.

Visa datorns val och börja inningen.

skriva ut("Dags för att kasta, ange 0 för Heads och 1 för Tails")
val = input_num(0, 1)
mynt = random.randint(0, 1)
player_bowls = Falsk

om mynt == val:
skriva ut("Du har vunnit toss")
skriva ut("Välj 0 för att slå, 1 för att kasta")
player_bowls = input_num(0, 1) == 1

om player_bowls:
skriva ut("Du valde att bowla")
annan:
skriva ut("Du valde att slå")
annan:
skriva ut("Datorn vann toss")
player_bowls = random.randint(0, 1) == 1

om player_bowls:
skriva ut("Datorn valde att slå")
annan:
skriva ut("Datorn valde att bowla")

Om player_bowls är sant, datorn slår först och vice versa. Beräkna antalet poäng i en innings med hjälp av funktionen du definierade tidigare. Funktionen kräver namnet på den nuvarande slagmannen och körningarna för att jaga. När den första slagmannen sätter poängen, gör den till en valfri parameter och pass Ingen. För den andra inningen, passera slagmannens poäng som satte målet.

om player_bowls:
comp_score = innings("Dator", Ingen)
user_score = innings("Användare", comp_score)
annan:
user_score = innings("Användare", Ingen)
comp_score = innings("Dator", user_score)

Om datorn får mindre poäng än användaren vinner användaren och vice versa. Om poängen är desamma, visa oavgjort.

om comp_score < user_score:
skriva ut("Användaren vinner")
elif user_score < comp_score:
skriva ut("Datorn vinner")
annan:
skriva ut("Matchlott")

Sätt ihop all kod och gör dig redo att spela handcricket när som helst, var som helst med dina fingertoppar.

Resultatet av handcricket med Python

Du kan se resultatet av ett spel handcricket med Python enligt följande:

När du kör programmet ber programmet dig att välja ett val för slängningen och tilldelar lämpligt resultat. Om du vinner får du bestämma om du vill slå eller bolla annars fattar datorn ett beslut. Varje inning fortsätter tills siffrorna matchar och en är ute. Till slut jämför datorn slutresultatet och utser vinnaren.

Terminalbaserade spel i Python

Att bygga spel är ett fantastiskt sätt att lära sig Python och det är väldigt roligt. Du behöver inte vara expert för att börja koda och experimentera i Python. Med precis de rätta grunderna kan du bygga några fantastiska terminalspel.

Börja med att bygga Magic 8 Ball, Hangman, Rock Paper Scissors, Mad Libs Generator och Number Guessing Game. När du går vidare kan du utforska PyGame-biblioteket för att bygga dina alldeles egna grafiska videospel också.