int current=0;
int action=1;
void setup() {
  // put your setup code here, to run once:
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(17, OUTPUT);
  pinMode(18, OUTPUT);
  pinMode(19, OUTPUT);
  pinMode(21, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(23, OUTPUT);
  pinMode(12, INPUT_PULLUP);
  digitalWrite(3, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  digitalWrite(21, HIGH);
  digitalWrite(22, HIGH);
  digitalWrite(23, HIGH);
}
void loop() {
  if(digitalRead(12)==true){
    action=1;
  }
  else{
    action=-1;
  }
  // put your main code here, to run repeatedly:
  switch(current){
    case 0:
      cero();
      if(action>0){current=current+action;}
      break;
    case 1:
      uno();
      current=current+action;
      break;
    case 2:
      dos();
      current=current+action;
      break;
    case 3:
      tres();
      current=current+action;
      break;
    case 4:
      cuatro();
      current=current+action;
      break;
    case 5:
      cinco();
      current=current+action;
      break;
    case 6:
      seis();
      current=current+action;
      break;
    case 7:
      siete();
      current=current+action;
      break;
    case 8:
      ocho();
      current=current+action;
      break;
    case 9:
      nueve();
      if(action<0){current=current+action;}
      break;
  }
  delay(500);
}
void cero(){
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  digitalWrite(21, HIGH);
  digitalWrite(22, LOW);
  digitalWrite(23, LOW);
}
void uno(){
  digitalWrite(3, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  digitalWrite(21, HIGH);
  digitalWrite(22, HIGH);
  digitalWrite(23, LOW);
}
void dos(){
  digitalWrite(3, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  digitalWrite(21, LOW);
  digitalWrite(22, LOW);
  digitalWrite(23, LOW);
}
void tres(){
  digitalWrite(3, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, LOW);
  digitalWrite(23, LOW);
}
void cuatro(){
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(23, LOW);
}
void cinco(){
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, LOW);
  digitalWrite(23, HIGH);
}
void seis(){
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  digitalWrite(21, LOW);
  digitalWrite(22, LOW);
  digitalWrite(23, HIGH);
}
void siete(){
  digitalWrite(3, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  digitalWrite(21, HIGH);
  digitalWrite(22, LOW);
  digitalWrite(23, LOW);
}
void ocho(){
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  digitalWrite(21, LOW);
  digitalWrite(22, LOW);
  digitalWrite(23, LOW);
}
void nueve(){
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(17, HIGH);
  digitalWrite(18, LOW);
  digitalWrite(19, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, LOW);
  digitalWrite(23, LOW);
}