int signals[4][3] = {{13, 9, 5} , {12, 8, 4} , {11, 7, 3}, {10, 6, 2}};

unsigned long previousMillis1 = 0;
unsigned long num = 0;
int interval = 1000;
void setup() {
  Serial.begin(9600);
  for (int j = 0; j < 4; j++) {
    for (int i = 0; i < 3; i++) {
      pinMode(signals[j][i], OUTPUT);
    }
  }
  pinMode(A1, INPUT_PULLUP);
}
void loop() {
  int on = !digitalRead(A1);
  Serial.println(on);
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis1 > interval){
    previousMillis1 = currentMillis;
    num++;
  }
  if(num == 0){
    off();
    green(1);
    red(2);
    red(3);
    red(4);
  }
  if(num == 2){
    off();
    yellow(1);
    red(2);
    red(3);
    red(4);
  }
  if(num == 4){
    off();
    red(1);
    green(2);
    red(3);
    red(4);
  }
  if(num == 6){
    off();
    red(1);
    yellow(2);
    red(3);
    red(4);
  }
  if(num == 8){
    off();
    red(1);
    red(2);
    green(3);
    red(4);
  }
  if(num == 10){
    off();
    red(1);
    red(2);
    yellow(3);
    red(4);
  }
  if(num == 12){
    off();
    red(1);
    red(2);
    red(3);
    green(4);
  }
  if(num == 14){
    off();
    red(1);
    red(2);
    red(3);
    yellow(4);
  }
  if(num == 16){
    num = 0;
  }
}
void off(){
  for (int j = 0; j < 4; j++) {
    for (int i = 0; i < 3; i++) {
      digitalWrite(signals[j][i], LOW);
    }
  }
}
void red(int num) {
  digitalWrite(signals[num - 1][0], HIGH);
}
void yellow(int num) {
  digitalWrite(signals[num - 1][1], HIGH);
}
void green(int num) {
  digitalWrite(signals[num - 1][2], HIGH);
}