#include <LiquidCrystal.h>
#include <EEPROM.h>
int score = 0;
int highscore = 0;
long rnum;
long bud = millis() + 1000;
long paus = millis() + 800;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
EEPROM.begin();
highscore = EEPROM.read(100);
lcd.setCursor(0,1);
lcd.print(score);
Serial.println(EEPROM.read(100,highscore));
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), scored, FALLING);
}
void loop() {
lcd.setCursor(0,0);
if(millis() >= bud )
{
lcd.print(rnum);
bud = millis()+250;
rnum = random(1, 10);
};
if(millis() >= paus)
{
lcd.setCursor(0,0);
lcd.print(" ");
paus = millis() + 150;
};
}
void scored() {
if(rnum == 1 ||
rnum == 5 ||
rnum == 10 && digitalRead(2) == HIGH)
{
score++;
EEPROM.write(100, score);
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(score);
}
else if(rnum == 0 ||
rnum == 2 ||
rnum == 3 ||
rnum == 4 ||
rnum == 6 ||
rnum == 7 ||
rnum == 8 ||
rnum == 9 && digitalRead(2) == HIGH)
{
score--;
EEPROM.write(100, score);
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(score);
};
if(score > highscore)
{
highscore = score;
EEPROM.put(100, highscore);
}
}