Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Med anslået 2,5 milliarder fans er cricket en af ​​de største og mest populære sportsgrene i verden. Alene i Indien er cricket hele 5,3 milliarder dollars værd. Sachin Tendulkar, Donald Bradman, Brian Lara og MS Dhoni er blot nogle få legender, hvis navne lever i millioners hjerter.

Det kommer ikke som nogen overraskelse, at cricket har fundet vej til virtual reality, videospil og andre variationer som bog- og håndcricket. Tag dette spil et skridt videre ved at bygge et håndcricketspil ved hjælp af Python.

Hvad er håndcricket?

Håndcricket er et spil, hvor to spiller konkurrerer mod hinanden ved hjælp af deres fingre. I hver omgang viser begge spillere et nummer med deres fingre på samme tid. Hvis scoringerne matcher, er batsman ude, ellers får de deres nummer som runs. Endelig vinder den spiller, der scorer flest, spillet.

Du kan også bygge dette spil og spille det mod en computer. I stedet for at holde fingrene frem for at repræsentere partituret, indtaster du det i programmet. Python er et af de nemmeste og mest bekvemme sprog at bruge. Hvis du ikke har nogen tidligere erfaring med at bruge Python, kan du komme i gang med nogen af ​​disse

instagram viewer
gratis online Python-kurser for begyndere.

Når du har lært det grundlæggende, er det en god idé at bygge miniprojekter og spil for at styrke din læring. Du kan starte med at bygge et digitalt ur, kaste terninger, quiz eller en ordtæller. Du kan også hente inspiration fra disse Python-projektideer for begyndere.

Sådan bygger du håndcricketspil ved hjælp af Python

Du kan finde kildekoden til Hand Cricket Using Python i denne GitHub depot.

Importer det tilfældige bibliotek, der kræves til den indledende kast og computerens valg. Definer en funktion med navn input_num der accepterer to argumenter, min og max for at validere brugerens input. Bruger input() funktion, gemme det antal, brugeren indtaster i variabel num, og cast den fra standardstrengen til heltal-typen ved hjælp af int().

Hvis antallet, som brugeren indtaster, er større end maksimumgrænsen eller mindre end minimumsgrænsen, skal du bede brugeren om at indtaste et gyldigt valg ved at kalder funktionen rekursivt. Hvis tallet er inden for intervallet, skal du returnere det.

importere tilfældig

definput_num(min, max):
num = int (input())

hvis antal > maks eller antal < min:
Print("Indtast gyldigt valg")
Vend tilbage input_num (min., maks.)
andet:
Vend tilbage num

Definer en funktion omgange der accepterer den aktuelle batsman og løbene til jagten som input-argumenter. Bed brugeren om at indtaste tal inden for intervallet et til seks. Ifølge reglerne for håndcricket, hvis både brugeren og computeren vælger det samme nummer, er den nuværende batsman ude.

Initialiser en variabel Total at gemme det samlede antal løb scoret af en batsman og sætte det til nul. Begynd en uendelig mens sløjfe og kalde input_num() funktion til at gemme og validere brugerens input. Brug de tilfældige moduler randint() funktion til at vælge et tilfældigt tal mellem en og seks for computeren.

Vis begge spilleres valg, og tjek derefter, om de er lige. Hvis de er, skal du vise, at batsman er ude, og returnere det samlede antal runs, de scorede i den innings.

Ellers skal du kontrollere, hvem der slår og tilføje den passende værdi til den samlede score pnum eller cnum. Vis batsmandens aktuelle score.

I tilfælde af anden innings, vil du gerne tjekke, om batteren allerede har slået modstanderens score. For at gøre det skal du kontrollere, om at jage værdien ikke er tom, og hvis batsmans score er større. Hvis det er tilfældet, returner deres vinderresultat.

defomgange(batsman, to_chase):
Print("Indtast tal mellem 1 og 6. Hvis I begge vælger det samme nummer, så " + batsmand + " er ude")
i alt = 0

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

Print("Brugeren har valgt", pnum)
Print("Computer valgt", cnum)

hvis pnum == cnum:
print (batsman + " er ude")
Vend tilbage Total
andet:
total = total + (pnum hvis batsman == "Bruger"andet cnum)
print (batsman + "score er", Total)
hvis at jage erikkeIngenog total > at_chase:
Vend tilbage Total

Vis beskeden for smid, og bekræft brugerens valg ved hjælp af input_num() fungere. Kast mønten og gem resultatet i variablen mønt. Initialiser standardværdien for player_bowls til falsk. Hvis møntklappen matcher brugerens valg, vinder brugeren kastet og vælger mellem batting og bowling.

Tag brugerens valg og tjek om han har indtastet en. Hvis ja, evaluer udtrykket til sandt og gem det i player_bowls variabel. Vis brugerens valg. På den anden side, hvis computeren vandt lodtrækningen, udfør randint() og vurdere den passende værdi til player_bowls.

Vis computerens valg og start inningen.

Print("Tid til kast, indtast 0 for hoveder og 1 for haler")
valg = input_num(0, 1)
mønt = random.randint(0, 1)
player_bowls = Falsk

hvis mønt == valg:
Print("Du har vundet lodtrækningen")
Print("Vælg 0 for at slå, 1 for at kaste")
player_bowls = input_num(0, 1) == 1

hvis player_bowls:
Print("Du valgte at bowle")
andet:
Print("Du valgte at slå")
andet:
Print("Computeren vandt lodtrækningen")
player_bowls = random.randint(0, 1) == 1

hvis player_bowls:
Print("Computeren valgte at batte")
andet:
Print("Computeren valgte at bowle")

Hvis player_bowls er sandt, slår computeren først og omvendt. Beregn de scorede løb i en innings ved hjælp af den funktion, du definerede tidligere. Funktionen kræver navnet på den aktuelle batsman og løbene for at jage. Når den første batsman sætter scoren, skal du gøre den til en valgfri parameter og afgive Ingen. For den anden innings skal du videregive den slagmandsscore, der satte målet.

hvis player_bowls:
comp_score = innings("Computer", Ingen)
user_score = innings("Bruger", comp_score)
andet:
user_score = innings("Bruger", Ingen)
comp_score = innings("Computer", bruger_score)

Hvis computeren scorer mindre end brugeren, vinder brugeren og omvendt. Hvis resultaterne er de samme, skal du vise uafgjort.

hvis comp_score < user_score:
Print("Brugeren vinder")
elif bruger_score < comp_score:
Print("Computeren vinder")
andet:
Print("kamp lodtrækning")

Sæt al koden sammen, og gør dig klar til at spille håndcricket når som helst og hvor som helst lige ved hånden.

Outputtet af håndcricket ved hjælp af Python

Du kan se resultatet af et spil håndcricket ved at bruge Python som følger:

Når du udfører programmet, beder programmet dig om at vælge et valg for kastet og tildeler det passende resultat. Hvis du vinder, kan du bestemme, om du vil batte eller bowle, ellers træffer computeren en beslutning. Hver inning fortsætter, indtil tallene matcher, og en er ude. Til sidst sammenligner computeren den endelige score og erklærer vinderen.

Terminalbaserede spil i Python

At bygge spil er en fantastisk måde at lære Python på, og det er meget sjovt. Du behøver ikke at være ekspert for at begynde at kode og eksperimentere i Python. Med det helt rigtige fundament kan du bygge nogle fantastiske terminalspil.

Start med at bygge Magic 8 Ball, Hangman, Rock Paper Scissors, Mad Libs Generator og talgættespillet. Når du går videre, kan du udforske PyGame-biblioteket for også at bygge dine helt egne grafiske videospil.