Antes que nada una breve introduccion sobre donde voi a realizar este trabajo. ( No es necesario mirarlo pero es mas o menos para que tengas una ligera idea )
Es un juego sandbox:
es.wikipedia.org/wiki/Garry%27s_Mod
Aqui un video de lo que quiero construir.
www.youtube.com/watch?v=S8C9YKgUjQg
La construccion del video es posible gracias a un mod para el Garry's Mod
www.wiremod.com/
Y aqui os dejo la documentacion de el codigo de programacion que utilizare:
wiki.garrysmod.com/?title=Wire_Expression2
Bueno mi problema es el siguiente:
Tengo una pantalla de 3x3 pixeles y a cada uno de ellos le corresponde una variable:
(P00 = 0) (P01 = 0) (P02 = 0)
(P10 = 0) (P11 = 0) (P12 = 0)
(P20 = 0) (P21 = 0) (P22 = 0)
Tenemos 3 botones y cada uno de ellos tambien le corresponde una variable:
Start Stop Reset Up Down Right Left
Mi duda es la siguiente: Como consigo que, cuando Start sea igual a 1, cada X tiempo las variables P01 P11 y P21 se vayan turnando el valor 1, es decir:
Segundo 0:
(P00 = 0) (P01 = 0) (P02 = 0)
(P10 = 0) (P11 = 1) (P12 = 0)
(P20 = 0) (P21 = 0) (P22 = 0)
Segundo 1:
(P00 = 0) (P01 = 1) (P02 = 0)
(P10 = 0) (P11 = 0) (P12 = 0)
(P20 = 0) (P21 = 0) (P22 = 0)
Segundo 2:
(P00 = 0) (P01 = 0) (P02 = 0)
(P10 = 0) (P11 = 0) (P12 = 0)
(P20 = 0) (P21 = 1) (P22 = 0)
**(Como vereis el 1 esta subiendo en la segunda columna como si fuera la cabeza de la serpiente)**
Si en un instante, Derecha ha valido 1, por ejemplo, en el instante en el que P01 valia 1, ocurriria lo siguiente:
Segundo 0:
(P00 = 0) (P01 = 1) (P02 = 0)
(P10 = 0) (P11 = 0) (P12 = 0)
(P20 = 0) (P21 = 0) (P22 = 0)
Segundo 1:
(P00 = 0) (P01 = 0) (P02 = 1)
(P10 = 0) (P11 = 0) (P12 = 0)
(P20 = 0) (P21 = 0) (P22 = 0)
Segundo 2:
(P00 = 1) (P01 = 0) (P02 = 0)
(P10 = 0) (P11 = 0) (P12 = 0)
(P20 = 0) (P21 = 0) (P22 = 0)
Mis dudas son las siguientes:
-¿Podria haber alguna otra forma mas sencilla de plantearlo?
-¿Este planteamiento se puede conseguir trabajando con arrays o con matrices?
Muchas gracias por leerme.