-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtlmanager.c
37 lines (30 loc) · 962 Bytes
/
tlmanager.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "tlmanager.h"
#include "utils.h"
#include "tlgraphics.h"
#include <stdio.h>
void tl_init() {
// sleep(4);
}
void tl_manager(void *arg){
tl_manager_arg *myarg = (tl_manager_arg *) arg;
int *tl_matrix;
int i, j;
// myarg->tl_matrix = tl_matrix;
/*naive implementation of switch lights system*/
for(i = 0; i < N_BLOCKS_X*2; i++){
for(j = 0; j < N_BLOCKS_Y*2; j++){
if(myarg->tl_matrix[j * N_BLOCKS_X * 2 + i] == TL_GREEN){
switchLight(myarg->tl_matrix, i, j, SOMECOEFF, TL_YELLOW, TL_YELLOW);
}
else if(myarg->tl_matrix[j * N_BLOCKS_X * 2 + i] == TL_YELLOW){
switchLight(myarg->tl_matrix, i, j, SOMECOEFF, TL_RED, TL_RED);
}
else if(myarg->tl_matrix[j * N_BLOCKS_X * 2 + i] == TL_RED){
switchLight(myarg->tl_matrix, i, j, SOMECOEFF, TL_RED, 2*TL_RED);
}
else if(myarg->tl_matrix[j * N_BLOCKS_X * 2 + i] == 2*TL_RED){
switchLight(myarg->tl_matrix, i, j, SOMECOEFF, TL_GREEN, TL_GREEN);
}
}
}
}