Está en la página 1de 68

GRUPO

III
Universidad Mayor de San Andrés
Facultad de ingeniería
Ingeniería electrónica

PROYECTO FINAL
TRES EN RAYA MAESTRO
Asignatura: SISTEMAS DIGITALES II
Estudiantes: Univ. Espino Marca Mary Isabel
Univ. Jurado Morales Alejandro Javier
Univ. Ramos Queso Edith Elvira
Docente: Ing. Jorge León

Fecha de presentación: 24/06/2022


TRES EN RAYA MAESTRO
1. INTRODUCCIÓN
El tres en raya es, probablemente, el juego de estrategia más difundido a nivel mundial,
tan conocido como simple en su concepción. Es un juego en el que entran a tallar
muchas habilidades en el que juega: la experiencia, el aburrimiento, la falta de
concentración, y por supuesto, también la habilidad de jugar con la mente de tu
oponente. Es, también, uno de los pocos deportes en los que existe la posibilidad del
empate (junto con el fútbol y hacer "tablas" en ajedrez, aunque no estoy convencido de
que esto sea un empate). Y, precisamente, en un juego de expertos, es la habilidad de
romper dicho empate la que determina al verdadero héroe del juego.
El juego, como muchas otras joyas del saber actual, nació en las inquietas tierras del
Oriente Próximo, más precisamente en Persia, aproximadamente en el siglo V d.c. Fue
ampliamente difundido entre los primeros musulmanes y llevado al Viejo Mundo por
mercaderes italianos
Parte de esto fue responsabilidad de Rubino Alberdi, un oscuro matemático genovés,
quien escribió el primer tratado matemático en el que combinaba los principios
esenciales de las probabilidades con la didáctica del juego. Demostró, así mismo, que el
juego en sí tenía 765 posibles jugadas distintas.

2. OBJETIVOS
a. Objetivo general
 Realizar el diseño y la implementación del juego “tres en raya” bajo el
enfoque del lenguaje de descripción de hardware AHPL
b. Objetivos específicos
 Diseñar el circuito de control basado en la microprogramación/firmware
 Describir el funcionamiento mediante diseño Hardware de AHPL
 Analizar el funcionamiento optimo del circuito, mediante un diagrama de
tiempos.
 Aplicar conocimientos adquiridos en la formación, para optimizar el
circuito a realizar.
 Realizar una interacción con el proyecto “tres en raya maestro -
aprendiz”
3. JUSTIFICACIÓN
Durante el desarrollo de contenidos teóricos e implementación de las prácticas de
laboratorio, se pudo apreciar de manera amplia la aplicabilidad de los conocimientos
adquiridos, pues un claro ejemplo de ello es el juego tres en raya, ya que esta se basa en una
lógica de juego entre dos jugadores, misma que para lograr una victoria se debe completar
una fila, columna o diagonal de tres lugares elegidos.
Basados en lo anterior, en este proyecto implementaremos el juego tres en raya “maestro”,
mediante Hardware, ya que es un proyecto que responde adecuadamente a las exigencias de
la materia, pues en su desarrollo aplicaremos casi todo el conocimiento desarrollado en la
materia, siendo a la par, una oportunidad de resolver algunas dudas o cuestiones que se
generan naturalmente durante el desarrollo de las prácticas de laboratorio.
Pues en el desarrollo aplicaremos la trasferencia de datos, microprogramación de circuitos
de control mediante firmware, direccionamiento de datos en una memoria, identificación e
implementación adecuada, según se requiera, de buses de transferencia, uso adecuado de la
programación AHPL, etc.

4. MARCO TEÓRICO

a. TRES EN RAYA
Objetivo del Juego: Conseguir colocar sus tres fichas formando una línea antes de que lo
consiga el adversario y de esta manera ganar la partida.
Reglas: El juego de “tres en raya” se juega con dos participantes y un tablero con celdas de
3x3 que se encuentran inicialmente vacías. Un jugador es “X” y el otro es “O”. Los
jugadores se alternan para colocar sus marcas en una celda vacía; “X” empieza primero.
Los jugadores tienen que ir colocando sus fichas siguiendo algún tipo de estrategia, la cual
le lleve a colocar sus tres fichas formando una línea antes que su adversario, ganando de
esta manera la partida. Aunque primero en jugar tiene una ligera ventaja, se puede
demostrar que un juego entre dos contendientes inteligentes siempre terminara en un
empate.
Para el análisis del juego “Tres en raya” tendremos a dos jugadores, uno denominado
máquina y otro denominado humano; en donde el jugador maquina (que será el jugador que
automatizaremos) tendrá un determinado comportamiento según la jugada que pueda
realizar el humano.
Se definirá el juego formalmente como una clase de problema de búsqueda, en donde el
elemento buscado será el movimiento más óptimo que se pueda realizar en un determinado
turno.
Hay que entender que lo que implementaremos serán las jugadas optimas de la máquina
como respuesta a las jugadas del humano, es de esa manera que antes analizaremos cuáles
son esas respuestas y luego pasaremos a implementarlas.
Viendo un análisis de las posibilidades entre ganar, perder y empatar respecto de las
jugadas que realizara el humano podemos observar que habrán 9*8*7*6*5*4*3*2*1=
362880 posibilidades de juego ósea que seria 9! Y por ello es demasiado largo y
sumamente estresante realizar todas las posibilidades, por lo tanto, reduciremos las
posibilidades de la maquina solo para que empate o pueda ganar. Para ello aplicaremos el
método o procedimiento MiniMax, Max será determinado como un jugador y el Min será el
oponente. MAX será el jugador que inicia el juego, nos marcaremos como objetivo el
encontrar el conjunto de movimientos que ha de hacer el jugador MAX para que llegue al
objetivo (ganar) independientemente de lo que haga el jugador MIN.
El algoritmo tiene una función principal (MiniMax) que es la que retorna la mejor jugada
que se puede realizar, y dos funciones recursivas mutuas (valorMax y valorMin) que
determinan el valor de las jugadas dependiendo de si el nivel es de MAX o de MIN.
Se define la función Heurística como:
f = de filas columnas y diagonales completas libres para MAX
g = de filas columnas y diagonales completas libres para MIN
El análisis se realiza de tal manera que en el nivel 2 la mejor jugada de MIN está
representada por un valor negativo, entonces elegimos el menor valor de cada nivel 2 (en
este caso estamos asumimos el peor de los casos para MAX, que es que MIN juegue bien) y
asociamos a cada nivel 1 el valor menor elegido del nivel 2 correspondiente, de este
conjunto de valores elegimos el mayor debido a que ahora consideramos que MAX tiene
que jugar de buena manera, es así que se asegura un buen juego de MAX.
En el caso particular del ejemplo tenemos que el mayor valor a nivel de MAX es 1, y es la
jugada asociada la que asegurara que MAX juegue de manera óptima (en este ejemplo
aparecen tres posibles jugadas para MAX asociadas al valor 1, esto se debe a la simetría
existente de las jugadas).
De esta manera se analiza y se pueden saber cuáles serán los movimientos óptimos para
MAX, es decir en nuestro caso la máquina.
b. Microprogramación
En este proyecto utilizamos la técnica de microprogramación que se aprendió en la metería
cursada.
Para este caso, las entradas a nuestra memoria es de 12 bits, 4 bits son las entradas de
control y 8 bits para la codificación de paso siguiente, estos 8 bits están codificadas de tal
manera que nos den un código en el sistema hexadecimal, se explicará en los siguientes
puntos.
MD0 MD1 MD2 MD3 MD4 MD5 MD6 MD7 MD8 MD9 MD10 MD11

MD0’ MD1’ MD2’ MD3’ MD4’ MD5’ MD6’ MD7’ A’ B’ C’ D’

Paso siguiente Entradas de control

5. DISEÑO O DESARROLLO DEL PROYECTO


Diagrama de bloques
a. Algoritmo y flujograma
 Algoritmo
Descripción del algoritmo
El algoritmo nos muestra todas las posibles jugadas que se pueden realizar para ambos
casos tanto cuando empieza la computadora como cuando comienza el humano, tomando
en cuenta que la maquina no puede perder ya que se trata de un circuito de 3 en raya
maestro, para ambos casos las jugadas del humano están marcadas por un ovalo violeta
para diferenciarlos, en el caso particular cuando comienza el humano si el humano
comenzara por el centro que está representado por la letra “e” se producen más resultados
de empate al finalizar la secuencia o el juego que cuando se comenzara por cualquier
esquila aleatoria.
Para otros casos posibles se procede a la rotación intercambiando las siguientes letras:
 ROTACIÓN IZQUIERDA
a ← c ; b ← f ; c ←i ;
d ←b ; e ← e ; f ← h ;
g ← a; h← d ;i← g ;
 ROTACIÓN DERECHA
a ← g ; b← d ; c ← a ;
d ←h ; e ← e ;f ← b ;
g ←i ; h ← f ;i ← c ;

 2 ROTACIONES
a ← i; b ← h ; c ← g ;
d ←f ;e←e; f ←d ;
g ← c ; h ← b ;i ← a ;
b. Programa (Hardware)
1. AHPL
MODULE :TRESENRAYA
MEMORY :G [ 2 ] ; CNT [ 2 ] , H [9 ],PC[9]
INPUTS : KT [9 ], hini , pcini
OUTPUTS : JPC [ 9 ] ; H [ 9 ] ;winpc ; draw
1. G ←CNT
PC =0,0,0,0,0,0,0,0,0
H=0,0,0,0,0,0,0,0,0
CNT ← INC(CNT )
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(1,2,45)
2. PC =1,0,0,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a , b , c , d , f , g , h ,i , e ) /(2,3,8,10,15,19,21,24,26)
3. PC =1,0,0,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g , c ∨ e ∨ f ∨ h ∨i ,d ) /(3,4,5)
4. PC =1,0,0,1,0,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /( 4,2,45)
5. PC =1,0,0,0,0,0,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g ∨i ,c ∨ f ∨ h , e ) /(5,6,7)
6. PC =1,0,0,0,1,0,1,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(6,2,45)
7. PC =1,0,0,0,0,0,1,1,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(7,2,45)
8. PC =1,0,0,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g , b ∨e ∨ f ∨h ∨i , d ) /(8,4,9)
9. PC =1,0,0,0,0,0,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g ∨i ,b ∨ f ∨h , e ) /(9,6,7)
10. PC =1,0,1,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c , e ∨ f ∨ g ∨ h ∨i ,b ) /(10,11,12)
11. PC =1,1,1,0,0,0,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , HIni ) /(11,2,45)
12. PC =1,0,1,0,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨i, b ∨ f ∨h , e ) /(12,13,14)
13. PC =1,0,1,0,1,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, PCIni , HIni ) /(13,2,45)
14. PC =1,0,1,0,0,1,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(14,2,45)
15. PC =1,0,1,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c , d ∨ e ∨ g ∨h ∨i , b ) /(15,11,16)
16. PC =1,0,1,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨ g , d ∨ h∨ i, e ) /(16,17,18)
17. PC =1,0,1,0,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(17,2,45)
18. PC =1,0,1,1,0,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(18,2,45)
19. PC =1,0,1,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c , d ∨ e ∨ f ∨ h ∨i ,b ) /(19,11,20)
20. PC =1,0,1,0,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨i, d ∨ f ∨ h , e ) /(20 , ,13,14)
21. PC =1,0,0,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g , b ∨c ∨ e ∨ f ∨i , d ) /(21,4,22)
22. PC =1,0,1,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨ g , b∨ f ∨i , e ) /(22,17,23)
23. PC =1,1,1,0,0,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(23,2,45)
24. PC =1,0,1,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c , d ∨ e ∨ f ∨ g ∨ h , b ) /(24,11,25)
25. PC =1,0,1,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨ g , d ∨ f ∨h , e ) /(25,17,18)
26. PC =1,0,0,0,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨i ,b ,c , d , f , g , h ) /(26,27,31,33,37,40,42)
27. PC =1,0,0,0,0,0,0,1,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨h ∨i , c ∨ f ∨d , g ) /(27,7,28)
28. PC =1,0,1,0,0,0,0,1,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨h ∨i , f , d ) /(28,30,29)
29. PC =1,0,1,1,0,0,0,1,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, PCIni , HIni ) /(29,2,45)
30. PC =1,0,1,1,0,0,0,1,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
draw=1
CNT ← INC(CNT )
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(30,2,45)
31. PC =1,0,0,0,0,0,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g ∨i ,c ∨d ∨ f ,h ) /(31,7,32)
32. PC =1,0,0,1,0,0,1,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(32,2,45)
33. PC =1,0,0,0,0,1,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f ∨i , b ∨ g ∨h , c ) /(33,14,34)
34. PC =1,0,0,0,0,1,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f ∨ g ∨i , b , h ) /(34,35,36)
35. PC =1,0,0,0,0,1,1,1,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(35,2,45)
36. PC =1,1,0,0,0,1,1,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(36,2,45)
37. PC =1,0,0,1,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨d ∨i ,b ∨ c ∨ h , g ) /(37,32,38)
38. PC =1,0,1,1,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨i, b , h ) /(38,30,39)
39. PC =1,1,1,1,0,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(39,2,45)
40. PC =1,0,1,0,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨i, d ∨ f ∨ h , b ) /(40,41,14)
41. PC =1,0,1,0,0,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /( 41,2,45)
42. PC =1,1,0,0,0,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨i , d ∨ f ∨ g , c ) /(42,41,43)
43. PC =1,1,0,0,0,0,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ g ∨i , d , f ) /(43,36,44)
44. PC =1,1,0,1,0,0,1,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /( 44,2,45)
45. PC =0,0,0,0,0,0,0,0,0 --reiniciamos los valores de la PC
G ← ( 0,0 ! 0,1 ! 1,0 !1,1! CNT )∗(ka ∨ kb , kg ∨ kd ,kc ∨kf ,ki ∨ k h ,ke )--control para
rotar
CNT ← INC(CNT ) --incrementamos el contador (estado 01)
H ← KT ∨ H
→ ( a ∨c ∨ g ∨i, b ∨ d ∨ f ∨h , e ) /( 46,82,112) –(esquinas, lados, centro)
46. PC =0,0,0,0,1,0,0,0,0–e empieza esquina
CNT ← INC(CNT ) –estado 10
H ← KT ∨ H
→ ( e , b , c , d , f , g , h ,i ) /(46,47,53,59,64,68,74,78) – transferencia con las señales rotadas
47. PC =0,0,1,0,1,0,0,0,0—las soluciones de PC son directo a la salida
CNT ← INC(CNT ) – estado 11
H ← KT ∨ H
→ ( c ∨ e , d ∨ f ∨ h∨ i, g ) /(47,48,49)
48. PC =0,0,1,0,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT ) – estado 00
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /( 48,2,45)
49. PC =0,0,1,1,1,0,0,0,0
CNT ← INC(CNT ) – estado 00
H ← KT ∨ H
→ ( c ∨ d ∨ e , h ∨i , f ) /(49,50,51)
50. PC =1,1,0,0,0,0,1,1,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(50,2,45)
51. PC =0,0,1,1,1,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( c ∨ d ∨ e ∨i , h ) /(51,52)
52. PC =0,0,1,1,1,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(52,2,45)
53. PC =0,1,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ,d ∨ f ∨ g∨ i, h ) /(53,54,55)
54. PC =0,1,0,0,1,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(54,2,45)
55. PC =0,1,0,1,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨d ∨e , g ∨i , f ) /(55,56,57)
56. PC =0,1,0,1,1,1,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(56,2,45)
57. PC =0,1,0,1,1,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨d ∨e ∨ i, g ) /(57,58)
58. PC =0,1,0,1,1,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(58,2,45)
59. PC =0,0,0,0,1,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( e ∨ g , b ∨ f ∨ h ∨i , c ) / (59,48,60)
60. PC =0,1,0,0,1,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ∨ g , f ∨ i , h ) /(60,61,62)
61. PC =0,1,0,0,1,0,1,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(61,2,45)
62. PC =0,1,0,0,1,0,1,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ∨ g ∨ h , f ) /( 62,63)
63. PC =0,1,0,0,1,0,1,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(63,2,45)
64. PC =0,1,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ,c ∨d ∨ g ∨i , h ) /(64,54,65)
65. PC =0,1,0,0,1,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ∨ g ,d ∨i , c ) /(65,66,67)
66. PC =0,1,1,0,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(66,2,45)
67. PC =0,1,0,0,1,0,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ∨ g ∨ i, d ) /(67,63)
68. PC =0,0,0,1,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( d ∨ e , b ∨c ∨h ∨i , f ) /(68,69,70)
69. PC =0,0,0,1,1,1,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(69,2,45)
70. PC =1,1,1,0,0,1,1,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ c ∨e ∨f ∨ h , d ∨i , b ) /(70,71,72)
71. PC =0,1,0,1,1,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(71,2,45)
72. PC =0,0,1,1,1,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( c ∨ d ∨ e ∨h , i ) /(72,73)
73. PC =0,0,1,1,1,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(73,2,45)
74. PC =0,0,0,1,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( d ∨ e , b ∨c ∨ g ∨i , f ) /(74,69,75)
75. PC =0,0,1,1,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( c ∨ d ∨ e , b ∨i , g ) /(75,76,77)
76. PC =0,0,1,1,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(76,2,45)
77. PC =0,0,1,1,1,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( c ∨ d ∨ e ∨i , b ) /(77,52)
78. PC =0,1,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ,c ∨d ∨ f ∨ g ,h ) /(54,79)
79. PC =0,1,0,0,1,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ∨ g ,d ∨ f , g ) /(79,66,80)
80. PC =0,1,0,0,1,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( b ∨e ∨ g ,d ) /(80,73)
81. PC =0,1,0,0,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(81,2,45)
82. PC =0,0,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( e , a , c , d , f , g , h ,i ) /(82,47,83,89,94,99,104,107)
83. PC =1,0,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e , d ∨ f ∨ g ∨h , i ) /(83,84,85)
84. PC =1,0,0,0,1,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(84,2,45)
85. PC =1,0,0,0,1,1,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e ∨ f , g ∨h , d ) /(85,86,87)
86. PC =1,0,0,1,1,1,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(86,2,45)
87. PC =1,0,0,0,1,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e ∨ f ∨ g , h ) /( 87,88)
88. PC =1,0,0,0,1,1,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(88,2,45)
89. PC =1,0,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e , c ∨ f ∨ g ∨ h , i ) /(89,84,90)
90. PC =1,0,1,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨e , f ∨ h , g ) /(90,91,92)
91. PC =1,0,1,0,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(91,2,45)
92. PC =1,0,1,0,1,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨e ∨ h , f ) /(92,93)
93. PC =1,0,1,0,1,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(93,2,45)
94. PC =0,0,1,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( c ∨ e , a ∨d ∨h ∨i , g ) /(94,48,95)
95. PC =1,0,1,0,1,0,0,0, 0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨e ,d ∨h , i ) /(95,96,97)
96. PC =1,0,1,0,1,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(96,2,45)
97. PC =1,0,1,0,1,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨e ∨ h , d ) /(97,98)
98. PC =1,0,1,0,1,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(98,2,45)
99. PC =0,0,0,1,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( d ∨ e , a ∨ c ∨h ∨i , f ) / (99,69,100)
100. PC =0,0,0,1,1,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( d ∨ e ∨i , c ∨ h , a ) /(100,101,102)
101. PC =1,0,0,1,1,0,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(101,2,45)
102. PC =0,0,1,1,1,0,0,0,1
CNT ← INC(CNT )
H ← KT ∨ H
→ ( c ∨ d ∨ e ∨i , h ) /(102,103)
103. PC =0,0,1,1,1,0,0,0,1

H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(103,2,45)
104. PC =1,0,0,0,1,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e , c ∨d ∨ f ∨ g ,i ) /(104,84,105)
105. PC =1,0,0,0,1,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e ∨ g , c ∨ f , d ) /(105,106,91)
106. PC =1,0,0,1,1,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(106,2,45)
107. PC =0,0,0,0,1,1,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( e ∨ f , a ∨c ∨ g ∨ h , d ) /(107,69,108)
108. PC =0,0,0,0,1,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( e ∨ f ∨ g , a ∨h , c ) /(108,109,110)
109. PC =0,0,1,0,1,1,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(109,2,45)
110. PC =1,0,0,0,1,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨e ∨ f ∨ g , h ) /( 110,111)
111. PC =1,0,0,0,1,1,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(111,2,45)
112. PC =1,0,0,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a , b , c , d , f , g , h ,i ) /(112,113,128,136,142,147,155,160 )
113. PC =1,0,0,0,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨h , c , d , f , g , i ) /(113,114,118,122,125,127)
114. PC =1,0,0,0,0,0,1,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g ∨h , f ∨i , d ) /(114,115,116)
115. PC =1,0,0,1,0,0,1,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(115,2,45)
116. PC =1,0,0,0,0,1,1,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f ∨ g ∨ h ,i ) /(116,117)
117. PC =1,0,0,0,0,1,1,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(117,2,45)
118. PC =1,0,0,0,0,1,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f ∨ h , c , g ,i ) /( 118,116,119,121)
119. PC =1,0,1,0,0,1,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨f ∨ h ,i ) /(119,120)
120. PC =1,0,1,0,0,1,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(120,2,45)
121. PC =1,0,0,0,0,1,1,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f ∨ g ∨ h , c ) /(121,117)
122. PC =1,0,0,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨d ∨h , c ∨ i, g ) /(122,115,123)
123. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨cvd ∨h , i ) /(123,124)
124. PC =0,1,0,0,1,1,1,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(124,2,45)
125. PC =1,0,1,0,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨h , d , f ,i ) /( 125,119,123,126)
126. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨h , f ) /(126,124)
127. PC =1,0,0,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨d ∨h , c ∨ f , g ) /(127,115,126)
128. PC =1,0,0,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ g , b ∨f ∨ h∨ i, d ) /(128,129,130)
129. PC =1,0,0,1,0,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(129,2,45)
130. PC =1,0,0,0,0,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f ∨ g , b , h , i ) /(130,131,133,135)
131. PC =1,0,0,0,0,1,1,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( i ) /(132)
132. PC =1,0,0,0,0,1,1,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(132,2,45)
133. PC =1,1,0,0,0,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ f ∨ g ,i ) /(133,134)
134. PC =1,1,0,0,0,1,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(134,2,45)
135. PC =1,1,0,0,0,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ f ∨ g , h ) /(135,134)
136. PC =1,0,0,0,0,1,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨ f , b , c , g ,h , i ) /(136,118,130,137,140,141)
137. PC =1,0,1,0,0,1,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨f , h ∨i , b ) /(137,138,139)
138. PC =1,1,1,0,0,1,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(138,2,45)
139. PC =1,0,1,0,0,1,0,0,1
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(139,2,45)
140. PC =1,1,0,0,0,1,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ f , g ∨i , c ) /(140,139,133)
141. PC =1,1,0,0,0,1,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ f , g ∨ h , c ) /(141,138,135)
142. PC =1,0,0,1,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨d , b ∨c ∨ h ∨i , g ) /(142,129,143)
143. PC =1,0,1,1,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d , h∨ i, b ) /(143,144,145)
144. PC =1,1,1,1,0,0,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(144,2,45)
145. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨h , i ) /(145,146)
146. PC =1,0,1,1,0,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(146,2,45)
147. PC =1,0,1,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( d ∨ f ∨h ∨i , b ) /(148,149)
148. PC =1,1,1,0,0,0,0,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(148,2,45)
149. PC =1,0,1,0,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨h , d , f ,i ) /(149,150,152,154)
150. PC =1,0,1,0,0,1,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨f ∨ h ,i ) /(150,151)
151. PC =1,0,1,0,0,1,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(151,2,45)
152. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨h , i ) /(152,153)
153. PC =1,0,1,1,0,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(153,2,45)
154. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨h , f ) /(154,153)
155. PC =1,1,0,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b , d ∨f ∨ g ∨i , c ) /(155,148,156)
156. PC =1,1,0,0,0,0,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ g , f ∨i , d ) /(156,157,158)
157. PC =1,1,0,1,0,0,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
winpc =1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(157,2,45)
158. PC =1,1,0,0,0,1,1,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨b ∨ f ∨ g ,i ) /(158,159)
159. PC =1,1,0,0,0,1,1,0,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(159,2,45)
160. PC =1,0,1,0,0,0,0,0,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c , d ∨ f ∨ g ∨h , b ) /(160,148,161)
161. PC =1,0,1,0,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨h , d , f , g ) /(161,162,164,166)
162. PC =1,0,1,0,0,1,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨f ∨ h , g ) /(162,163)
163. PC =1,0,1,0,0,1,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(163,2,45)
164. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨h , g ) /(164,165)
165. PC =1,0,1,1,0,0,0,1,0
H ←0,0,0,0,0,0,0,0,0
G ←CNT
CNT ← INC(CNT )
draw=1
→ ( a ∨b ∨ c ∨d ∨e ∨f ∨ g ∨ h∨ i, pcini , hini ) /(165,2,45)
166. PC =1,0,1,1,0,0,0,1,0
CNT ← INC(CNT )
H ← KT ∨ H
→ ( a ∨c ∨d ∨h , f ) /(166,165)
END SEQUENCE
--rotaciones
ka=K 0 ∧ K 1 ∧ K 2 ∧ K 3
kb=K 0 ∧ K 1 ∧ K 2 ∧ K 3
kc= K 0 ∧ K 1 ∧ K 2 ∧ K 3
kd =K 0 ∧ K 1 ∧ K 2 ∧ K 3
ke=K 0 ∧ K 1 ∧ K 2 ∧ K 3
kf =K 0 ∧ K 1 ∧ K 2 ∧ K 3
kg=K 0 ∧ K 1 ∧ K 2 ∧ K 3
kh=K 0 ∧ K 1 ∧ K 2 ∧ K 3
ki=K 0 ∧ K 1 ∧ K 2 ∧ K 3
PCini=K 0 ∧ K 1 ∧ K 2 ∧ K 3
Hini=K 0 ∧ K 1 ∧ K 2 ∧ K 3
Reset=K 0 ∧ K 1 ∧ K 3 ∧ K 3
KT =ka , kb , kc , kd , ke , kf , kg , kh , ki
a=( ka ! kg ! kc ! ki )∗[ ( G0 ∧G 1 ) , ( G 0 ∧ G 1 ) , ( G0 ∧G 1 ) , ( G 0 ∧ G 1 ) ]
b=( kb ! kd ! kf ! kh )∗[( G0 ∧ G1) , ( G0 ∧G1 ) , ( G0 ∧ G 1) , ( G0 ∧G1 ) ]
c= ( kc ! ka! ki! kg )∗[ ( G0 ∧ G 1 ) , ( G0 ∧G1 ) , ( G0 ∧ G 1 ) , ( G 0 ∧G1 ) ]
d= ( kd ! kh !kb !kf )∗[ ( G0 ∧G1 ) , ( G 0 ∧ G1 ) , ( G0 ∧G 1 ) , ( G0 ∧ G1 ) ]
f =( kf ! kb ! kh ! kd )∗[ ( G0 ∧ G1 ) , ( G 0 ∧G1 ) , ( G 0 ∧ G1 ) , ( G 0 ∧G 1 ) ]
g= ( kg !ki ! ka ! kc )∗[ ( G0 ∧G1 ) , ( G 0 ∧G1 ) , ( G0 ∧G1 ) , ( G 0 ∧G1 ) ]
h=( kh ! kf ! kd ! kb )∗[( G 0 ∧G1 ) , ( G0 ∧G 1 ) , ( G0 ∧G1 ) , ( G0 ∧G1 ) ]
i=( ki ! kc ! kg ! ka )∗[ ( G 0 ∧G1 ) , ( G0 ∧G 1 ) , ( G0 ∧G1 ) , ( G0 ∧G1 ) ]
e=ke
JPC=¿
( PC 6 , PC 3 , PC 0 , PC 7 , PC 4 , PC 1 , PC 8 , PC 5 , PC 2 ¿ ! (
PC 8 , PC 7 , PC 6 , PC 5 , PC 4 , PC 3 , PC 2 , PC 1 , PC 0 ¿ ¿∗¿
[ ( G0 ∧ G1) , ( G 0 ∧G 1 ) , ( G0 ∧ G 1 ) , ( G 0 ∧G 1 ) ]

END
c. Circuito
Codificación de entradas
Entrada Entrada codificada Entrada codificada
(Código Binario) (Código Hexadecimal)
[A,B,C,D] [A,B,C,D]
a 0000 0
b 0001 1
c 0010 2
d 0011 3
e 0100 4
f 0101 5
g 0110 6
h 0111 7
i 1000 8
PCIni 1001 9
HIni 1010 A
Reset 1011 B
Codificación de los pasos:
Paso Pasos codificados Pasos codificados
(Código Binario) (Código Hexadecimal)
1 00000000 00
2 00000001 01
3 00000010 02
4 00000011 03
5 00000100 04
… … …
162 10100001 A1
163 10100010 A2
164 10100011 A3
165 10100100 A4
166 10100101 A5

DATOS ALMACENADOS EN LA MEMORIA PARA LA


MICROPROGRAMACION

Dirección de memoria:
MD0 MD1 MD2 MD3 MD4 MD5 MD6 MD7 MD8 MD9 MD10 MD11

MD0’ MD1’ MD2’ MD3’ MD4’ MD5’ MD6’ MD7’ A’ B’ C’ D’

Paso siguiente Entradas de control

PASO PASO SIGUIENTE A PARTIR DE LAS ENTRADAS DE CONTROL


ACTUA [A,B,C,D]
L a b c d e f g h i PCIni HIni Reset
00 00 00 00 00 00 00 00 00 00 01 2C 00
01 01 02 07 09 19 0E 12 14 17 01 01 00
02 02 02 03 04 03 03 02 03 03 02 02 00
03 03 03 03 03 03 03 03 03 03 01 2C 00
04 04 04 05 04 06 05 04 05 04 04 04 00
05 05 05 05 05 05 05 05 05 05 01 2C 00
06 06 06 06 06 06 06 06 06 06 01 2C 00
07 07 03 07 08 03 03 07 03 03 07 07 00
08 08 05 08 08 06 05 08 05 08 08 08 00
09 09 0B 09 09 0A 0A 0A 0A 0A 09 09 00
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 01 2C 00
0B 0B 0C 0B 0B 0D 0C 0B 0C 0B 0B 0B 00
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 01 2C 00
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 01 2C 00
0E 0E 0F 0E 0A 0A 0E 0A 0A 0A 0E 0E 00
0F 0F 0F 0F 10 11 0F 0F 10 10 0F 0F 00
10 10 10 10 10 10 10 10 10 10 01 2C 00
11 11 11 11 11 11 11 11 11 11 01 2C 00
12 12 13 12 0A 0A 0A 12 0A 0A 12 12 00
13 13 13 13 0C 0D 0C 13 0C 13 13 13 00
14 14 03 03 15 03 03 14 14 03 14 14 00
15 15 10 15 15 16 10 15 15 10 15 15 00
16 16 16 16 16 16 16 16 16 16 01 2C 00
17 17 18 17 0A 0A 0A 0A 0A 17 17 17 00
18 18 18 18 10 11 10 18 10 18 18 18 00
19 19 1A 1E 20 19 24 27 29 19 19 19 00
1A 1A 1A 06 06 1A 06 1B 1A 1A 01 01 00
1B 1B 1B 1B 1C 1B 1D 1B 1B 1B 1B 1B 00
1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 01 2C 00
1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 01 2C 00
1E 1E 1E 06 06 1E 06 1E 1F 1E 1E 1E 00
1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 01 2C 00
20 20 0D 21 20 20 20 0D 0D 20 20 20 00
21 21 22 21 21 21 21 21 23 21 21 21 00
22 22 22 22 22 22 22 22 22 22 01 2C 00
23 23 23 23 23 23 23 23 23 23 01 2C 00
24 24 1F 1F 24 24 24 25 1F 24 24 24 00
25 25 1D 25 25 25 25 25 26 25 25 25 00
26 26 26 26 26 26 26 26 26 26 01 2C 00
27 27 0D 27 28 27 28 27 28 27 27 27 00
28 28 28 28 28 28 28 28 28 28 01 2C 00
29 29 29 2A 28 29 28 28 29 29 29 29 00
2A 2A 2A 2A 23 2A 2B 2A 2A 2A 2A 2A 00
2B 2B 2B 2B 2B 2B 2B 2B 2B 2B 01 2C 00
2C 2D 51 2D 51 6F 51 2D 51 2D 2C 2C 00
2D 2D 2E 34 3A 2D 3F 43 49 4D 2D 2D 00
2E 2E 2E 2E 2F 2E 2F 30 2F 2F 2E 2E 00
2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 01 2C 00
30 30 30 30 30 30 32 30 31 31 30 30 00
31 31 31 31 31 31 31 31 31 31 01 2C 00
32 32 32 32 32 32 32 32 33 32 32 32 00
33 33 33 33 33 33 33 33 33 33 01 2C 00
34 34 34 34 35 34 35 35 36 35 34 34 00
35 35 35 35 35 35 35 35 35 35 01 2C 00
36 55 55 55 55 55 38 37 55 37 55 55 00
37 37 37 37 37 37 37 37 37 37 01 2C 00
38 38 38 38 38 38 38 39 38 38 38 38 00
39 39 39 39 39 39 39 39 39 39 01 2C 00
3A 3A 2F 3B 3A 3A 2F 3A 2F 2F 3A 3A 00
3B 3B 3B 3B 3B 3B 3C 3B 3D 3C 3B 3B 00
3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 01 2C 00
3D 3D 3D 3D 3D 3D 3E 3D 3D 3D 3D 3D 00
3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 01 2C 00
3F 3F 3F 35 35 3F 3F 35 40 35 3F 3F 00
40 40 40 42 41 40 40 40 40 41 40 40 00
41 41 41 41 41 41 41 41 41 41 01 2C 00
42 42 42 42 3E 42 42 42 42 42 42 42 00
43 43 44 44 43 43 45 43 44 44 43 43 00
44 44 44 44 44 44 44 44 44 44 01 2C 00
45 45 47 46 45 45 45 45 45 46 45 45 00
46 46 46 46 46 46 46 46 46 46 01 2C 00
47 47 47 47 47 47 47 47 47 48 47 47 00
48 48 48 48 48 48 48 48 48 48 01 2C 00
49 49 44 44 49 49 4A 44 49 44 49 49 00
4A 4A 4B 4A 4A 4A 4A 4C 4A 4B 4A 4A 00
4B 4B 4B 4B 4B 4B 4B 4B 4B 4B 01 2C 00
4C 4C 33 4C 4C 4C 4C 4C 4C 4C 4C 4C 00
4D 4D 4D 35 35 4D 35 35 4E 4D 4D 4D 00
4E 4E 4E 4F 41 4E 41 4E 4E 4E 4E 4E 00
4F 4F 4F 4F 50 4F 4F 4F 4F 4F 4F 4F 00
50 50 50 50 50 50 50 50 50 50 01 2C 00
51 2E 51 52 58 51 5D 62 67 6A 51 51 00
52 52 52 52 53 52 53 53 53 54 52 52 00
53 53 53 53 53 53 53 53 53 53 01 2C 00
54 54 54 54 56 54 54 55 55 54 54 54 00
55 55 55 55 55 55 55 55 55 55 01 2C 00
56 56 56 56 56 56 56 56 57 56 56 56 00
57 57 57 57 57 57 57 57 57 57 01 2C 00
58 58 58 53 58 58 53 53 53 59 58 58 00
59 59 59 59 59 59 5A 5B 5A 59 59 59 00
5A 5A 5A 5A 5A 5A 5A 5A 5A 5A 01 2C 00
5B 5B 5B 5B 5B 5B 5C 5B 5B 5B 5B 5B 00
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 01 2C 00
5D 2F 5D 5D 2F 5D 5D 5E 2F 2F 5D 5D 00
5E 5E 5E 5E 5F 5E 5E 5E 5F 60 5E 5E 00
5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 01 2C 00
60 60 60 60 61 60 60 60 60 60 60 60 00
61 61 61 61 61 61 61 61 61 61 01 2C 00
62 44 62 44 62 62 63 62 44 44 62 62 00
63 65 63 64 63 63 63 63 64 63 63 63 00
64 64 64 64 64 64 64 64 64 64 01 2C 00
65 65 65 65 65 65 65 65 66 65 65 65 00
66 66 66 66 66 66 66 66 66 66 01 2C 00
67 67 67 53 53 67 53 53 67 68 67 67 00
68 68 68 69 5A 68 69 68 68 68 68 68 00
69 69 69 69 69 69 69 69 69 69 01 2C 00
6A 44 6A 44 6B 6A 6A 44 44 6A 6A 6A 00
6B 6C 6B 6D 6B 6B 6B 6B 6C 6B 6B 6B 00
6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 01 2C 00
6D 6D 6D 6D 6D 6D 6D 6D 6E 6D 6D 6D 00
6E 6E 6E 6E 6E 6E 6E 6E 6E 6E 01 2C 00
6F 6F 70 7F 87 6F 8D 92 9A 9F 6F 6F 00
70 70 70 71 75 70 79 7C 70 7E 70 70 00
71 71 71 71 73 71 72 71 71 72 71 71 00
72 72 72 72 72 72 72 72 72 72 01 2C 00
73 73 73 73 73 73 73 73 73 74 73 73 00
74 74 74 74 74 74 74 74 74 74 01 2C 00
75 75 75 73 75 75 75 76 75 78 75 75 00
76 76 76 76 76 76 76 76 76 77 76 76 00
77 77 77 77 77 77 77 77 77 77 01 2C 00
78 78 78 74 78 78 78 78 78 78 78 78 00
79 79 79 72 79 79 79 7A 79 72 79 79 00
7A 7A 7A 7A 7A 7A 7A 7A 7A 7B 7A 7A 00
7B 7B 7B 7B 7B 7B 7B 7B 7B 7B 01 2C 00
7C 7C 7C 7C 76 7C 7A 7C 7C 7D 7C 7C 00
7D 7D 7D 7D 7D 7D 7B 7D 7D 7D 7D 7D 00
7E 7E 7E 72 7E 7E 72 7D 7E 7E 7E 7E 00
7F 7F 80 7F 81 7F 80 7F 80 80 7F 7F 00
80 80 80 80 80 80 80 80 80 80 01 2C 00
81 81 82 81 81 81 81 81 84 86 81 81 00
82 82 82 82 82 82 82 82 82 83 82 82 00
83 83 83 83 83 83 83 83 83 83 01 2C 00
84 84 84 84 84 84 84 84 84 85 84 84 00
85 85 85 85 85 85 85 85 85 85 01 2C 00
86 86 86 86 86 86 86 86 85 86 86 86 00
87 87 75 81 87 87 87 88 8B 8C 87 87 00
88 88 8A 88 88 88 88 88 89 89 88 88 00
89 89 89 89 89 89 89 89 89 89 01 2C 00
8A 8A 8A 8A 8A 8A 8A 8A 8A 8A 01 2C 00
8B 8B 8B 84 8B 8B 8B 8A 8B 8A 8B 8B 00
8C 8C 8C 86 8C 8C 8C 89 89 8C 8C 8C 00
8D 8D 80 80 8D 8D 8D 8E 80 80 8D 8D 00
8E 8E 90 8E 8E 8E 8E 8E 8F 8F 8E 8E 00
8F 8F 8F 8F 8F 8F 8F 8F 8F 8F 01 2C 00
90 90 90 90 90 90 90 90 90 91 90 90 00
91 91 91 91 91 91 91 91 91 91 01 2C 00
92 92 94 92 93 92 93 92 93 93 92 92 00
93 93 93 93 93 93 93 93 93 93 01 2C 00
94 94 94 94 95 94 97 94 94 99 94 94 00
95 95 95 95 95 95 95 95 95 96 95 95 00
96 96 96 96 96 96 96 96 96 96 01 2C 00
97 97 97 97 97 97 97 97 97 98 97 97 00
98 98 98 98 98 98 98 98 98 98 01 2C 00
99 99 99 99 99 99 98 99 99 99 99 99 00
9A 9A 9A 9B 93 9A 93 93 9A 93 9A 9A 00
9B 9B 9B 9B 9D 9B 9C 9B 9B 9C 9B 9B 00
9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 01 2C 00
9D 9D 9D 9D 9D 9D 9D 9D 9D 9E 9D 9D 00
9E 9E 9E 9E 9E 9E 9E 9E 9E 9E 01 2C 00
9F 9F A0 9F 93 9F 93 93 93 9F 9F 9F 00
A0 A0 A0 A0 A1 A0 A3 A5 A0 A0 A0 A0 00
A1 A1 A1 A1 A1 A1 A1 A2 A1 A1 A1 A1 00
A2 A2 A2 A2 A2 A2 A2 A2 A2 A2 01 2C 00
A3 A3 A3 A3 A3 A3 A3 A4 A3 A3 A3 A3 00
A4 A4 A4 A4 A4 A4 A4 A4 A4 A4 01 2C 00
A5 A5 A5 A5 A5 A5 A4 A5 A5 A5 A5 A5 00

Entrada teclado matricial


TECLADO K0:3
1 0000
2 0001
3 0010
4 0100
5 0101
6 0110
7 1000
8 1001
9 1010
* 1100
0 1101
# 1110
Debido a que es un circuito asíncrono; se aprovechara como reloj la salida DA del circuito
integrado 74C922 que está en alto cuando se presiona una tecla del teclado matricial.
Circuito transcodificador y microprogramación
En cuanto a la microprogramación utilizamos el método que se aprendió en la materia, la
memoria 247C256 junto con el registro que se observan ambos forman el circuito de
control.
Tablas de verdad programadas en el PLD
ENTRADAS SALIDAS
G0:1 K0:3 A,B,C,D
00 0000(ka) 0000(a)
00 0001(kb) 0001(b)
00 0010(kc) 0010(c)
00 0100(kd) 0011(d)
00 0101(ke) 0100(e)
00 0110(kf) 0101(f)
00 1000(kg) 0110(g)
00 1001(kh) 0111(h)
00 1010(ki) 1000(i)
01 0000(ka) 0010(c)
01 0001(kb) 0101(f)
01 0010(kc) 1000(i)
01 0100(kd) 0001(b)
01 0101(ke) 0100(e)
01 0110(kf) 0111(h)
01 1000(kg) 0000(a)
01 1001(kh) 0011(d)
01 1010(ki) 0110(g)
10 0000(ka) 0110(g)
10 0001(kb) 0011(d)
10 0010(kc) 0000(a)
10 0100(kd) 0111(h)
10 0101(ke) 0100(e)
10 0110(kf) 0001(b)
10 1000(kg) 1000(i)
10 1001(kh) 0101(f)
10 1010(ki) 0010(c)
11 0000(ka) 1000(i)
11 0001(kb) 011(h)
11 0010(kc) 0110(g)
11 0100(kd) 0101(f)
11 0101(ke) 0100(e)
11 0110(kf) 0011(d)
11 1000(kg) 0010(c)
11 1001(kh) 0001(b)
11 1010(ki) 0000(a)
XX 1100(PCIni) 1001(PCIni)
XX 1110(HIni) 1010(HIni)
XX 1101(Reset) 1011(Reset)

Control de giro PASO 45

ENTRADAS SALIDAS
K0:3 GH0:1
0000(ka) 00
0001(kb) 00
0010(kc) 10
0100(kd) 01
0101(ke) 00
0110(kf) 10
1000(kg) 01
1001(kh) 11
1010(ki) 11
Contador de esquina aleatoria cuando inicia la maquina

Bus y registro de control de giro


Registro de jugadas humano e inhibición jugada prohibida

ENTRADAS SALIDAS
K0:3 KT0:8
0000(ka) 1000000000
0001(kb) 0100000000
0010(kc) 0001000000
0100(kd) 0000100000
0101(ke) 0000010000
0110(kf) 0000001000
1000(kg) 0000000100
1001(kh) 0000000010
1010(ki) 0000000001
Memorias auxiliares para el estado del tablero de la maquina y señales auxiliares
Contenido de memoria A (lados del tablero)
DIRECCION DATO
(HEXADECIMAL (BINARIO)
)
G0:1 MD’0:7 a,b,c,f,i,h,g,d(JP
C)
0 00 11111111
0 01 01111111
0 02 01111101
0 03 01111100
0 04 01110101
0 05 01110101
0 06 01110001
0 07 01111101
0 08 01110101
0 09 01011111
0 0A 00011111
0 0B 01010111
0 0C 01010111
0 0D 01000111
0 0E 01011111
0 0F 01011101
0 10 01011101
0 11 01011100
0 12 01011111
0 13 01010111
0 14 01111101
0 15 01011101
0 16 00011101
0 17 01011111
0 18 01011101
0 19 01110111
0 1A 01110011
0 1B 01010011
0 1C 01000011
0 1D 01010010
0 1E 01110101
0 1F 01110100
0 20 01100111
0 21 01100101
0 22 01100001
0 23 00100101
0 24 01110110
0 25 01010110
0 26 00010110
0 27 01010111
0 28 00010111
0 29 00110111
0 2A 00110101
0 2B 00110100
0 2C 11111111
0 2D 11111111 0 57 01101101
0 2E 11011111 0 58 01111111
0 2F 11011101 0 59 01011111
0 30 11011110 0 5A 01011101
0 31 11001110 0 5B 01011011
0 32 11010110 0 5C 01011011
0 33 11010110 0 5D 11011111
0 34 10111111 0 5E 01011111
0 35 10111011 0 5F 01010111
0 36 10111110 0 60 01011011
0 37 10101110 0 61 01011011
0 38 10110110 0 62 11111110
0 39 10110110 0 63 11110110
0 3A 11111101 0 64 01110110
0 3B 10111101 0 65 11010110
0 3C 10111001 0 66 11010110
0 3D 10110101 0 67 01111111
0 3E 10110101 0 68 01111101
0 3F 10111111 0 69 01111100
0 40 10111101 0 6A 11101111
0 41 10011101 0 6B 11101101
0 42 10110101 0 6C 11001101
0 43 11111110 0 6D 01101101
0 44 11101110 0 6E 01101101
0 45 11111010 0 6F 01111111
0 46 10111010 0 70 01111011
0 47 11011010 0 71 01111001
0 48 11011010 0 72 01111000
0 49 11111110 0 73 01101001
0 4A 11011110 0 74 01101001
0 4B 11011100 0 75 01101011
0 4C 11010110 0 76 01001011
0 4D 10111111 0 77 01001011
0 4E 10111101 0 78 01101001
0 4F 10101101 0 79 01111010
0 50 10101101 0 7A 01011010
0 51 11111111 0 7B 01011010
0 52 01111111 0 7C 01011011
0 53 01110111 0 7D 01011010
0 54 01101111 0 7E 01111010
0 55 01101110 0 7F 01111101
0 56 01101101 0 80 01111100
0 81 01101101 1 05 11010101
0 82 01101001 1 06 11000101
0 83 01101001 1 07 11110101
0 84 00101101 1 08 11010101
0 85 00101101 1 09 01111101
0 86 00101101 1 0A 01111100
0 87 01101111 1 0B 01011101
0 88 01001111 1 0C 01011101
0 89 00001111 1 0D 00011101
0 8A 01000111 1 0E 01111101
0 8B 00101111 1 0F 01110101
0 8C 00101111 1 10 01110101
0 8D 01111110 1 11 01110001
0 8E 01011110 1 12 01111101
0 8F 00011110 1 13 01011101
0 90 01011010 1 14 11110101
0 91 01011010 1 15 01110101
0 92 01011111 1 16 01110100
0 93 00011111 1 17 01111101
0 94 01011011 1 18 01110101
0 95 01001011 1 19 11011101
0 96 01001011 1 1A 11001101
0 97 01011010 1 1B 01001101
0 98 01011010 1 1C 00001101
0 99 01011010 1 1D 01001001
0 9A 00111111 1 1E 11010101
0 9B 00111101 1 1F 11010001
0 9C 00111100 1 20 10011101
0 9D 00101101 1 21 10010101
0 9E 00101101 1 22 10000101
0 9F 01011111 1 23 10010100
0 A0 01011011 1 24 11011001
0 A1 01001011 1 25 01011001
0 A2 01001011 1 26 01011000
0 A3 01011010 1 27 01011101
0 A4 01011010 1 28 01011100
0 A5 01011010 1 29 11011100
1 00 11111111 1 2A 11010100
1 01 11111101 1 2B 11010000
1 02 11110101 1 2C 11111111
1 03 11110001 1 2D 11111111
1 04 11010101 1 2E 01111111
1 2F 01110111 1 59 01111101
1 30 01111011 1 5A 01110101
1 31 00111011 1 5B 01101101
1 32 01011011 1 5C 01101101
1 33 01011011 1 5D 01111111
1 34 11111110 1 5E 01111101
1 35 11101110 1 5F 01011101
1 36 11111010 1 60 01101101
1 37 10111010 1 61 01101101
1 38 11011010 1 62 11111011
1 39 11011010 1 63 11011011
1 3A 11110111 1 64 11011001
1 3B 11110110 1 65 01011011
1 3C 11100110 1 66 01011011
1 3D 11010110 1 67 11111101
1 3E 11010110 1 68 11110101
1 3F 11111110 1 69 11110001
1 40 11110110 1 6A 10111111
1 41 01110110 1 6B 10110111
1 42 11010110 1 6C 00110111
1 43 11111011 1 6D 10110101
1 44 10111011 1 6E 10110101
1 45 11101011 1 6F 11111101
1 46 11101010 1 70 11101101
1 47 01101011 1 71 11100101
1 48 01101011 1 72 11100001
1 49 11111011 1 73 10100101
1 4A 01111011 1 74 10100101
1 4B 01110011 1 75 10101101
1 4C 01011011 1 76 00101101
1 4D 11111110 1 77 00101101
1 4E 11110110 1 78 10100101
1 4F 10110110 1 79 11101001
1 50 10110110 1 7A 01101001
1 51 11111111 1 7B 01101001
1 52 11111101 1 7C 01101101
1 53 11011101 1 7D 01101001
1 54 10111101 1 7E 11101001
1 55 10111001 1 7F 11110101
1 56 10110101 1 80 11110001
1 57 10110101 1 81 10110101
1 58 11111101 1 82 10100101
1 83 10100101 2 07 01011111
1 84 10110100 2 08 01011101
1 85 10110100 2 09 11010111
1 86 10110100 2 0A 11000111
1 87 10111101 2 0B 11010101
1 88 00111101 2 0C 11010101
1 89 00111100 2 0D 11010001
1 8A 00011101 2 0E 11010111
1 8B 10111100 2 0F 01010111
1 8C 10111100 2 10 01010111
1 8D 11111001 2 11 00010111
1 8E 01111001 2 12 11010111
1 8F 01111000 2 13 11010101
1 90 01101001 2 14 01011111
1 91 01101001 2 15 01010111
1 92 01111101 2 16 01000111
1 93 01111100 2 17 11010111
1 94 01101101 2 18 01010111
1 95 00101101 2 19 11011101
1 96 00101101 2 1A 11011100
1 97 01101001 2 1B 11010100
1 98 01101001 2 1C 11010000
1 99 01101001 2 1D 10010100
1 9A 11111100 2 1E 01011101
1 9B 11110100 2 1F 00011101
1 9C 11110000 2 20 11011001
1 9D 10110100 2 21 01011001
1 9E 10110100 2 22 01011000
1 9F 01111101 2 23 01001001
1 A0 01101101 2 24 10011101
1 A1 00101101 2 25 10010101
1 A2 00101101 2 26 10000101
1 A3 01101001 2 27 11010101
1 A4 01101001 2 28 11000101
1 A5 01101001 2 29 11001101
2 00 11111111 2 2A 01001101
2 01 11011111 2 2B 00001101
2 02 01011111 2 2C 11111111
2 03 00011111 2 2D 11111111
2 04 01011101 2 2E 11110111
2 05 01011101 2 2F 01110111
2 06 01011100 2 30 10110111
2 31 10110011 2 5B 11010110
2 32 10110101 2 5C 11010110
2 33 10110101 2 5D 11110111
2 34 11101111 2 5E 11010111
2 35 11101110 2 5F 11010101
2 36 10101111 2 60 11010110
2 37 10101011 2 61 11010110
2 38 10101101 2 62 10111111
2 39 10101101 2 63 10111101
2 3A 01111111 2 64 10011101
2 3B 01101111 2 65 10110101
2 3C 01101110 2 66 10110101
2 3D 01101101 2 67 11011111
2 3E 01101101 2 68 01011111
2 3F 11101111 2 69 00011111
2 40 01101111 2 6A 11111011
2 41 01100111 2 6B 01111011
2 42 01101101 2 6C 01110011
2 43 10111111 2 6D 01011011
2 44 10111011 2 6E 01011011
2 45 10111110 2 6F 11011111
2 46 10101110 2 70 11011110
2 47 10110110 2 71 01011110
2 48 10110110 2 72 00011110
2 49 10111111 2 73 01011010
2 4A 10110111 2 74 01011010
2 4B 00110111 2 75 11011010
2 4C 10110101 2 76 11010010
2 4D 11101111 2 77 11010010
2 4E 01101111 2 78 01011010
2 4F 01101011 2 79 10011110
2 50 01101011 2 7A 10010110
2 51 11111111 2 7B 10010110
2 52 11011111 2 7C 11010110
2 53 11011101 2 7D 10010110
2 54 11011011 2 7E 10011110
2 55 10011011 2 7F 01011111
2 56 01011011 2 80 00011111
2 57 01011011 2 81 01011011
2 58 11011111 2 82 01011010
2 59 11010111 2 83 01011010
2 5A 01010111 2 84 01001011
2 85 01001011 3 09 11110101
2 86 01001011 3 0A 11110001
2 87 11011011 3 0B 01110101
2 88 11010011 3 0C 01110101
2 89 11000011 3 0D 01110100
2 8A 11010001 3 0E 11110101
2 8B 11001011 3 0F 11010101
2 8C 11001011 3 10 11010101
2 8D 10011111 3 11 11000101
2 8E 10010111 3 12 11110101
2 8F 10000111 3 13 01110101
2 90 10010110 3 14 11010111
2 91 10010110 3 15 11010101
2 92 11010111 3 16 11010001
2 93 11000111 3 17 11110101
2 94 11010110 3 18 11010101
2 95 11010010 3 19 01110111
2 96 11010010 3 1A 00110111
2 97 10010110 3 1B 00110101
2 98 10010110 3 1C 00110100
2 99 10010110 3 1D 00100101
2 9A 11001111 3 1E 01010111
2 9B 01001111 3 1F 01000111
2 9C 00001111 3 20 01110110
2 9D 01001011 3 21 01010110
2 9E 01001011 3 22 00010110
2 9F 11010111 3 23 01010010
2 A0 11010110 3 24 01100111
2 A1 11010010 3 25 01100101
2 A2 11010010 3 26 01100001
2 A3 10010110 3 27 01110101
2 A4 10010110 3 28 01110001
2 A5 10010110 3 29 01110011
3 00 11111111 3 2A 01010011
3 01 11110111 3 2B 01000011
3 02 11010111 3 2C 11111111
3 03 11000111 3 2D 11111111
3 04 01010111 3 2E 11111101
3 05 01010111 3 2F 11011101
3 06 00010111 3 30 11101101
3 07 11010111 3 31 11101100
3 08 01010111 3 32 01101101
3 33 01101101 3 5D 11111101
3 34 11111011 3 5E 11110101
3 35 10111011 3 5F 01110101
3 36 11101011 3 60 10110101
3 37 11101010 3 61 10110101
3 38 01101011 3 62 11101111
3 39 01101011 3 63 01101111
3 3A 11011111 3 64 01100111
3 3B 11011011 3 65 01101101
3 3C 10011011 3 66 01101101
3 3D 01011011 3 67 11110111
3 3E 01011011 3 68 11010111
3 3F 11111011 3 69 11000111
3 40 11011011 3 6A 11111110
3 41 11011001 3 6B 11011110
3 42 01011011 3 6C 11011100
3 43 11101111 3 6D 11010110
3 44 11101110 3 6E 11010110
3 45 10101111 3 6F 11110111
3 46 10101011 3 70 10110111
3 47 10101101 3 71 10010111
3 48 10101101 3 72 10000111
3 49 11101111 3 73 10010110
3 4A 11101101 3 74 10010110
3 4B 11001101 3 75 10110110
3 4C 01101101 3 76 10110100
3 4D 11111011 3 77 10110100
3 4E 11011011 3 78 10010110
3 4F 11011010 3 79 10100111
3 50 11011010 3 7A 10100101
3 51 11111111 3 7B 10100101
3 52 11110111 3 7C 10110101
3 53 01110111 3 7D 10100101
3 54 11110110 3 7E 10100111
3 55 11100110 3 7F 11010111
3 56 11010110 3 80 11000111
3 57 11010110 3 81 11010110
3 58 11110111 3 82 10010110
3 59 11110101 3 83 10010110
3 5A 11010101 3 84 11010010
3 5B 10110101 3 85 11010010
3 5C 10110101 3 86 11010010
3 87 11110110 3 97 10100101
3 88 11110100 3 98 10100101
3 89 11110000 3 99 10100101
3 8A 01110100 3 9A 11110011
3 8B 11110010 3 9B 11010011
3 8C 11110010 3 9C 11000011
3 8D 11100111 3 9D 11010010
3 8E 11100101 3 9E 11010010
3 8F 11100001 3 9F 11110101
3 90 10100101 3 A0 10110101
3 91 10100101 3 A1 10110100
3 92 11110101 3 A2 10110100
3 93 11110001 3 A3 10100101
3 94 10110101 3 A4 10100101
3 95 10110100 3 A5 10100101
3 96 10110100

Contenido de memoria B (centro del tablero y señales auxiliares)


DIRECCION DATO(BINARIO)
(HEXADECIMAL)
MD’0:7 0,P45,P1,winordraw,0,e(JPC), draw,winpc
00 00100100
01 00000100
02 00000100
03 00010101
04 00000100
05 00010001
06 00010101
07 00000100
08 00000100
09 00000100
0A 00010101
0B 00000100
0C 00010001
0D 00010101
0E 00000100
0F 00000100
10 00010001
11 00010101
12 00000100
13 00000100
14 00000100
15 00000100
16 00010101
17 00000100
18 00000100
19 00000100
1A 00000100
1B 00000100
1C 00010101
1D 00010110
1E 00000100
1F 00010101
20 00000100
21 00000100
22 00010101
23 00010110
24 00000100
25 00000100
26 00010101
27 00000100
28 00010101
29 00000100
2A 00000100
2B 00010101
2C 01000100
2D 00000000
2E 00000000
2F 00010001
30 00000000
31 00010001
32 00000000
33 00010010
34 00000000
35 00010001
36 00000000
37 00010001
38 00000000
39 00010010
3A 00000000
3B 00000000
3C 00010001
3D 00000000
3E 00010010
3F 00000000
40 00000000
41 00010001
42 00000000
43 00000000
44 00010001
45 00000000
46 00010001
47 00000000
48 00010010
49 00000000
4A 00000000
4B 00010001
4C 00000000
4D 00000000
4E 00000000
4F 00000000
50 00010010
51 00000000
52 00000000
53 00010001
54 00000000
55 00010001
56 00000000
57 00010010
58 00000000
59 00000000
5A 00010001
5B 00000000
5C 00010010
5D 00000000
5E 00000000
5F 00010001
60 00000000
61 00010010
62 00000000
63 00000000
64 00010001
65 00000000
66 00010010
67 00000000
68 00000000
69 00010001
6A 00000000
6B 00000000
6C 00010001
6D 00000000
6E 00010010
6F 00000100
70 00000100
71 00000100
72 00010101
73 00000100
74 00010110
75 00000100
76 00000100
77 00010110
78 00000100
79 00000100
7A 00000100
7B 00010110
7C 00000100
7D 00000100
7E 00000100
7F 00000100
80 00010101
81 00000100
82 00000100
83 00010110
84 00000100
85 00010110
86 00000100
87 00000100
88 00000100
89 00010101
8A 00010101
8B 00000100
8C 00000100
8D 00000100
8E 00000100
8F 00010101
90 00000100
91 00010110
92 00000100
93 00010101
94 00000100
95 00000100
96 00010110
97 00000100
98 00010110
99 00000100
9A 00000100
9B 00000100
9C 00010101
9D 00000100
9E 00010110
9F 00000100
A0 00000100
A1 00000100
A2 00010110
A3 00000100
A4 00010110
A5 00000100

FRECUENCIAS MÁXIMAS

Decodificador MM74C922 10 kHz


Memoria NMC27C256 5MHz
Contador DM74LS163A 20-25 MHz
Registro M74LS273P 30-40 MHz
Registro M74LS174 40 MHz
Gal22v10 250 MHz

LAYOUT.
WIN OR DRAW

PASO 45
PASO 1
WINPC
DRAW

BCNT
GPC
HPC

CPC
DPC

BPC
APC

EPC
FPC
IPC

BC
PC
15

18

12
13

16
17

19
12
13

16
17

19

15

18
11

11
D1
D2

D4
D5

D7

D0

D3

D6
D0

D3

D6

D1
D2

D4
D5

D7
27C256

27C256
VPP

VPP
A10

A13
A14

A12
A12

A10

A13
A14
A11

A11
OE

OE
CE

CE
U7

A1
A2

A4
A5

A7
A8

U8
A0

A3

A6

A9
A0

A3

A6

A9

A1
A2

A4
A5

A7
A8
10

24

25

21
23

26
27

20
22
9
8
7
6
5
4
3
25

21
23
2
26
27

20
22
1

10
9
8
7
6
5
4
3

24

1
C1

C0
C0

C1
16
12
15

19
2
5
6
9
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

74LS273
CLK
MR
D1
D2

D4
D5

D7
D0

D3

D6
U5

17
3
4
7
8
13
14

18

11
1
U9
1 23
CLKN I0/CLK IO0 EH
2 22
C2 RESET I1 IO1 Q0
3 21
BCNT I2 IO2 Q1
4 20
I3 IO3 Q2
5 19
I4 IO4 Q3
10u 6 18
C1 I5 IO5 Q4
7 17
I6 IO6 Q5
8 16
PC I7 IO7 Q6

1
2
3
9 15
U1 EPC I8 IO8 Q7
1u 10 14
I9 IO9 Q8
11 6 11
A X1 KBM I10
1 2 3 10 5 13
X2 OSC I11
8
X3
7 12 AM22V10
X4 DA CLK U3
13
B OE CLKN
4 5 6 1 23
CLK I0/CLK IO0 CLKN
1 17 2 22
Y1 A I1 IO1 CLKF U4 U5 U7
2 16 3 21
Y2 B I2 IO2
3 15 4 20 10 11 3 2 10 11
C Y3 C I3 IO3 A0 D0 D0 Q0 A0 D0 DPC
7 8 9 4 14 5 19 9 12 4 5 9 12
Y4 D I4 IO4 A1 D1 D1 Q1 A1 D1 GPC
6 18 8 13 7 6 8 13
C1 I5 IO5 A2 D2 D2 Q2 A2 D2 HPC
MM74C922 7 17 7 15 8 9 7 15
C0 I6 IO6 A3 D3 D3 Q3 A3 D3 IPC
8 16 6 16 13 12 6 16
D CNT1 I7 IO7 CO1 A4 D4 D4 Q4 A4 D4 FPC
0 # 9 15 5 17 14 15 5 17
CNT0 I8 IO8 CO0 A5 D5 D5 Q5 A5 D5 CPC
10 14 4 18 17 16 4 18
BC I9 IO9 A6 D6 D6 Q6 A6 D6 BPC
11 3 19 18 19 3 19
BCNT I10 A7 D7 D7 Q7 A7 D7 APC
13 25 25
I11 A8 C1 A8
24 11 24
A9 CLKN CLK C0 A9
AM22V10 21 1 21
A10 RESET MR A10
23 23
A11 A11
2 74LS273 2
A12 A12
26 26
A13 A13
27 27
A14 A14
20 20
CE CE
22 22
OE OE
1 1
U2 U6 VPP VPP
3 14 3 2 U10 U11 27C256 27C256
D0 Q0 CNT1 CO1 D0 Q0 C1
4 13 4 5 1 23 1 23
D1 Q1 CNT0 CO0 D1 Q1 C0 I0/CLK IO0 AH I0/CLK IO0 FH U8
5 12 6 7 2 22 2 22
D2 Q2 D2 Q2 Q0 I1 IO1 BH Q5 I1 IO1 GH
6 11 11 10 3 21 3 21 10 11
D3 Q3 D3 Q3 Q1 I2 IO2 CH Q6 I2 IO2 HH A0 D0 WINPC
15 13 12 4 20 4 20 9 12
RCO D4 Q4 Q2 I3 IO3 DH Q7 I3 IO3 IH A1 D1 DRAW
7 14 15 5 19 5 19 8 13
ENP D5 Q5 Q3 I4 IO4 Q8 I4 IO4 A2 D2 EPC
10 6 18 6 18 7 15
ENT APC I5 IO5 FPC I5 IO5 A3 D3
2 9 7 17 7 17 6 16 WIN OR DRAW
CLKN CLK CLKF CLK BPC I6 IO6 GPC I6 IO6 A4 D4 BCNT
9 1 8 16 8 16 5 17 PASO 1
LOAD RESET MR CPC I7 IO7 HPC I7 IO7 A5 D5 PC
1 9 15 9 15 4 18 PASO 45
RESET MR DPC I8 IO8 IPC I8 IO8 A6 D6 BC
74LS174 10 14 10 14 3 19
I9 IO9 I9 IO9 A7 D7
74LS163 11 11 25
I10 I10 C1 A8
13 13 24
I11 I11 C0 A9
21
A10
AM22V10 AM22V10 23
A11
2
A12
26
A13
27
A14

CH
20

AH
APC
BH
BPC
CPC
CE
22
OE
1
VPP
WINPC DRAW

B
B
B

R
R
R

G
G
G
27C256
D12
LED-BLUE

A
A
A

DH
DPC
EH
EPC
FH
FPC
R1 R2 R3
R8 R11 10 10 10

B
B
B

R
R
R

G
G
G
10 10 VLED

A
A
A

GH
GPC
HH
HPC
IH
IPC
R4 R5 R6
10 10 10

B
B
B

R
R
R

G
G
G

A
A
A
R7 R9 R10
10 10 10
d. Simulación (diagrama de tiempos)
i. Empieza humano

ii. Empieza máquina


iii. WaveDrom
{"signal":[
{name: 'clock', wave: 'N..........',period: 2 },
{name: "PASOS",wave: "3.4.5.6.4.7.2.9.8.2.3.", data: ["P1", "P1", "P45", "P46", "P46", "P78", "P79", "P80", "P80", "P81",
"P1"] },
{name: "K",wave: "9.3.7.8.3.4.5.6.7.4.7.", data:["","1110(Hini)", "1010(Ki)", "0101(Ke)","0000(Ka)", "0001(Kb)",
"1000(Kg)","1110(Hini)", "0110(Kf)","0101(Ke)",""],phase: 0 },
{name: "CONT", wave: "2.2.2.2.2.2.2.2.2.2.2.", data:["0","1", "2", "3","0", "1", "2","3", "0","1","2"] },
{name: "G",wave: "3.4.5.6.............4.", data: ["3", "0", "1", "3","1"] },
{name: "TRANSCOD",wave: "3.4.5.6.4.6.6.4.2.9.6.", data: ["", "(Hini)", "(g)", "(e)", "(i)", "(h)", "(c)", "(Hini)", "(d)", "(e)", ""]
},
{name: "PC",wave: "3.....4.5.6.4.7.2.9.8.", data: ["000000000", "000010000", "000010000", "010010000", "010010100",
"010010100", "010010100", "010010100", "000000000"] },
{name: "JPC",wave: "3.....4.5.6.4.7.2.9.8.",data: ["000000000", "000010000", "000010000", "000010010", "001010010",
"001010010", "001010010", "001010010", "000000000"] },
{name: "KT",wave: "3.4.5.6.4.7.2.9.8.2.3.", data: ["000000000", "000000000", "000000001", "000010000", "100000000",
"010000000", "000000100", "000000000", "000001000", "000010000", "000000000"] },
{name: "H",wave: "3...4.5.6.4.7.2.9.8.2.", data: ["000000000", "000000001", "000010001", "100010001", "110010001",
"110010101", "11001010", "11001010", "11001110", "000000000"] },
{name: "JH",wave: "3...4.5.6.4.7.2.9.8.2.", data: ["000000000", "000000001", "000000001", "100000001", "110000001",
"110000101", "110000101", "110000101", "110001101", "000000000"] },
{name: 'WINPC', wave: '0.....................'},
{name: 'DRAW', wave: '0.................1.0.'},
],
head:{
text:'PARA EL CIRCUITO DE CONTROL',
tick:0,
every:1 },
foot:{
text:'DIAGRAMA DE TIEMPOS PARA LA PC Espino Marca Isabel,jurado Morales Alejandro,Ramos Queso
Edith ', },
config: { hscale: 2} }
{ "signal" : [
{name: 'clock', wave: 'N...........',period: 2 },
{name: "PASOS",wave: "3...4.5.6.4.7.2.9.8.2.3.4.",data:["P1", "P2", "P24", "P25", "P18", "P45", "46", "P68", "P69", "", "", ""] },
{name: "K",wave: "9.3.7.8.3.4.5.6.7.6.4.2.", data:["","1100(PCini)", "0010(Kc)", "0100(Kd)","0101(Ke)", "1110(Hini)",
"1010(Ki)","0001(Kb)", "0000","",""],phase: 0 },
{name: "CONT", wave: "2.2.2.2.2.2.2.2.2.2.2.2.", data:["0","1", "2", "3","0", "1", "3","0", "1","2","3","0"] },
{name: "G",wave: "3...4.......5.6.....4...", data: ["XX", "01", "01", "11","10"] },
{name: "TRANSCOD",wave: "3.4.5.6.4.7.2.9.8.2.3.4.", data: ["", "PCini", "i", "b", "e", "Hini", "a", "h", "i", "", ""] },
{name: "PC",wave: "3...4.5.6.4.7.2.9.8.2.3.", data:["000000000","100000000", "101000000", "101001000", "1011001000",
"000000000", "000010000","000110000", "000111000", "", ""] },
{name: "JPC",wave: "3.4.5.6.4.7.2.9.8.2.3.", data:["000000000","000000100", "100000100", "100000101", "100000101", "...",
"000010000","000011000", "00011100", "000111000", ""] },
{name: "KT",wave: "3.4.5.6.4.7.2.9.8.2.3.4.", data:["Z","PCini", "001000000", "000100000", "000010000", "Hini",
"000000001","010000000", "100000000", "", "", ""] },
{name: "H",wave: "3.....4.5.6.4.7.2.9.8.2.", data:["000000000","001000000", "001100000", "001110000", "000000000",
"000000001", "010010000", "", ""] },
{name: "JH",wave: "3...4.5.6.4.7.2.9.8.2.", data:["000000000","000000100", "100000100", "100000101", "100000111", "", "",
""] },
{name: 'WINPC', wave: '0.........1.0.....1.0.'},
{name: 'DRAW', wave: '0.......................'},
],
head:{
text:'PARA EL CIRCUITO DE CONTROL',
tick:0,
every:1 },
foot:{
text:'DIAGRAMA DE TIEMPOS PARA LA PC Espino Marca Isabel, Jurado Morales Alejandro, Ramos Queso Edith
Elvira', },
config: { hscale: 2} }
6. CONCLUSIONES Y RECOMENDACIONES
Por lo tanto, tras el desarrollo del presente proyecto se logró implementar el juego tres en
raya “EXPERTO”, de manera óptima, haciendo uso de los conocimientos adquiridos en el
desarrollo teórico y experimental de la materia, pues para su realización se utilizó un
algoritmo de juego que permita responder a todas la posibles jugadas que podría realizar el
jugador humano, siendo que no existe manera de ganar a la máquina, solo empatar o perder,
esto fue posible gracias a la programación en el lenguaje AHPL, ya que fue ahí donde
realizamos la funcionalidad adecuada del circuito.
Por otro lado, para optimizar el funcionamiento de circuito se logró implementar mediarte
firmware la microprogramación del circuito de control, la adecuada implementación de
circuitos y buses de transferencia. Pero sobre todo se logró implementar el algoritmo de
respuesta y/o funcionamiento del juego en una memoria eprom, donde se grabó las
respuestas que la maquina efectúa durante la realización del juego. También se logró
implementar la entrada y control de datos mediante un teclado matricial, siendo esto uno de
los desafíos que se planteó el grupo.
Por último, cabe resaltar que una de las características especiales del circuito implementado
es que se logró optimizar el espacio de implementación, reduciendo de gran manera los
costos y el cableado, de igual manera el juego puede comenzar cualquiera de los jugadores,
es decir la maquina o el humano, por lo cual el circuito funciona de igual manera. Es por
eso que, por todo lo mencionado podemos afirmar que gracias a la realización de este
proyecto logramos consolidar los conocimientos teóricos adquiridos durante el desarrollo
de la materia, mismos que fortalecen nuestra formación profesional.
Se tuvo unos inconvenientes en realización a alta frecuencia, se buscó las diferentes razones
por las cuales nuestro circuito tuvo las diferentes fallas, llegamos a las conclusiones:
 En la implementación del circuito, usamos componentes de las diferentes
tecnologías: CMOS y TTL, los cuales podemos tener problemas de niveles de
tensión, ya que sabemos que tienen diferentes niveles de tensión de entrada y salida,
la solución que encontramos a este problema es usar adaptadores de nivel para
regularizar las entradas a los diferentes componentes.
 Problemas de fan in y fan out, como sabemos la tecnología CMOS tiene una
corriente de salida baja y es por eso que puede tener algunas fallas al conectarlo con
componentes de la tecnología TTL, la solución que encontramos, es la
implementación de buffers en las salidas de las diferentes compuertas, para llegar a
una corriente adecuada.
MEJORA
 Actualmente la primera jugada de la maquina puede ser aleatoria solamente en las
esquinas del tablero. Para implementar una aleatoriedad en cualquier posición del
tablero es necesario incrementar el número de señales de control en la parte de
microprogramación:
Dirección de la memoria:
MD0 MD1 MD2 MD3 MD4 MD5 MD6 MD7 MD8 MD9 MD10 MD11 MD12 MD13
Ra0 Ra1 MD0’ MD1’ MD2’ MD3’ MD4’ MD5’ MD6’ MD7’ A’ B’ C’ D’
Rand. Paso siguiente Entradas de control
Siendo la entrada Ra proveniente de un contador estas funcionarían únicamente cuando se
termine la partida y se elija la opción pcini. Tal que:
Ra0, Ra1 PASO SIGUIENTE INICIO MAQUINA
00 PASO 2 ESQUINA
01 PASO 167 LATERAL
10 PASO XX CENTRO
11 PASO XX CENTRO

Para este caso, es necesario realizar el algoritmo para las diferentes jugadas realizadas en
cada caso, así como se hizo en la parte anterior.
Para implementar el circuito tomando en cuenta el tamaño, velocidad, potencia y costo se
llegó a la conclusión de que en cuestión de velocidad y potencia no se diferencian en gran
manera pero al momento de comparar costos y tamaño se evidencio que es mejor
implementarlo en un dispositivo programable, por ejemplo un Arduino ya que ocuparía
menos espacio y el costo de los materiales se reduciría considerablemente, al
implementarlo en un dispositivo programable se podría aumentar las mejoras mencionadas
anteriormente sin la necesidad de incrementar el tamaño o el costo del circuito.
7. REFERENCIAS
a. Apuntes de Clases y Documentos Facilitados por el Docente
b. Inteligencia Artificial Un Enfoque Moderno Russell 2da Edición Prentice-
Hall
c. Sistemas Digitales, Principios y Aplicaciones Ronal J. Tocci Décima
Edición 2007.
d. Problemas de Circuitos y sistemas Digitales Carmen Baena Oliva
McGraw-Hill 2002
e. https://www.coolmath-games.com/0-strategic-tic-tac-toe
f. http://es.wikihow.com/ganar-jugando-tres-en-raya
g. http://razonartificial.com/2010/08/algoritmo-minimax-un-jugador-
incansable/
8. ANEXOS
CIRCUITO ARMADO

También podría gustarte