GatoPad (4 / 11 stap)

Stap 4: Construir la matriz de LEDs


Para el código de "El Gato",
necesitaremos ser capaces de guardar la siguiente información sobre los LEDs:

-Si el leidde está o geen 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 que necesitemos chequear el estado de los LEDs, por ejemplo, chequear si hay alguna condición de ganador, necesitaremos hacer el ciclo een través de la Matriz. Este es un método que funciona pero es un poco torpe.

VN método un poco más racional, seria usar dos grupos de 9 bits. El primer grupo de nueve bits guarda el estado On-Off de los LEDs, y el segundo grupo de 9 bits guarda el kleur. Entonces manipular los estados de los LEDs simplemente se convierte nl un asunto de commando de bits y desplazamiento.

Aquí hay un ejemplo más trabajado. Digamos que dibujamos nuestro juego nl una cuadricula, y primero usamos 1 y 0 para representar el estado On-Off (1 es op, 0 es af).

000
000 = matriz con el LED de abajo a la izquierda encendido
100

100
010 = matriz con LEDs diagonales encendidos
001

Si enumeramos las celdas desde abajo a la izquierda podemos escribir sobre representaciones como serie de bits, nl el primer caso este seria 100000000, y nl el segundo, seria 001010100. Si pensamos nl estos como representaciones binaire, entonces cada serie de bits puede ser resumida nl un solo número (256 nl el primer caso, 84 nl el segundo caso). Entonces, nl vez de usar una matriz para guardar el estado de la matriz podemos utilizar solamente un número!

De forma gelijkaardig, podernos representar el color del LED (1 es rojo y 0 es verde).

Asumamos primero que los LEDs están encendidos (así el estado On-Off está representado por 511). La matriz de abajo entonces RAADVANDEEUROPESEUNIE el estado del kleur de los LEDs:

010 verde, rojo, verde

101 rojo, verde, rojo

010 verde, rojo, verde

Ahora, cuando se muestra la matriz de LEDs, hemos justo empezado een hacer el ciclo nl cada beetje, primero nl el estado y-On-Off después nl el estado del kleur. Por ejemplo, digamos que nuestro estado On-Off es 100100100, y el estado del kleur es 010101010.

Whinose esta nuestro algoritmo para encender la matriz de LEDs:

Paso 1: Hacer una adición bits een beetje del estado encendido y apagado con un Binary 1 (es decir enmascaramiento de bits)

Paso 2: Si es verdadero, el LED está encendido. Ahora hacer una adición bits een beetje del estado del kleur con un 1 binary.

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 kleur VN beetje a la derecha.

Paso 5: Repetitie los pasos 1-4 hasta que los 9 bits hayan sido leídos.

Nótese que Dion 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 kleur zoon guardados como un tipo entero zonde signo (como una palabra). Eso es porque nl el desplazamiento de bits si geen somos cuidadosos, puede ser que accidentalmente wisselmakelaar el signo de la variabele.

Adjunto está el código para iluminar la matriz de LEDs. LED_matrix.pde 1 KB

Gerelateerde Artikelen