Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Z szacunkową liczbą 2,5 miliarda fanów krykiet jest jednym z największych i najpopularniejszych sportów na świecie. W samych Indiach krykiet jest wart aż 5,3 miliarda dolarów. Sachin Tendulkar, Donald Bradman, Brian Lara i MS Dhoni to tylko kilka legend, których nazwiska żyją w sercach milionów.

Nic dziwnego, że krykiet znalazł drogę do wirtualnej rzeczywistości, gier wideo i innych odmian, takich jak krykiet książkowy i ręczny. Posuń tę grę o krok dalej, budując grę w krykieta ręcznego za pomocą Pythona.

Co to jest krykiet ręczny?

Krykiet ręczny to gra, w której dwie osoby rywalizują ze sobą za pomocą palców. W każdej turze obaj gracze jednocześnie wyświetlają liczbę palcami. Jeśli wyniki się zgadzają, odbijający odpada, w przeciwnym razie zdobywają swój numer jako biegi. Na koniec gracz, który zdobędzie najwięcej punktów, wygrywa grę.

instagram viewer

Możesz zbudować tę grę i grać w nią także z komputerem. Zamiast wyciągać palce, aby przedstawić partyturę, wprowadzasz ją do programu. Python jest jednym z najłatwiejszych i najwygodniejszych w użyciu języków. Jeśli nie masz wcześniejszego doświadczenia w korzystaniu z Pythona, możesz szybko zapoznać się z dowolnym z nich darmowe kursy Pythona online dla początkujących.

Gdy nauczysz się podstaw, dobrym pomysłem jest tworzenie mini-projektów i gier, aby utrwalić swoją naukę. Możesz zacząć od zbudowania zegara cyfrowego, rzucania kośćmi, quizu lub licznika słów. Możesz także czerpać z nich inspirację Pomysły na projekty w Pythonie dla początkujących.

Jak zbudować grę w krykieta ręcznego za pomocą Pythona

Możesz znaleźć kod źródłowy Hand Cricket using Python w tym GitHub magazyn.

Zaimportuj losową bibliotekę, wymaganą do pierwszego rzutu i wyborów komputera. Zdefiniuj funkcję o nazwie numer_wejściowy który przyjmuje dwa argumenty, min I maks odpowiednio w celu sprawdzenia poprawności danych wprowadzonych przez użytkownika. Używając wejście() funkcja przechowuje liczbę, którą użytkownik wprowadza do zmiennej liczbai rzuć go z domyślnego typu String na Integer za pomocą int().

Jeśli liczba wprowadzona przez użytkownika jest większa niż limit maksymalny lub mniejsza niż limit minimalny, poproś użytkownika o wprowadzenie prawidłowego wyboru przez wywołanie funkcji rekurencyjnie. Jeśli liczba mieści się w zakresie, zwróć ją.

import losowy

poknumer_wejściowy(minimum maksimum):
liczba = int (input())

Jeśli liczba > maks Lub liczba < min:
wydrukować(„Wprowadź prawidłowy wybór”)
powrót input_num (min, max)
w przeciwnym razie:
powrót liczba

Zdefiniuj funkcję okres pełnienia obowiązków który akceptuje aktualnego odbijającego i biegi do ścigania jako argumenty wejściowe. Poproś użytkownika o wprowadzenie liczb z zakresu od jednego do sześciu. Zgodnie z zasadami gry w krykieta ręcznego, jeśli zarówno użytkownik, jak i komputer wybiorą ten sam numer, aktualny odbijający odpada.

Zainicjuj zmienną całkowity aby zapisać całkowitą liczbę obiegów zdobytych przez odbijającego i ustawić ją na zero. Rozpocznij nieskończoność chwila zapętlić i wywołać input_num() funkcja przechowywania i sprawdzania poprawności danych wprowadzonych przez użytkownika. Użyj losowego modułu Randint() funkcję wybierania losowej liczby od jednego do sześciu dla komputera.

Wyświetl wybory obu graczy, a następnie sprawdź, czy są one równe. Jeśli tak, pokaż, że odbijający jest wyautowany i zwróć sumę obiegów zdobytych w tych rundach.

W przeciwnym razie sprawdź, kto uderza i dodaj odpowiednią wartość do całkowitego wyniku pnum Lub cnum. Wyświetl aktualny wynik odbijającego.

W przypadku drugiego inningsa chcesz sprawdzić, czy pałkarz pobił już wynik przeciwnika. W tym celu sprawdź, czy gonić wartość nie jest pusta i jeśli wynik odbijającego jest wyższy. Jeśli tak, zwróć zwycięski wynik.

pokokres pełnienia obowiązków(odbijający, to_chase):
wydrukować("Wpisz cyfry od 1 do 6. Jeśli oboje wybierzesz ten sam numer, wtedy " + odbijający + "nie ma")
ogółem = 0

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

wydrukować(„Użytkownik wybrał”, pnum)
wydrukować(„Komputer wybrał”, liczba)

Jeśli pnum == cnum:
drukuj (odbijający + "nie ma")
powrót całkowity
w przeciwnym razie:
suma = suma + (pnum Jeśli odbijający == "Użytkownik"w przeciwnym razie cnum)
drukuj (odbijający + „wynik jest”, całkowity)
Jeśli gonić JestnieNicI łącznie > do_pogoni:
powrót całkowity

Wyświetl komunikat o rzuceniu i potwierdź wybór użytkownika za pomocą input_num() funkcjonować. Rzuć monetą i zapisz wynik w zmiennej moneta. Zainicjuj domyślną wartość miski_graczy za fałszywe. Jeśli rzut monetą pasuje do wyboru użytkownika, użytkownik wygrywa rzut i wybiera między mrugnięciem a kręgielnią.

Wybierz użytkownika i sprawdź, czy go wprowadził. Jeśli tak, oceń wyrażenie na true i zapisz w miski_graczy zmienny. Wyświetl wybór użytkownika. Z drugiej strony, jeśli komputer wygrał losowanie, wykonaj Randint() i oceń odpowiednią wartość miski_graczy.

Wyświetl wybór komputera i rozpocznij innings.

wydrukować(„Czas na rzut, wpisz 0 dla orłów i 1 dla reszek”)
wybór = numer_wejściowy (0, 1)
moneta = losowo.randint(0, 1)
miski_gracza = FAŁSZ

Jeśli moneta == wybór:
wydrukować(„Wygrałeś losowanie”)
wydrukować(„Wybierz 0 do kija, 1 do miski”)
miski_gracza = liczba_wejściowa(0, 1) == 1

Jeśli miski_gracza:
wydrukować(„Wybrałeś kręgle”)
w przeciwnym razie:
wydrukować(„Wybrałeś kij”)
w przeciwnym razie:
wydrukować(„Komputer wygrał losowanie”)
miski_gracza = random.randint(0, 1) == 1

Jeśli miski_gracza:
wydrukować(„Komputer wybrał kij”)
w przeciwnym razie:
wydrukować(„Komputer wybrał kręgle”)

Jeśli miski_graczy jest prawdą, komputer uderza pierwszy i odwrotnie. Oblicz obiegi zdobyte w inningsie za pomocą zdefiniowanej wcześniej funkcji. Funkcja wymaga nazwiska aktualnego odbijającego i biegów do pościgu. Gdy pierwszy odbijający ustala wynik, uczyń go parametrem opcjonalnym i pasuj Nic. W drugiej rundzie podaj wynik odbijającego, który ustawił cel.

Jeśli miski_gracza:
comp_score = innings("Komputer", Nic)
user_score = innings("Użytkownik", wynik_kompilacyjny)
w przeciwnym razie:
user_score = innings("Użytkownik", Nic)
comp_score = innings("Komputer", wynik_użytkownika)

Jeśli komputer uzyska mniej punktów niż użytkownik, wygrywa użytkownik i odwrotnie. W przypadku, gdy wyniki są takie same, wyświetl remis.

Jeśli wynik_kompilacji < wynik_użytkownika:
wydrukować(„Użytkownik wygrywa”)
Elif wynik_użytkownika < wynik_kompilacji:
wydrukować(„Komputer wygrywa”)
w przeciwnym razie:
wydrukować(„Remis meczowy”)

Połącz cały kod i przygotuj się do gry w krykieta ręcznego w dowolnym miejscu i czasie na wyciągnięcie ręki.

Dane wyjściowe krykieta ręcznego przy użyciu Pythona

Możesz zobaczyć wynik gry w krykieta ręcznego za pomocą Pythona w następujący sposób:

Kiedy uruchamiasz program, program prosi cię o wybranie opcji rzutu i przypisuje odpowiedni wynik. Jeśli wygrasz, możesz zdecydować, czy chcesz odbijać, czy rzucać, w przeciwnym razie komputer podejmie decyzję. Każda runda trwa do momentu, gdy numery się zgadzają i jeden odpada. Na koniec komputer porównuje wynik końcowy i ogłasza zwycięzcę.

Gry terminalowe w Pythonie

Tworzenie gier to niesamowity sposób na naukę języka Python, który zapewnia dużo zabawy. Nie musisz być ekspertem, aby zacząć kodować i eksperymentować w Pythonie. Dzięki odpowiednim podstawom możesz stworzyć niesamowite gry terminalowe.

Zacznij od zbudowania magicznej kuli ósemki, kata, nożyc do papieru kamiennego, generatora Mad Libs i gry w odgadywanie liczb. W miarę postępów eksploruj bibliotekę PyGame, aby tworzyć własne graficzne gry wideo.