Os xogos son unha forma de entretemento dispoñible para as persoas. Xogos de todo tipo están dispoñibles en liña, en dispositivos móbiles, en ordenadores de sobremesa, etc. Non é o momento de crear un deses xogos desafiantes.
Usando Python, faremos un xogo CLI tic-tac-toe. Usemos Python para crear un xogo Tic Tac Toe sinxelo. Axudarache a crear lóxica de xogo e aprender a organizar o código.
Tic-Tac-Toe
Antes de comezar a codificar, pensei en resumir rapidamente o xogo e discutir o meu plan para desenvolvelo.
En primeiro lugar, estableceremos a suposición de que os X sempre toman a iniciativa e móvense primeiro, dándolle ao usuario a oportunidade de actuar.
Desde a consola, introducirase un número entre 1 e 9. Nunha cuadrícula onde cada número corresponde a un número diferente (arriba á esquerda é 1, inferior dereita é 9).
O ordenador determinará e fará o seu movemento automaticamente unha vez que o usuario se mova. Emprego eu un bucle de xogo principal que chama a varias rutinas.
Probablemente se indique a función que se está a rematar en cada cabeceira desta lección baseada en texto.
Deseño dun taboleiro
Imos representar o noso taboleiro usando un deseño de cuadrícula, como indiquei anteriormente. Faremos unha lista con nome de taboleiro en Python para facelo, e comezará con 10 valores baleiros.
Como o usuario só pode introducir os números do 1 ao 9, non do 0 ao 8, temos 10 valores baleiros en lugar de 9. Polo tanto, para simplificar as cousas, daremos á primeira entrada da nosa lista o valor "texto baleiro".
Deste xeito, podemos usar 1–9 en lugar de 0–8 para indexar as entradas da nosa lista.
insertLetter()
Letter e Pos serán as dúas entradas para esta función. Só colocará a carta solicitada no lugar solicitado.
spaceIsFree (pos)
Simplemente dito, este método informaranos se a área especificada é libre. Polo tanto, xa non hai ningunha carta alí. Pos, o seu único argumento, será un número enteiro entre 1 e 9.
printBoard (tablero)
O taboleiro envíase como argumento para este método, que o mostra na consola.
isWinner()
En base ao presente taboleiro, esta función indicaranos se a carta subministrada gañou. Ten dous parámetros: le e board (letter).
Ten que ser unha "X" ou unha "O". Simplemente mira para ver se a letra especificada está presente en cada posible liña gañadora do taboleiro.
main ()
Cando queremos comezar o xogo, chamaremos a este método. Chamará a cada unha das moitas funcións do noso programa e dirixirá como se supón que se executará.
isBoardFull()
Cando se dá a bordo como entrada, este método simplemente devolverá True se o taboleiro está cheo e False en caso contrario.
playerMove()
Neste método, solicitaremos un movemento do usuario e validarémolo. A carta engadirase ao taboleiro se o movemento é lexítimo. Se non, seguiremos solicitando a opinión do usuario.
CompMove() - AI
Agora comezará a IA. O movemento dos ordenadores estará controlado por esta función. Avaliará o taboleiro e escollerá a mellor xogada a realizar.
A continuación móstrase unha lista do algoritmo que utilizaremos para facelo.
- Se o paso actual non se pode rematar, pasa ao seguinte.
- Toma o movemento gañador se podes.
- Móvese a esa posición no seguinte turno se o xogador ten un movemento potencialmente gañador.
- Escolle unha esquina e dálle a volta. Escolle ao chou se hai varias opcións.
- Colócate no medio.
- Considere un dos bordos. Escolle ao chou se hai varias opcións.
- Se non hai forma de moverse, o xogo remata en empate.
selectRandom()
Dada unha lista de posibles localizacións, esta función escollerá ao chou a acción a realizar.
Comeza o xogo
O xogo xa pode comezar agora que rematamos todas as nosas tarefas. Todo o que teríamos que facer é chamar a main se só queriamos executar o xogo unha vez.
Pero na nosa situación, queremos que o xogo siga funcionando ata que o usuario decida que xa non quere xogar, polo que engadiremos un pequeno bucle while á liña principal.
Código completo
Aquí está o código completo para o noso xogo, que xa está completo.
Saída
Conclusión
¡Hurra!
Un xogo que fixeches totalmente desde cero. Non é un xogo ao que xoguemos regularmente. Pero axuda na escritura de lóxica e ao mantemento dunha estrutura clara no código.
Feliz codificación!
Deixe unha resposta