El joc és una forma d'entreteniment disponible per a la gent. Els jocs de tot tipus estan disponibles en línia, en dispositius mòbils, en ordinadors de sobretaula, etc. Ara no és el moment de crear un d'aquests jocs desafiants.
Utilitzant Python, farem un joc CLI tic-tac-toe. Utilitzem Python per crear un joc de Tic Tac Toe senzill. Us ajudarà a crear una lògica de joc i a aprendre a organitzar el codi.
Tic-Tac-Toe
Abans de començar a codificar, vaig pensar que resumiria ràpidament el joc i comentaria el meu pla per desenvolupar-lo.
En primer lloc, establirem el supòsit que les X sempre prenen la iniciativa i es mouen primer, donant l'oportunitat a l'usuari d'actuar.
Des de la consola, s'introduirà un número entre 1 i 9. En una graella on cada número correspon a un nombre diferent (la part superior esquerra és 1, la part inferior dreta és 9).
L'ordinador determinarà i farà el seu moviment automàticament quan l'usuari es mogui. Jo utilitzaré un bucle de joc principal que crida a diverses rutines.
Quina funció s'està acabant probablement s'indica a cada capçalera d'aquesta lliçó basada en text.
Disseny d'una Junta
Representarem el nostre tauler utilitzant un disseny de quadrícula, com he indicat anteriorment. Farem una llista anomenada tauler a Python per fer-ho, i començarà amb 10 valors buits.
Com que l'usuari només pot introduir números de l'1 al 9, no del 0 al 8, tenim 10 valors buits en lloc de 9. Per tant, per simplificar les coses, donarem a la primera entrada de la llista el valor "text buit".
D'aquesta manera, podem utilitzar 1–9 en lloc de 0–8 per indexar les entrades de la nostra llista.
inserir lletra()
Lletra i Pos seran les dues entrades d'aquesta funció. Només posarà la carta sol·licitada al lloc sol·licitat.
spaceIsFree(pos)
Dit simplement, aquest mètode ens informarà si l'àrea especificada és lliure. Per tant, ja no hi ha cap carta. Pos, el seu únic argument, serà un nombre enter entre 1 i 9.
printBoard (tauler)
El tauler s'envia com a argument d'aquest mètode, que el mostra a la consola.
isWinner()
D'acord amb el present tauler, aquesta funció ens farà saber si la carta subministrada ha guanyat. Té dos paràmetres: le i pissarra (lletra).
Ha de ser una "X" o una "O". Només cal que mireu si la lletra especificada està present a cada línia guanyadora potencial del tauler.
main ()
Quan volem començar el joc, anomenarem aquest mètode. Cridarà a cadascuna de les moltes funcions del nostre programa i indicarà com s'ha d'executar el programa.
isBoardFull()
Quan es dóna a bord com a entrada, aquest mètode simplement retornarà True si el tauler està ple i False en cas contrari.
jugadorMove()
En aquest mètode, demanarem un moviment a l'usuari i el validarem. La lletra s'afegirà al tauler si el moviment és legítim. En cas contrari, seguirem demanant els comentaris de l'usuari.
CompMove() - AI
Ara començarà la IA. El moviment dels ordinadors serà controlat per aquesta funció. Avaluarà el tauler i triarà el millor moviment a fer.
A continuació es mostra una llista de l'algorisme que utilitzarem per fer-ho.
- Si no es pot acabar el pas actual, passeu al següent.
- Feu el moviment guanyador si podeu.
- Mou-te a aquesta posició al torn següent si el jugador té un moviment potencialment guanyador.
- Tria una cantonada i gira-la. Trieu a l'atzar si hi ha diverses opcions.
- Col·loca't al mig.
- Considereu una de les vores. Trieu a l'atzar si hi ha diverses opcions.
- Si no hi ha manera de moure's, el joc acaba en empat.
select Random()
Donada una llista d'ubicacions potencials, aquesta funció triarà a l'atzar l'acció a realitzar.
L'inici del joc
El joc ja es pot començar ara que hem acabat totes les nostres tasques. Tot el que hauríem de fer és trucar a principal si només volguéssim executar el joc una vegada.
Però en la nostra situació, volem que el joc continuï funcionant fins que l'usuari decideixi que ja no vol jugar, així que afegirem un petit bucle while a la línia principal.
Codi complet
Aquí teniu el codi complet del nostre joc, que ja està complet.
sortida
Conclusió
Hurra!
Un joc que has fet completament des de zero. No és un joc que juguem de manera habitual. Però ajuda en l'escriptura de la lògica i el manteniment d'una estructura clara en el codi.
Feliç codificació!
Deixa un comentari