A játék az emberek számára elérhető szórakozási forma. Mindenféle játék elérhető online, mobileszközökön, asztali számítógépeken stb. Nem most van itt az ideje, hogy létrehozzon egy ilyen kihívást jelentő játékot.
Python segítségével készítünk egy CLI tic-tac-toe játékot. Használjunk Pythont egy egyszerű Tic Tac Toe játék elkészítéséhez. Segít a játék logikájának létrehozásában és a kód rendszerezésének megtanulásában.
Tic Tac Toe
Mielőtt elkezdenénk a kódolást, úgy gondoltam, gyorsan összefoglalom a játékot, és megbeszélem a fejlesztési tervemet.
Először is azt a feltevést hozzuk létre, hogy az X-ek mindig kezdeményeznek és először lépnek, így a felhasználónak lehetősége nyílik cselekedni.
A konzolról egy 1 és 9 közötti szám kerül beírásra. Egy rácsban, ahol minden szám más számnak felel meg (bal felső 1, jobb alsó 9).
A számítógép automatikusan meghatározza és végrehajtja a mozgást, ha a felhasználó mozog. Egy elsődleges játékhurok, amely számos különféle rutint hív meg, én fogok használni.
Valószínűleg ennek a szöveges leckének a fejlécében látható, hogy melyik funkció fejeződik be.
Tábla tervezése
A táblánkat rácsos elrendezéssel ábrázoljuk, amint azt korábban jeleztem. Ehhez készítünk egy tábla nevű listát Pythonban, és 10 üres értékkel kezdődik.
Mivel a felhasználó csak 1-től 9-ig írhat be számokat, 0-tól 8-ig nem, 10 helyett 9 üres értékünk van. Így a dolgok egyszerűsítése érdekében listánk első bejegyzésének az „üres szöveg” értéket adjuk.
Ily módon 1-9 helyett 0–8-et használhatunk a listánk bejegyzéseinek indexeléséhez.
insertLetter()
Letter és Pos lesz ennek a függvénynek a két bemenete. Csak a kért levelet helyezi el a kért helyen.
spaceIsFree(poz)
Egyszerűen szólva, ez a módszer tájékoztat bennünket, ha a megadott terület szabad. Ezért már nincs ott levél. A Pos, az egyetlen argumentum, egy 1 és 9 közötti egész szám.
nyomtatott tábla (tábla)
A tábla argumentumként kerül elküldésre ehhez a metódushoz, amely megjeleníti a konzolon.
nyerő()
A jelen tábla alapján ez a funkció jelzi, ha a beküldött levél nyert. Két paramétere van: le és board (betű).
„X”-nek vagy „O-nak” kell lennie. Egyszerűen csak nézze meg, hogy a megadott betű megtalálható-e a tábla minden lehetséges nyerősorán.
fő()
Amikor el akarjuk indítani a játékot, ezt a módszert hívjuk. Meghívja a programunk számos funkcióját, és meghatározza, hogyan kell a programnak futnia.
isBoardFull()
Ha a fedélzeten adjuk meg bemenetként, ez a metódus egyszerűen igaz értéket ad vissza, ha a tábla megtelt, és hamis értéket egyébként.
playerMove()
Ebben a módszerben áthelyezést kérünk a felhasználótól, és érvényesítjük azt. A levél felkerül a táblára, ha a lépés jogos. Ha nem, továbbra is visszajelzést fogunk kérni a felhasználótól.
CompMove() – AI
Az AI most kezdődik. A számítógépek mozgását ez a funkció fogja szabályozni. Ez értékeli a táblát, és kiválasztja a legjobb lépést.
Az alábbiakban felsoroljuk az ehhez használt algoritmusokat.
- Ha az aktuális lépést nem lehet befejezni, folytassa a következővel.
- Ha teheti, tegye meg a nyerő lépést.
- Ha a játékosnak potenciálisan nyerő lépése van, lépjen ebbe a pozícióba a következő körben.
- Válasszon egy sarkot, és fordítsa el. Válasszon véletlenszerűen, ha több lehetőség van.
- Helyezze magát középre.
- Tekintsük az egyik élt. Válasszon véletlenszerűen, ha több lehetőség van.
- Ha nincs mód a mozgásra, a játék döntetlennel végződik.
selectRandom()
A lehetséges helyek listája alapján ez a funkció véletlenszerűen választja ki a végrehajtandó műveletet.
A Játék kezdete
Most már indulhat a játék, miután minden feladatunkat elvégeztük. Mindössze annyit kell tennünk, hogy hívjuk a Main-t, ha csak egyszer akarjuk futtatni a játékot.
De a mi helyzetünkben azt szeretnénk, ha a játék addig futna, amíg a felhasználó úgy nem dönt, hogy nem akar tovább játszani, ezért egy apró while ciklust adunk a fővonalhoz.
Teljes kód
Íme a játékunk teljes kódja, amely most elkészült.
teljesítmény
Következtetés
Hurrá!
Egy játék, amit teljesen a semmiből készítettél. Ez nem egy olyan játék, amit rendszeresen játszunk. De segíti a logika írását és a kód világos szerkezetének fenntartását.
Boldog kódolást!
Hagy egy Válaszol