GatoPad (4 / 11 steg)

Steg 4: Construir la matriz de lysdioder



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

-Si el ledde está o inga 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 lysdioder, por ejemplo, chequear si hay alguna condición de ganador, necesitaremos hacer el ciclo en través de la Matriz. Este es un metodo que funciona pero es un poco Torpè.

FN: S metodo un poco más racional, seria usar dos grupos de 9 bitar. El primer grupo de nueve bits guarda el estado On-Off de los lysdioder, y el segundo grupo de 9 bitar guarda el färg. Entonces manipular los estados de los lysdioder simplemente se convierte sv FN asunto de aritmética de bits y desplazamiento.

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

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

100
010 = matriz con lysdioder diagonales encendidos
001

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

De forma liknande, podernos representar el färg del LED (1 es rojo y 0 es verde).

Asumamos primero que los lysdioder están encendidos (así el estado On-Off está representado por 511). La matriz de abajo entonces företrä el estado del färg de los lysdioder:

010 verde, rojo, verde

101 rojo, verde, rojo

010 verde, rojo, verde

Ahora, cuando se muestra la matriz de lysdioder, hemos justo empezado hacer el ciclo sv cada lite, primero sv el estado On-Off y después sv el estado del färg. Por ejemplo, digamos que nuestro estado On-Off es 100100100, y el estado del färg es 010101010.

ACÁ esta nuestro algoritmo para encender la matriz de lysdioder:

Paso 1: Hacer una adición bit lite del estado encendido y apagado con un binario 1 (es decir enmascaramiento de bitar)

Paso 2: Si es verdadero, el LED está encendido. Ahora hacer una adición bit lite del estado del färg 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 färg FN bit a la Izquierda.

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

Nótese que estamos llenando la matriz al revés empezamos con la cell 9 y luego procedemos de nuevo a la cell 1.

El estado On-Off y el estado färg son guardados como un tipo entero synd signo (como una palabra). ESO es porque sv el desplazamiento de bits si ingen somos cuidadosos, puede ser que accidentalmente jasminris el signo de la variabel.

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

Se Steg
Relaterade Ämnen