#include <LiquidCrystal.h>

// Use switch case instead of if:

// Blue = 6
// Red = 5
// Green = 4
// Yellow = 3

/*LiquidCrystal lcd (12, 11, 10, 9, 8, 7);
int stev = 0;
int del = 50;


void setup() {
  randomSeed(analogRead(A0));
  Serial.begin(115200);
  DDRD &= 0x87;
  PORTD |= 0xFF;
  lcd.begin(16, 2);
}

void loop() {
  bool blu = PIND & (1 << PD6); 
  if (blu == 0) {
    stev ++;
    lcd.setCursor(0, 0);
    lcd.print(stev);
    delay(del*3);
  }
  bool red = PIND & (1 << PD5);
  if (red == 0) {
    lcd.setCursor(0, 0);
    lcd.print(stev);
    stev --;
    delay(del*3);
  }
  bool green = PIND & (1 << PD4);
  if (green == 0) {
    lcd.setCursor(0, 0);
    lcd.print(stev);
    stev = 0;
  }
  bool yellow = PIND & (1 << PD3); 
  if (yellow == 0) {
    lcd.setCursor(0, 0);
    lcd.print(stev);
    stev = random(1, 10);
    delay(del*2);
  }
  lcd.setCursor(0, 0);
  lcd.clear();
  lcd.print(stev);
  delay(del);
}*/


LiquidCrystal lcd (12, 11, 10, 9, 8, 7);
int stev = 0;
int del = 50;
int m;
byte srce [8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000
};

void setup() {
  randomSeed(analogRead(A0));
  Serial.begin(115200);
  DDRD &= 0x83;
  PORTD |= 0xFF;
  lcd.createChar(1, srce);
  lcd.begin(16, 2);
}

void loop() {
  bool blu = PIND & (1 << PD6); 
  bool red = PIND & (1 << PD5);
  bool green = PIND & (1 << PD4);
  bool yellow = PIND & (1 << PD3); 
  bool grey = PIND & (1 << PD2);
  if (blu == 0){
    m = 1;
  }
  if (red == 0) {
    m = 2;
  }
  if (green == 0) {
    m = 3;
  }
  if (yellow == 0) {
    m = 4;
  }
  if (grey == 0) {
    m = 5;
  }
  switch (m) {
    case 1:
      {
        stev ++;
        lcd.setCursor(0, 1);
        lcd.print(stev);
        delay(del*3);
        m = 0;
        break;
      };
    case 2:
      {
        lcd.setCursor(0, 0);
        lcd.print(stev);
        stev --;
        delay(del*3);
        m = 0;
        break;
      };
    case 3:
      {
        lcd.setCursor(0, 0);
        lcd.print(stev);
        stev = 0;
        m = 0;
        break;
      };
    case 4:
      {
        lcd.setCursor(0, 0);
        lcd.print(stev);
        stev = random(1, 10);
        delay(del*2);
        m = 0;
        break;
      };
    case 5:
      {
        lcd.setCursor(0, 0);
        lcd.clear();
        lcd.write(1);
        delay(del*2);
        m = 5;
        break;
      }
    default: 
      {
        m = 0;
        break;
      }
  }
  
  lcd.setCursor(0, 0);
  lcd.clear();
  if (m != 5) {
    lcd.print(stev);
  }
  else {
    lcd.write(1);
  }
  delay(del);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
lcd1:VSS
lcd1:VDD
lcd1:V0
lcd1:RS
lcd1:RW
lcd1:E
lcd1:D0
lcd1:D1
lcd1:D2
lcd1:D3
lcd1:D4
lcd1:D5
lcd1:D6
lcd1:D7
lcd1:A
lcd1:K
r1:1
r1:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
btn5:1.l
btn5:2.l
btn5:1.r
btn5:2.r