Hranie je jednou z foriem zábavy dostupnej ľuďom. Hry všetkého druhu sú dostupné online, na mobilných zariadeniach, na stolných počítačoch atď. Teraz nie je čas vytvárať jednu z týchto náročných hier.
Pomocou Pythonu vytvoríme CLI tic-tac-toe hru. Využime Python na vytvorenie jednoduchej hry Tic Tac Toe. Pomôže vám pri vytváraní hernej logiky a pri učení sa, ako organizovať kód.
Piškôrky
Skôr ako začneme s kódovaním, myslel som si, že by som rýchlo zhrnul hru a prediskutoval môj plán na jej vývoj.
Po prvé, vytvoríme predpoklad, že X vždy prevezmú iniciatívu a pohybujú sa ako prvé, čím používateľovi dávajú príležitosť konať.
Z konzoly sa zadá číslo medzi 1 a 9. V mriežke, kde každé číslo zodpovedá inému číslu (vľavo hore je 1, vpravo dole je 9).
Počítač automaticky určí a vykoná svoj pohyb, keď sa používateľ pohne. Využijem jednu primárnu hernú slučku, ktorá vyvoláva množstvo rôznych rutín.
Ktorá funkcia sa dokončuje, je pravdepodobne uvedená v každej hlavičke tejto textovej lekcie.
Navrhovanie dosky
Našu dosku znázorníme pomocou rozloženia mriežky, ako som už naznačil. Na tento účel vytvoríme zoznam s názvom board v Pythone a začne s 10 prázdnymi hodnotami.
Pretože používateľ môže zadávať iba čísla 1 až 9, nie 0 až 8, máme 10 prázdnych hodnôt namiesto 9. Takže, aby sme veci zjednodušili, dáme prvému záznamu nášho zoznamu hodnotu „prázdny text“.
Týmto spôsobom môžeme použiť 1–9 namiesto 0–8 na indexovanie záznamov v našom zozname.
insertLetter()
Letter a Pos budú dva vstupy pre túto funkciu. Požadovaný list umiestni iba na požadované miesto.
spaceIsFree(pos)
Jednoducho povedané, táto metóda nás informuje, či je zadaná oblasť voľná. Preto tam už nie je žiadny list. Pos, jeho jediný argument, bude celé číslo medzi 1 a 9.
doska (doska)
Doska je odoslaná ako argument tejto metódy, ktorá ju zobrazí na konzole.
isWinner()
Na základe aktuálnej tabule nám táto funkcia oznámi, či dodaný list vyhral. Má dva parametre: le a board (písmeno).
Musí to byť „X“ alebo „O“. Stačí sa pozrieť, či sa uvedené písmeno nachádza na každej potenciálnej výhernej línii na hracej ploche.
Hlavná()
Keď chceme spustiť hru, nazveme túto metódu. Zavolá každú jednu z mnohých funkcií nášho programu a určí, ako má program bežať.
isBoardFull()
Keď je táto metóda zadaná ako vstup, táto metóda jednoducho vráti True, ak je tabuľa plná, a False v opačnom prípade.
playerMove()
Pri tejto metóde požiadame používateľa o presun a overíme ho. List bude pridaný na nástenku, ak je ťah legitímny. Ak nie, budeme naďalej požadovať spätnú väzbu od používateľa.
CompMove() – AI
AI sa teraz spustí. Pohyb počítačov bude riadený touto funkciou. Vyhodnotí dosku a vyberie najlepší ťah.
Nasleduje zoznam algoritmov, ktoré na to použijeme.
- Ak aktuálny krok nemožno dokončiť, prejdite na nasledujúci.
- Urobte víťazný ťah, ak môžete.
- Presuňte sa do tejto pozície v nasledujúcom ťahu, ak má hráč potenciálne víťazný ťah.
- Vyberte roh a otočte ho. Vyberte náhodne, ak existuje niekoľko možností.
- Umiestnite sa do stredu.
- Zvážte jednu z hrán. Vyberte náhodne, ak existuje niekoľko možností.
- Ak nie je možné sa pohnúť, hra končí nerozhodne.
selectRandom()
Na základe zoznamu potenciálnych miest táto funkcia náhodne vyberie akciu, ktorá sa má vykonať.
Začiatok hry
Hra môže byť spustená teraz, keď sme dokončili všetky naše úlohy. Všetko, čo by sme museli urobiť, je zavolať main, ak by sme chceli hru spustiť len raz.
Ale v našej situácii chceme, aby hra pokračovala v behu, kým sa používateľ nerozhodne, že už nechce hrať, takže do hlavného riadku pridáme malú slučku while.
Kompletný kód
Tu je celý kód našej hry, ktorý je teraz hotový.
Výkon
záver
Hurá!
Hra, ktorú ste vytvorili úplne od začiatku. Nie je to hra, ktorú hráme pravidelne. Ale pomáha pri písaní logiky a udržiavaní jasnej štruktúry v kóde.
Šťastné kódovanie!
Nechaj odpoveď