#define BTN_PIN 2
#define STEP 5

int pins[] = {8, 9, 10, 11};
int clock[] = {0, 1, 2, 3};
int counter[] = {3, 2, 1, 0};

void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(pins[i], OUTPUT);
    digitalWrite(pins[i], LOW);
  }
  pinMode(BTN_PIN, INPUT_PULLUP);
}

void loop() {
  int *steps = digitalRead(BTN_PIN) ? clock : counter;
  for (int i = 0; i < 4; i++) {
    digitalWrite(pins[steps[i]], HIGH);
    delay(STEP);
    digitalWrite(pins[steps[i]], LOW);
  }
}