Apytiksliai 2,5 milijardo gerbėjų turintis kriketas yra viena didžiausių ir populiariausių sporto šakų pasaulyje. Vien Indijoje kriketas kainuoja 5,3 milijardo dolerių. Sachinas Tendulkaras, Donaldas Bradmanas, Brianas Lara ir MS Dhoni yra tik keletas legendų, kurių vardai gyvena milijonų širdyse.
Nenuostabu, kad kriketas rado kelią į virtualią realybę, vaizdo žaidimus ir kitus variantus, pavyzdžiui, knygų ir rankų kriketą. Ženkite šį žaidimą dar vienu žingsniu sukurdami rankinį kriketo žaidimą naudodami Python.
Kas yra rankinis kriketas?
Rankinis kriketas yra žaidimas, kuriame du žaidžia vienas prieš kitą naudodami pirštus. Kiekviename posūkyje abu žaidėjai rodo skaičių pirštais tuo pačiu metu. Jei rezultatai sutampa, atmušėjas išeina iš aikštės, priešingu atveju jie įgyja savo skaičių bėgdami. Galiausiai žaidimą laimi daugiausiai taškų surinkęs žaidėjas.
Galite sukurti šį žaidimą ir žaisti prieš kompiuterį. Užuot ištiesę pirštus, kad pavaizduotų rezultatą, įvedate jį į programą. Python yra viena iš paprasčiausių ir patogiausių kalbų. Jei neturite patirties naudojant Python, galite paspartinti bet kurį iš jų nemokami internetiniai Python kursai pradedantiesiems.
Kai išmoksite pagrindus, pravartu kurti mini projektus ir žaidimus, kad sustiprintumėte savo mokymąsi. Galite pradėti nuo skaitmeninio laikrodžio kūrimo, kauliukų ridenimo, viktorinos ar žodžių skaitiklio. Iš jų taip pat galite pasisemti įkvėpimo Python projekto idėjos pradedantiesiems.
Kaip sukurti rankinį kriketo žaidimą naudojant Python
Čia galite rasti „Hand Cricket naudojant Python“ šaltinio kodą GitHub saugykla.
Importuokite atsitiktinę biblioteką, reikalingą pradiniam išmetimui ir kompiuterio pasirinkimams. Apibrėžkite funkciją pavadintą įvesties_num kuris priima du argumentus, min ir maks atitinkamai patvirtinti vartotojo įvestį. Naudojant įvestis () funkcija, išsaugokite vartotojo įvestą skaičių kintamajame nr, ir perkelkite ją iš numatytosios eilutės į sveikojo skaičiaus tipą naudodami int().
Jei naudotojo įvestas skaičius yra didesnis už didžiausią ribą arba mažesnis už minimalų limitą, paprašykite vartotojo įvesti tinkamą pasirinkimą iškviečiant funkciją rekursyviai. Jei skaičius yra diapazone, grąžinkite jį.
importuoti atsitiktinis
defįvesties_num(min., maks.):
skaičius = int (input ())
jeigu skaičius > maks arba skaičius < min:
spausdinti („Įveskite tinkamą pasirinkimą“)
grąžinti įvesties_skaičius (min., maks.)
Kitas:
grąžinti nr
Apibrėžkite funkciją padavimai kuris priima dabartinį mušėją ir bėgimus persekioti kaip įvesties argumentus. Paprašykite vartotojo įvesti skaičius nuo vieno iki šešių. Pagal rankinio kriketo taisykles, jei ir vartotojas, ir kompiuteris pasirenka tą patį numerį, dabartinis mušėjas išeina.
Inicijuoti kintamąjį viso įrašyti visus mušėjo surinktus bėgimus ir nustatyti jį į nulį. Pradėkite begalybę kol kilpa ir skambinkite input_num() funkcija išsaugoti ir patvirtinti vartotojo įvestį. Naudokite atsitiktinį modulį randint () funkcija pasirinkti atsitiktinį skaičių nuo vieno iki šešių kompiuteriui.
Parodykite abiejų žaidėjų pasirinkimus, tada patikrinkite, ar jie yra lygūs. Jei taip, parodykite, kad atmušėjui nebeliko, ir grąžinkite visus bėgimus, kuriuos jis pelnė per tą padavimą.
Kitu atveju patikrinkite, kas muša, ir pridėkite atitinkamą reikšmę prie bendro balo pnum arba cnum. Parodykite dabartinį mušėjo rezultatą.
Antrojo padavimų atveju norite patikrinti, ar mušėjas jau įveikė savo varžovo rezultatą. Norėdami tai padaryti, patikrinkite, ar persekioti reikšmė nėra tuščia ir jei mušėjo rezultatas yra didesnis. Jei taip, grąžinkite jų laimėtą rezultatą.
defpadavimai(mušėjas, persekioti):
spausdinti („Įveskite skaičius nuo 1 iki 6. Jei abu pasirinksite tą patį numerį, tada " + mušėjas + " nėra")
iš viso = 0kolTiesa:
pnum = input_num(1, 6)
cnum = random.randint(1, 6)spausdinti („Vartotojas pasirinko“, pnum)
spausdinti („Pasirinktas kompiuteris“, cnum)
jeigu pnum == cnum:
spausdinti (betsman + " nėra")
grąžinti viso
Kitas:
iš viso = iš viso + (pn jeigu mušėjas == "Vartotojas"Kitas cnum)
spausdinti (betsman + "balas yra", iš viso)
jeigu persekioti yraneNė vienasir total > to_chase:
grąžinti viso
Parodykite pranešimą, kurį reikia išmesti, ir patvirtinkite vartotojo pasirinkimą naudodami input_num() funkcija. Išmeskite monetą ir išsaugokite rezultatą kintamajame moneta. Inicijuoti numatytąją reikšmę žaidėjų_dubenėliai meluoti. Jei monetos metamas atitinka vartotojo pasirinkimą, vartotojas laimi metimą ir pasirenka mušimą ar boulingą.
Paimkite vartotojo pasirinkimą ir patikrinkite, ar jis jį įvedė. Jei taip, įvertinkite išraišką į true ir išsaugokite žaidėjų_dubenėliai kintamasis. Rodyti vartotojo pasirinkimą. Kita vertus, jei kompiuteris laimėjo metimą, vykdykite randint () ir įvertinkite atitinkamą vertę žaidėjų_dubenėliai.
Parodykite kompiuterio pasirinkimą ir pradėkite padavimus.
spausdinti („Laikas mėtyti, įveskite 0, jei reikia galvos, o 1 – uodegą“)
pasirinkimas = input_num(0, 1)
moneta = atsitiktinis.randint(0, 1)
player_bowls = Netiesajeigu moneta == pasirinkimas:
spausdinti ("Jūs laimėjote lošimą")
spausdinti („Select 0 to bat, 1 to bowl“)
player_bowls = input_num(0, 1) == 1jeigu player_bowls:
spausdinti ("Jūs pasirinkote dubenį")
Kitas:
spausdinti („Tu pasirinkai muštis“)
Kitas:
spausdinti („Kompiuteris laimėjo lošimą“)
player_bowls = random.randint(0, 1) == 1
jeigu player_bowls:
spausdinti („Kompiuteris pasirinko muštis“)
Kitas:
spausdinti („Kompiuteris pasirinko dubenį“)
Jeigu žaidėjų_dubenėliai tiesa, pirmiausia kompiuteriai plaka ir atvirkščiai. Apskaičiuokite bėgimus, surinktus per padavimus, naudodami anksčiau apibrėžtą funkciją. Funkcijai reikalingas dabartinio mušėjo vardas ir bėgimai, kuriuos reikia persekioti. Kai pirmasis mušėjas nustato rezultatą, padarykite jį pasirenkamu parametru ir perduokite Nė vienas. Per antrą kėlimą perduokite taikinį nusistačiusį mušėjo rezultatą.
jeigu player_bowls:
comp_score = padavimai("Kompiuteris", Nė vienas)
user_score = padavimai("Vartotojas", comp_score)
Kitas:
user_score = padavimai("Vartotojas", Nė vienas)
comp_score = padavimai("Kompiuteris", user_score)
Jei kompiuteris surinko mažiau balų nei vartotojas, vartotojas laimi, ir atvirkščiai. Jei rezultatai yra vienodi, parodykite lygiąsias.
jeigu comp_score < user_score:
spausdinti ("Vartotojas laimi")
elifas user_score < comp_score:
spausdinti („Kompiuteris laimi“)
Kitas:
spausdinti („Rungtynių burtai“)
Sudėkite visą kodą ir pasiruoškite žaisti rankinį kriketą bet kada ir bet kur, po ranka.
Rankinio kriketo išvestis naudojant Python
Rankinio kriketo žaidimo rezultatą galite pamatyti naudodami Python:
Kai vykdote programą, programa prašo pasirinkti metimo pasirinkimą ir priskiria atitinkamą rezultatą. Jei laimite, turite nuspręsti, ar norite mušti, ar dubenį, kitaip kompiuteris nuspręs. Kiekvienas padavimas tęsiamas tol, kol skaičiai sutampa ir vienas išeina. Galiausiai kompiuteris palygina galutinį rezultatą ir paskelbia nugalėtoją.
Terminaliniai žaidimai Python
Žaidimų kūrimas yra nuostabus būdas išmokti Python ir yra labai smagu. Nereikia būti ekspertu, kad pradėtumėte koduoti ir eksperimentuoti Python. Turėdami tik tinkamus pagrindus, galite sukurti nuostabių terminalo žaidimų.
Pradėkite nuo „Magic 8 Ball“, „Hangman“, „Rock Paper Scissors“, „Mad Libs Generator“ ir „Skaičių spėjimo“ žaidimo. Eidami toliau naršykite PyGame biblioteką, kad sukurtumėte ir savo grafinius vaizdo žaidimus.