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ę.
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 = 0chwilaPRAWDA:
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ŁSZJeśli moneta == wybór:
wydrukować(„Wygrałeś losowanie”)
wydrukować(„Wybierz 0 do kija, 1 do miski”)
miski_gracza = liczba_wejściowa(0, 1) == 1Jeś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.