Jolasa jendearen eskura dagoen entretenimendu forma bat da. Mota guztietako jokoak eskuragarri daude sarean, gailu mugikorretan, mahaigaineko ordenagailuetan, etab. Orain ez da erronka horietako joko bat sortzeko unea.
Python erabiliz, CLI tic-tac-toe joko bat egingo dugu. Erabil dezagun Python Tic Tac Toe joko zuzen bat eraikitzeko. Joko-logika sortzen eta kodea nola antolatzen ikasten lagunduko dizu.
Tic-Tac-behatza
Kodetzen hasi baino lehen, jokoa azkar laburtzea eta hura garatzeko nire plana eztabaidatzea pentsatu nuen.
Lehenik eta behin, X-ek beti ekimena hartzen dutela eta lehenik mugitzen direla suposatuko dugu, erabiltzaileari jarduteko aukera emanez.
Kontsolatik, 1 eta 9 arteko zenbaki bat sartuko da. Zenbaki bakoitzari zenbaki ezberdin bati dagokion sareta batean (goiko ezkerrekoa 1 da, beheko eskuinekoa 9).
Ordenagailuak automatikoki zehaztuko du eta bere mugimendua egingo du erabiltzailea mugitzen denean. Hainbat errutina deitzen dituen joko-begizta nagusi bat erabiliko dut.
Zein funtzio amaitzen ari den ziurrenik testuan oinarritutako ikasgai honen goiburu bakoitzean adieraziko da.
Taula bat diseinatzea
Gure taula irudikatuko dugu sareta-diseinua erabiliz, lehen adierazi dudan bezala. Python-en zerrenda bat egingo dugu horretarako, eta 10 balio hutsekin hasiko da.
Erabiltzaileak 1etik 9ra bitarteko zenbakiak soilik sar ditzakeenez, ez 0tik 8ra, 10 baino 9 balio huts ditugu. Beraz, gauzak sinplifikatzeko, gure zerrendako lehen sarrerari "testu hutsa" balioa emango diogu.
Modu honetan, 1–9 erabil dezakegu 0–8ren ordez gure zerrendako sarrerak indexatzeko.
txertatu letra()
Letter eta Pos izango dira funtzio honen bi sarrera. Eskatutako gutuna eskatutako tokian bakarrik jarriko du.
spaceIsFree(pos)
Besterik gabe, metodo honek adieraziko digu zehaztutako eremua librea den. Horregatik, ez dago jada gutunik. Pos, bere argumentu bakarra, 1 eta 9 arteko zenbaki oso bat izango da.
inprimatuArbela (arbela)
Arbela metodo honetara argumentu gisa bidaltzen da, kontsolan bistaratzen duena.
da Irabazlea()
Oraingo taulan oinarrituta, funtzio honek emandako gutunak irabazi duen ala ez jakinaraziko digu. Bi parametro ditu: le eta board (letter).
"X" edo "O" bat izan behar du. Ikusi besterik ez dago zehaztutako letra taulako balizko lerro irabazle bakoitzean dagoen ikusteko.
(Nagusia)
Jokoa hasi nahi dugunean, metodo honi deituko diogu. Gure programaren funtzio askori deituko die eta programa nola exekutatu behar den zuzenduko du.
isBoardFull()
Sarrera gisa barnean ematen denean, metodo honek True itzuliko du taula beteta badago eta False bestela.
jokalariMugitu()
Metodo honetan, erabiltzaileari mugimendua eskatuko diogu eta baliozkotu egingo dugu. Gutuna taulara gehituko da mugimendua zilegia bada. Hala ez bada, erabiltzailearen iritzia eskatzen jarraituko dugu.
CompMove() - AI
AI orain hasiko da. Ordenagailuen mugimendua funtzio honen bidez kontrolatuko da. Taula ebaluatuko du eta egin beharreko mugimendurik onena aukeratuko du.
Jarraian, hau egiteko erabiliko dugun algoritmoaren zerrenda dago.
- Uneko urratsa ezin bada amaitu, joan hurrengora.
- Hartu mugimendu irabazlea ahal baduzu.
- Mugitu posizio horretara hurrengo txandan jokalariak irabazten duen mugimendua badu.
- Aukeratu txoko bat eta buelta eman. Aukeratu ausaz hainbat aukera badaude.
- Jarri zaitez erdian.
- Demagun ertzetako bat. Aukeratu ausaz hainbat aukera badaude.
- Mugitzeko modurik ez badago, partida berdinduta amaitzen da.
hautatu ausaz()
Balizko kokapenen zerrenda emanda, funtzio honek ausaz aukeratuko du egin beharreko ekintza.
Jokoaren Hasiera
Jokoa hasi daiteke orain gure zeregin guztiak amaitu ditugula. Egin beharko genukeena nagusia deitzea besterik ez dugu jokoa behin exekutatu nahi badugu.
Baina gure egoeran, jokoak martxan jarraitzea nahi dugu, erabiltzaileak ez duela gehiago jokatu nahi erabaki arte, beraz, while begizta txiki bat gehituko diogu lerro nagusiari.
Kode osoa
Hona hemen gure jokoaren kode osoa, orain osatuta dagoena.
Output
Ondorioa
Aupa!
Guztiz hutsetik egin duzun joko bat. Ez da erregularki jokatzen dugun joko bat. Baina logika idazten eta kodean egitura argia mantentzen laguntzen du.
Zoriontsu kodeketa!
Utzi erantzun bat