# Controlar juego del gato #



## fabiam21 (May 7, 2010)

hola buenas tardes soy nuevo en el foro y espero que ojala me puedan ayudar ya que soy inexperto en lo que es electronica

bueno lo que pasa es que tengo que realizar el siguiente proyecto:

se deberá considerar un circuito que permita jugar al “Gato “en donde los colores Verdes (indicaran Cruces) y colores Rojos (Indicaran círculos). Cuando se termine el juego y alguna opción sea la ganadora deberá parpadear e indicar la combinación Ganadora
Materiales a utilizar 

1.	Protoboard 	(Implementación del circuito).

2.	LED’S de Colores Verde, Amarillo y Rojo (Luces del semáforo).

3.	Secuenciador 	(Tiempos de encendido y apagados).

4.	Resistencias 	(Solo si son necesarias).

5.	Cable de comunicación (Serial o Paralelo).

6.	Software de Control (C, C++, Visual C, Visual Basic, Visual.NET (librerias controladoras de puertos de comunicación, este software no es necesario programarlo, se puede reutilizar codigo ya escrito)).

MUCHAS GRACIAS ESTARE ATENTOS A SUS APORTES


----------



## elosciloscopio (May 7, 2010)

no, porque esas pistas estan conectadas en vertical entre si.

en el adjunto, las conexiones internas del proto.


saludos


----------



## Hammer Facer (May 7, 2010)

@fabiam21: puedes conectar directamente una de las patas de cada LED a un bus de tierra o de voltaje, y te ahorras una pista por cada LED....


----------



## fabiam21 (May 7, 2010)

elosciloscopio gracias compañero por la informacion de la protoboard...me quedo super claro...creo que voy a tener que comprar otra protoboard





Hammer Facer gracias, pero lo que pasa es que me va a faltar un pin para conectar el los ultimos 2 led, ya que solo transmite por 8 pines y necesito 9....por ahi he escuchado que se puede multiplexar (por software) un pin y de ahi saco dos si sabes algo de eso ojala me puedas ayudar 

gracias denuevo


----------



## sammaael (May 7, 2010)

debes realizar un tipo de matriz de leds y de seguro esto modificara y dificultara tambien tu programa pero tranquilo no es imposible


----------



## Meta (May 7, 2010)

Ese proyecto lo hicimos realidad con un Simatic 314 IFM y funciona, claro que hicimos la caja y luces de 24V. Programado con AWL. 

Con C# nunca he hecho esto. Un consejo, usa un Led bicolor (Verde-Rojo) Tiene tres pines y es de cátodo común.







Lo que recuerdo que se juega en esquinado y es muy difícil ganar al PLC por no decir imposible. Lo de esquinado es que siempre el programa pone X desde un lado de la cara en orden hasta completar las 4. Puede seleccionar dos jugadores o contra el PLC. Nunca se me ocurrió hacerlo con un PIC.

Suerte con el proyecto.


----------



## sammaael (May 8, 2010)

yo pensaba que se debia jugar contra otra persona?? creo que estaba perdido disculpas!!


----------



## Meta (May 8, 2010)

El modo lo elijes tu mismo. Jugar contra el PIC o con dos personas.


----------



## fabiam21 (May 10, 2010)

efectivamente este juego se supone que se juega con 2 personas


----------



## DJ DRACO (May 10, 2010)

todavia no entiendo la metodología del juego...si alguien es tan amable de explicarlo, en forma concreta y definida.

haaaa, ya se cual juego es...no hace falta explicarlo...

igualmente hay una solución muy simple al juego, y hay 1 sola forma de ganarlo sí o sí...

si tenemos en cuenta que los casilleros se numeran del 1 al 9, de arriba a abajo y de izquierda a derecha:

123
456
789

la forma de ganarlo es ocupar las siguientes combinaciones: 157, 153, 359, 759...al ocupar estas posiciones siempre te va a quedar 2 posibilidades de hacer juego, aunque el otro jugador pique donde pique.

saludos.


----------



## tecnogirl (May 10, 2010)

fabiam: Creo que es el mismo juego llamado Tic tac toe (o 3 en linea) ?.
Saludos


----------



## elosciloscopio (May 10, 2010)

o 3 en raya, en cada lugar le dan un nombre, pero es el mismo juego


----------



## tecnogirl (May 10, 2010)

Ok. gracias elosciloscopio.
Saludos


----------



## fabiam21 (May 10, 2010)

yo les voy a explicar en ke consiste el juego, les pido disculpas si no lo eplique antes

aqui en chile el juego se llama gato por tener la forma de este simbolo # que aqui se le llama asi.

bueno este juego se supone de que se emplean circulos ( O ) o equis ( X )
los cuales se dibujan en cada cuadrado de este simbolo #

cuando un jugador dibuja estrategicamente un circulo en cada casillero y siempre y cuando esten los 3 simbolos dibujados en: DIAGONAL, VERTICAL U HORIZONTAL, pero tienen que ester uno tras el otro, cuando se logra el objetivo el juagador que los logra poner de corridos los 3 simbolos gana.



ojala me aya explicado bien.... y cualquier cosa no duden en preguntar...ojala me puedan ayudar en este proyecto


de ante mano muchisimas gracias


----------



## elosciloscopio (May 10, 2010)

bien, la dificultad del programa no está en la complejidad del juego, sinó en que tienes que preparar todas las jugadas para que el pic sepa que hacer cuando coloques una ficha.

Antes de nada tenadrás que plantearte si quieres que las fichas sean "móviles" (se puedan cambiar de lugar una vez estén las tres de cada simbolo en el tablero) o si quieres que sean fijas, es decir que una vez que pongas una se quede definitivamente.

lo más fácil es lo segundo (menos a pogramar) peeero conlleva que el 90% de las partidas acaben en empate.

saludos


----------



## Meta (May 10, 2010)

Hola:

Si he entendido bien a DJ DRACO, hay que seguir unas pautas. Lo voy a explicar a mi manera.

*Orden de las cuadros:* (En España este juego se llama 3 en raya).

123
456
789

*Coincidencia:*

1º) 123
2º) 456
3º) 789
4º) 147
5º) 258
6º) 369
7º) 159
8º) 357

Por lo que veo, son sólo 8 líneas para ganar. 

En la imagen que has puesto, su código es: 159, el número 7º).

En el FirmWare del PIC o .hex debe estar programado estás 8 posiciones. Total son 16, 8 para *O* y otras 8 para la *X*.

La manera de identificar cuando es O o es X, ponerle el símbolo - delante. El ejemplo de arriba ya que son positivos puede ser O. En caso de la X que ya son casillas negativas puede ser la X.

1º) -123
2º) -456
3º) -789
4º) -147
5º) -258
6º) -369
7º) -159
8º) -357

En el dibujo de arriba que ha ganado el O, es el 159. Si el PIC detecta el resultado 159 y coincide con la grabada dentro del propio PIC, la ROM o .hex, finaliza la partida mientras esas mismas casillas los Led parpadean como vencedor.

Otra cosa que me olvidé. Ya que es mejor poner un Led bicolor por cada casilla, el verde es el O y el rojo es la X.

Por ahora he dado ideas sin tener en cuenta en qué lenguaje usar, por mi parte ensamblador y con un PIC16F886 de 28 pines.

Saludo.

PD: _Poco a poco me estoy animando hacer uno y hacerlo realidad. Hay que ver con cual PIC usar. Uno de 18 pines me parece poco. Si conseguimos la base primero, se puede complicar un poquito más, por ejemplo, poner un LCD o Display de 7 seg para que cuante las partidas ganadas/perdidas/empates._


----------



## DJ DRACO (May 11, 2010)

mi post fue sólo para explicar qué casillas se debn ocupar para ganar sí o sí el juego.

también hay otras posibilidades...por ejemplo:

ocupar 3 esquinas. si ocupas 3 esquinas, si el otro jugador ocupo el centro y 1 esquina, no importa donde coloque su proxima jugada, perderá.

saludos.


----------



## fabiam21 (May 11, 2010)

les agradesco a todos por sus comentarios acerca del proyecto que debo realizar...pero yo tengo practicamente se todo lo que debo hacer a ecepto en: QUE COMO VOY A CONECTAR 9 LED SI EL CABLE PARALELO SOLO TRAE 8....HE SABIDO ALGO DE QUE SE PUEDE MULTIPLEXAR ALGUN CABLE PARA PODER COTROLARLO POR SOFTWARE, PERO NO SE COMO HACERLO.....HABER SI ALGUIEN SABE COMO SE HACE PARA QUE LO SUBA O SI TIENEN ALGUNA IDEA....

GRACIAS DENUEVO A TODOS SALUDOS


----------



## DJ DRACO (May 11, 2010)

claro...podrias utilizar cable cinta de la cantidad que necesites (18 + 1) o utilizar solo 1 cable para el común, y luego 5 cables más, con código binario tendrías 32 posibilidades...con multiplexor y retencion de bit's podrías ir logrando lo que queres...

lo mejor es hacerte 3 plaquetitas:

1 - led's (18 contactos + 1 común)
2 - control led's verdes (9 llaves)
3 - control led's rojos (9 llaves)


----------



## tecnogirl (May 11, 2010)

fabiam21 dijo:


> COMO VOY A CONECTAR 9 LED SI EL CABLE PARALELO SOLO TRAE 8....


 
No escribas todo en mayusculas, eso equivale a que estas gritando.

Si estas controlando el juego de leds por puerto paralelo de la PC, toma nota que no son solo 8 lineas de salida, hay mas que puedes aprovechar. En el siguiente link estan las lineas del puerto paralelo en su conjunto: 
http://pinouts.ru/ParallelPorts/Centronics_pinout.shtml

Saludos


----------



## DJ DRACO (May 11, 2010)

claro, tambien podrias utilizar el DB25 en vez del DB9


----------



## Meta (May 11, 2010)

Al explicar, mejor hacerlo también con dibujos, ayuda mucho.


----------



## fabiam21 (May 20, 2010)

amigos del foro yo ya tengo todo el circuito armado pero como ustedes pueden apreciar en los dibujos ya expuestos tengo 9 cuadrados, pero ustedes saben que el puerto paralelo solo hay 8 pines  que trasmiten señales..mi pregunta es la siguiente

¿¿como se puede multiplexar o sacar 2 conexiones de un pin del cable paralelo??



ojala puedan ayudarme  gracias


----------



## antiworldx (May 20, 2010)

Hayyy, yo hice un proyecto asi en segundo semestre de la carrera... Mi gato era un sistema que iba registrando los juegos e iba seleccionando las jugadas con mayores puntos de victoria y asi seleccionar la proxima jugada... Le llame gato experto. porque adquiria expreriencia conforme maas jugabas con el.

Tambien hice una consola de mandos, ahi esta todavia, pero no tengo camara disponible ahorita 

Pero el chiste es que, el circuito estaba multiplexado, tanto entrada como salida...
esta facil...
es una matris de 3X3 y son dos matrices. una para rojos y otra para verdes.
Entonces, uso 6 cables, 3 para lineas y 3 para columnas, y los dos cables restantes, son los que seleccionan el color...
Pues bien, en c tenia una rutina que hacia barridos a las filas y columnas e iba encendiendo por una fraccion de segundo el led que correspondia. Asi el conjunto daba la impresion de estar encendido todo eltiempo.
y con los botones igual, una matriz de 3 x 3.
nomas que con esa, hice un juego de diodos para no usar barrido.
Cada boton iba a dos diodos, uno al de señal columna y otro al de señal fila. Así, un boton activaba dos señales, que correspondian a la posicion del boton apretado.

Un poco precario el sistema, pero funcionaba muy bien y ademas apenas sabia un poco de C.


----------



## josedpg (May 2, 2011)

epale, buenas tardes... resulta que tengo como objetivo realizar el juego GATO utilizando un pic. y la verdad es que no se manejar muy bien lo que es el MPLab.. ya eh leido los post de todos y ps ya la logica del juego la tengo, solo necesito que me ayuden en la parte de programacion!.... :S


----------



## antiworldx (May 2, 2011)

y que has hecho hasta ahorita?


----------



## josedpg (May 2, 2011)

ps estaba determinando una entrada con una salida, es decir!! seleccionar una de las entradas con un salida directa por ejemplo: ra0 - rco... pero necesito hayar un comando para poder hacer el cambio de color del led, para asi saber de quien es o fue el turno!. pero no tengo idea... de hecho no se mucho de mplab, solo lo basico!


----------



## antiworldx (May 2, 2011)

al menos el circuito para saber como funcionaran las señales?


----------



## josedpg (May 2, 2011)

ps en cuanto al circuito estoy utilizando 9 leds bicolor y 9 botones, uno para cada led. y ps la conexion del pic la sabre una vez que quede programada!! 

pero si te sabes la forma de hacer la programacion en el mplab para el pic16f886 te deberia la vida man!!


----------



## DJ DRACO (May 2, 2011)

Si se utilizan 9 led's tricolor como los de la imagen...se puede lograr lo siguiente:

1) si siempre juegan 2 personas, no es necesaria la parte de programación y se pueden usar 9 botones para cada jugador cada uno con 1 tiristor para darle remanencia al pulso...y 1 solo boton de reset para todos los 18 botones del juego (para las 9 luces)

pero además...al ser led's tricolor pasa lo siguiente:

a) al estar ambos anodos en 0 el led esta apagado
b) si 1 anodo se pone a 1 el led toma un color (verde)
c) si se energiza el otro anodo (jugador contrario pulsa la misma posicion de la cuadricula) el led se pone en Amarillo (no en rojo) y eso nos advierte de la mala jugada
d) si se pulsa reset todos los led vuelven a estar apagados y se empieza de nuevo.


miren la foto, eso se repite en los 9 led's...solo se usan 18 pulsadors, 18 tiristores, y 9 led's tricolor


----------



## antiworldx (May 2, 2011)

Si me la se, pero la verdad tengo otros proyectos en la mano como para hacer el tuyo, siendo sinceros... pero te puedo auxiliar a aprender.


----------



## josedpg (May 2, 2011)

bueno la verdad muchas gracias por esa ayuda DJ draco, pero el problemita es que necesito hacerlo todo en un pic!! y la verdad soy medio papa con el pic! :S y ANTIWORLDX de verdad que si me puedes ayudar, gracias... el probpema es que necesito ayuda es en lña programacion el pic. yo estoy tratando de programar en el 16f886 pero si sabes de uno un poco mas sencillo y que de igual forma funcione para esta actividad, ps me gustaria saberlo..


----------



## antiworldx (May 3, 2011)

No no, esta bien ese pic, realmente no necesitas mas que aprender a programar los puertos y tan tan, no necesitas ni usar perifericos ni timers ni nada... Nunca has usado C o Assembler para pics?


----------

