Paso 4: Construir la matriz de LEDs
De código para el "El Gato",
necesitaremos ser capaces de guardar la siguiente información sobre los LEDs:
-El Si no LED está o encendido.
-Si está encendido, debemos saber si es verde o rojo.
Una forma de hacer esto es guardar el estado de la matriz de 9 celdas usando tres dígitos para representar el estado (0 = apagado, 1 = rojo encendido, 2 = verde encendido).
Cada vez necesitemos chequear el estado de los LEDs, por ejemplo, chequear si hay alguna condición de ganador, necesitaremos hacer el ciclo a través de la Matriz. Este es un método funciona pero es un poco torpe.
Un método un poco más racional, seria usar dos grupos de 9 bits. El primer grupo de nueve bits guarda el estado encendido y apagado de los LEDs, y el segundo grupo de 9 bits guarda el color. Entonces manipular los estados de los LEDs simplemente se convierte en un asunto de aritmética de bits y desplazamiento.
Aquí hay un ejemplo más trabajado. Digamos dibujamos nuestro juego en una cuadricula, y primero usamos 1 y 0 para representar el estado On-Off (1 es el 0 es apagado).
000
000 = matriz con el LED de abajo a la izquierda encendido
100
100
010 = matriz con LEDs diagonales fue
10P
Si enumeramos las celdas desde abajo a la izquierda, podemos escribir sobre representaciones como serie de bits, en el primer caso este seria 100000000, y en el segundo, seria 001010100. Si pensamos en estos como representaciones binarias, entonces cada serie de bits puede ser resumida en un solo número (256 en el primer caso, 84 en el segundo caso). Entonces, en vez de usar una matriz para guardar el estado de la matriz podemos utilizar solamente un número!
De forma similar, podernos representar el color del LED (1 verde y 0 del es es rojo).
Asumamos primero los LEDs están fue (así el estado encendido-apagado está representado por 511). Entonces abajo represen el estado la matriz de los de color LED:
010 verde, rojo, verde
101 rojo, verde, rojo
010 verde, rojo, verde
Ahora, cuando se muestra la matriz de LEDs, hemos empezado de justo hacer el ciclo en cada algo, primero en el estado color de On-Off y después en el estado. Por ejemplo, digamos nuestro estado On-Off es 100100100, y el estado del color es 010101010.
Acá esta nuestro algoritmo para situado la matriz de LEDs:
Paso 1: Hacer una adición poco un poco del estado encendido y apagado con un binario 1 (enmascaramiento de bits en es decir)
Paso 2: Si es verdadero, el LED está encendido. Ahora hacer una adición poco un poco del estado del color con un 1 binario.
Paso 3: Si es verdadero, se enciende el LED rojo y si es falso, se enciende el LED verde.
Paso 4: Desplazamos los estados On-Off y el estado del color de un bit a la derecha.
Paso 5: Respuesta los pasos 1-4 hasta los 9 bits ver sido leídos.
Nótese estamos llenando la matriz al revés empezamos con la celda 9 y luego procedemos de nuevo a la celda 1.
El estado On-Off y el estado color son guardados como un tipo entero signo de pecado (como una palabra). Porque at el desplazamiento de eso es no bits si somos cuidadosos, puede ser accidentalmente cambie el signo de la variable.
Adjunto está el código para iluminar la matriz de LEDs. LED_matrix.PDE 1 KB