Escrito originalmente por Andres71
Gracias Mauricio,
La idea es hacerlo en un tablero sencillo con 9 casillas y cada casilla con 2 leds de diferente color (verde=X y rojo=O) y pulsadores, por ahora lo critico es el programa y la verdad no encuentro como hacerlo, gracias por la ayuda.
Gracias a miarroba.com tengo que volver a escribir mi post!
Estas semana ha andado para la mismisima mierd.......
En fin, sigamos
Como el problema es principalmente de lógica yo que tu lo programaría en C. La parte de interfaz con el teclado y los leds es muy simple. Los leds bueno, son prenderlo y apagarlo y la parte de las teclas de usuario, yo que tu me armo un teclado de 3x3 .
Lo importante sería ver quien comienza la partida, eso tal vez debas indicarlo al principio con una tecla que solo sirva para eso o bien que comience el ultimo que ganó, etc. Hay muchas formas. En principio te aconsejo qeu hagas que empiece siempre el mismo jugador.
Yo haria en memoria también una matriz de 3 x 3 donde, si el valor está vacío quiere decir que no hay nada, ,si es un 1, es una ficha del usuario , si es un 2 es una ficha del PIC. Tendrás que ir ponderando los turnos uno por uno.
El PIC antes de jugar debiera revisar bien como está el tablero rellenado, buscando de evitar que el usuario forme 3 en línea y en segunda instancia buscando que ficha le puede dar la victoria.
El PIC hace ambos barridos y asigna prioridades a cada posibilidad, por ejemplo puede ser que detecte que el jugador en la proxima jugada si pone uuna ficha en una esquina gana y al mismo tiempo detectar que si el PIC pone la ficha en otra esquina diferente, el mismo arma las 3 en linea. En este caso debiera dar mas prioridad a la tarea de ganar , antes que evitar que el otro gane.
El barrido este, seria en todas las direcciones posibles en que se pueda armar el 3 en línea y marcando la posibilidad que pueda darle la victoria.
Espero te sirva de ayuda al menos para comenzar.
Saludos