TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Andres71 en 13 de Febrero de 2006, 08:27:00
-
Alguien sabe como hacer un juego de esos llamados triqui o tres en linea con un tablero de 9 casillas? la idea es de 1 jugador y la maquina, por turnos cada uno coloca una marca X o 0 y el que primero coloque tres en linea gana, saben como hacerlo con un PIC??? de antemano gracias por la ayuda.
-
Escrito originalmente por Andres71
Alguien sabe como hacer un juego de esos llamados triqui o tres en linea con un tablero de 9 casillas? la idea es de 1 jugador y la maquina, por turnos cada uno coloca una marca X o 0 y el que primero coloque tres en linea gana, saben como hacerlo con un PIC??? de antemano gracias por la ayuda.
Eso de "saben como hacerlo con un PIC" es una pregunta muy generica.
Quieres hacer el juego para jugar con un tablero magnético o metálico?
Quieres hacer el juevo para jugarlo con teclado y una pantalla de lcd?
Andres... por favor, acota el problema...
-
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.
-
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
-
Deberia empezar el ususario porque si empieza la maquina y haces bien el algoritmo siempre gana la maquina, ya que en el tres en raya si sabes un algoritmo ganas si sales siempre.
Respecto al proyecto vi eso hecho por una universidad, pero los enlaces no iban
-
Escrito originalmente por kain589
Deberia empezar el ususario porque si empieza la maquina y haces bien el algoritmo siempre gana la maquina, ya que en el tres en raya si sabes un algoritmo ganas si sales siempre.
Respecto al proyecto vi eso hecho por una universidad, pero los enlaces no iban
Claro, el que comienza siempre gana.
Creo que la posibilidad que comience el PIC permitirá depurar el código, porque si alguna vez no ganó es porque ALGO no está bien.
-
Gracias tendre en cuenta sus recomendaciones, intentare hacerlo, la verdad programo en asembler y no se que tal mevaya, pero como saber si no intento??? si me queda grande o me puede como decimos aca en Colombia pedire nuevamente ayuda.
-
Seguro que si empieza la máquina siempre gana ella???
No estoy totalmente de acuerdo con eso, creo q con un algoritmo bien realizado la máquina NUNCA PIERDE, que no es lo mismo que SIEMPRE GANE, ya que está la opción de TABLAS. De hecho recuerdo una pelicula en la que para ganar a un computador que se volvió loco, la forma de "matarlo" fué con un juego de tres en raya, en el que se enfrentaba la máquina contra ella misma y siempre quedaba en tablas, terminó volviendose loca pq no podía ganar y pummmm.............. jajajaja
s2!
-
Ahi tenéis algo de teoria (con ejemplos del tres en raya) :
Aprendizaje Automático y Vida Artificial
Introducción a la Inteligencia Artificial
Inteligencia Artificial
Con varios algoritmos para la resolución de este juego.
(A ver si ahora se postea en el hilo correcto
)
-
Escrito originalmente por J1M
Seguro que si empieza la máquina siempre gana ella???
No estoy totalmente de acuerdo con eso, creo q con un algoritmo bien realizado la máquina NUNCA PIERDE, que no es lo mismo que SIEMPRE GANE, ya que está la opción de TABLAS. De hecho recuerdo una pelicula en la que para ganar a un computador que se volvió loco, la forma de "matarlo" fué con un juego de tres en raya, en el que se enfrentaba la máquina contra ella misma y siempre quedaba en tablas, terminó volviendose loca pq no podía ganar y pummmm.............. jajajaja
s2!
Uhh, es cierto, se me chispoteó como decía el chavo.
Tienes razón, la prueba sería que el PIC nunca pierda (tanto si comienza como si no).
Saludos