Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

S odhadovanými 2,5 miliardami fanúšikov je kriket jedným z najväčších a najpopulárnejších športov na svete. Len v Indii má kriket hodnotu neuveriteľných 5,3 miliardy dolárov. Sachin Tendulkar, Donald Bradman, Brian Lara a MS Dhoni sú len niektoré legendy, ktorých mená žijú v srdciach miliónov ľudí.

Nie je žiadnym prekvapením, že kriket si našiel cestu do virtuálnej reality, videohier a ďalších variácií, ako je knižný a ručný kriket. Posuňte túto hru o krok ďalej vytvorením ručného kriketu pomocou Pythonu.

Čo je to ručný kriket?

Ručný kriket je hra, v ktorej dvaja hrajú proti sebe pomocou prstov. V každom ťahu obaja hráči zobrazia číslo pomocou prstov súčasne. Ak sa skóre zhoduje, pálkar je mimo, v opačnom prípade získava svoje číslo ako behy. Nakoniec hru vyhráva hráč, ktorý dosiahne najviac bodov.

Túto hru si môžete postaviť a hrať aj proti počítaču. Namiesto toho, aby ste natiahli prsty na znázornenie partitúry, zadáte ju do programu. Python je jedným z najjednoduchších a najpohodlnejších jazykov na používanie. Ak nemáte žiadne predchádzajúce skúsenosti s používaním Pythonu, môžete sa zdokonaliť v ktoromkoľvek z nich

instagram viewer
bezplatné online kurzy Pythonu pre začiatočníkov.

Keď sa naučíte základy, je dobré vytvárať miniprojekty a hry, ktoré upevnia vaše učenie. Môžete začať stavaním digitálnych hodín, hodením kockou, kvízom alebo počítadlom slov. Môžete sa nimi inšpirovať aj vy Nápady na projekt Python pre začiatočníkov.

Ako vytvoriť ručný kriket pomocou Pythonu

Zdrojový kód Hand Cricket Using Python nájdete v tomto GitHub Úložisko.

Importujte náhodnú knižnicu, ktorá je potrebná na úvodný hod a voľby počítača. Definujte funkciu s názvom vstupné číslo to akceptuje dva argumenty, min a max respektíve na overenie vstupu používateľa. Pomocou vstup() uložte číslo zadané používateľom do premennej ča preneste ho z predvoleného typu String na typ Integer pomocou int().

Ak je číslo, ktoré používateľ zadá, väčšie ako maximálny limit alebo nižšie ako minimálny limit, požiadajte používateľa, aby zadal platnú voľbu do volanie funkcie rekurzívne. Ak je číslo v rozsahu, vráťte ho.

importovať náhodný

defvstupné číslo(min, max.):
num = int (vstup())

ak počet > max alebo počet < min:
vytlačiť ("Zadajte platnú voľbu")
vrátiť input_num (min, max)
inak:
vrátiť č

Definujte funkciu smeny ktorý akceptuje aktuálneho batsmana a beží na prenasledovanie ako vstupné argumenty. Požiadajte používateľa, aby zadal čísla v rozsahu od jednej do šiestich. Podľa pravidiel ručného kriketu, ak používateľ aj počítač zvolia rovnaké číslo, aktuálny pálkar je out.

Inicializujte premennú Celkom uložiť celkový počet nájazdov skórovaných pálkarom a nastaviť ho na nulu. Začnite nekonečno zatiaľ čo slučku a zavolajte na input_num() funkcia na uloženie a overenie vstupu používateľa. Použite náhodné moduly randint() funkcia na výber náhodného čísla medzi jedna a šesť pre počítač.

Zobrazte voľby oboch hráčov a potom skontrolujte, či sú rovnaké. Ak áno, ukážte, že pálkar je mimo a vráťte mu celkový počet nájazdov, ktoré skórovali v týchto zmenách.

V opačnom prípade skontrolujte, kto pálkuje a pridajte príslušnú hodnotu k celkovému skóre pnum alebo cnum. Zobrazte aktuálne skóre pálkara.

V prípade druhej zmeny si chcete overiť, či pálkar už prekonal skóre svojho súpera. Ak to chcete urobiť, skontrolujte, či je naháňať hodnota nie je prázdna a ak je skóre pálkara väčšie. Ak áno, vráťte im víťazné skóre.

defsmeny(batsman, to_chase):
vytlačiť ("Zadajte čísla medzi 1 a 6. Ak si obaja vyberiete rovnaké číslo, potom " + pálkar + " je vonku")
celkom = 0

zatiaľ čoPravda:
pnum = input_num(1, 6)
cnum = random.randint(1, 6)

vytlačiť ("Používateľ si vybral", pnum)
vytlačiť ("Počítač vybral", cnum)

ak pnum == cnum:
tlač (pálkar + " je vonku")
vrátiť Celkom
inak:
celkom = celkom + (pnum ak pálkar == "používateľ"inak cnum)
tlač (pálkar + "skóre je", Celkom)
ak naháňať jeniežiadnea celkom > to_chase:
vrátiť Celkom

Zobrazte správu na hod a potvrďte voľbu používateľa pomocou tlačidla input_num() funkciu. Hoďte si mincou a výsledok uložte do premennej mince. Inicializujte predvolenú hodnotu player_bowls na falošné. Ak sa hod mincou zhoduje s výberom používateľa, používateľ vyhrá hádzanie a vyberie si medzi pálkou a bowlingom.

Vyberte si používateľa a skontrolujte, či ho zadal. Ak áno, vyhodnoťte výraz ako true a uložte ho do player_bowls premenlivý. Zobrazte voľbu používateľa. Na druhej strane, ak počítač vyhral los, vykonajte randint() a vyhodnotiť príslušnú hodnotu player_bowls.

Zobrazte výber počítača a začnite hrať.

vytlačiť ("Čas na hádzanie, zadajte 0 pre hlavy a 1 pre chvosty")
voľba = input_num(0, 1)
coin = random.randint(0, 1)
player_bowls = Nepravdivé

ak minca == výber:
vytlačiť ("Vyhrali ste žreb")
vytlačiť ("Vyberte 0 pre pálku, 1 pre misku")
player_bowls = input_num(0, 1) == 1

ak player_bowls:
vytlačiť ("Vybrali ste si bowling")
inak:
vytlačiť ("Vybrali ste si pálku")
inak:
vytlačiť ("Počítač vyhral los")
player_bowls = random.randint(0, 1) == 1

ak player_bowls:
vytlačiť ("Počítač sa rozhodol odpáliť")
inak:
vytlačiť ("Počítač sa rozhodol prehrať")

Ak player_bowls je pravda, že počítač pálí prvý a naopak. Pomocou funkcie, ktorú ste definovali skôr, vypočítajte počet behov v inningoch. Funkcia vyžaduje meno aktuálneho batsmana a behy na prenasledovanie. Ako prvý pálkar nastaví skóre, urobte to ako voliteľný parameter a prihrajte žiadne. Pre druhú smenu odovzdajte skóre pálkara, ktorý stanovil cieľ.

ak player_bowls:
comp_score = innings("počítač", žiadne)
user_score = innings("používateľ", comp_score)
inak:
user_score = innings("používateľ", žiadne)
comp_score = innings("počítač", user_score)

Ak počítač dosiahne nižšie skóre ako používateľ, používateľ vyhráva a naopak. V prípade, že sú skóre rovnaké, ukážte remízu.

ak comp_score < user_score:
vytlačiť ("Používateľ vyhráva")
elif user_score < comp_score:
vytlačiť ("Počítač víťazí")
inak:
vytlačiť ("žrebovanie zápasu")

Zložte celý kód a pripravte sa hrať kriket kedykoľvek a kdekoľvek priamo na dosah ruky.

Výstup ručného kriketu pomocou Pythonu

Výstup kriketovej hry pomocou Pythonu môžete vidieť takto:

Keď spustíte program, program vás požiada, aby ste si vybrali voľbu pre hádzanie a priradí príslušný výsledok. Ak vyhráte, budete sa musieť rozhodnúť, či chcete odpáliť alebo bowling, inak sa rozhodne počítač. Každá zmena pokračuje, kým sa čísla nezhodujú a kým nie je jedno vypadnutie. Na záver počítač porovná konečné skóre a vyhlási víťaza.

Hry založené na termináloch v Pythone

Budovateľské hry sú úžasným spôsobom, ako sa naučiť Python, a sú veľmi zábavné. Nemusíte byť expert, aby ste mohli začať kódovať a experimentovať v Pythone. So správnymi základmi môžete vytvoriť úžasné terminálové hry.

Začnite stavbou Magic 8 Ball, Hangman, Rock Paper Scissors, Mad Libs Generator a Number Guesing Game. Ako budete postupovať ďalej, preskúmajte knižnicu PyGame a vytvorte si aj svoje vlastné grafické videohry.