#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20,4);
byte znak[] = {
B00010,
B00100,
B00100,
B01110,
B11111,
B11111,
B11111,
B01110
};
byte vlastnyChar[] = {
B01110,
B01110,
B00100,
B10101,
B01110,
B01110,
B01010,
B10001
};
byte firstState1 = HIGH;
byte firstState2 = HIGH;
byte firstState3 = HIGH;
byte firstState4 = HIGH;
int num[2] = {0,0};
int long currentTime = 0;
int nahodaX;
int nahodaY;
int body = 0;
bool bodyFirst = true;
void setup() {
Serial.begin(9600);
Serial.println("Tvoje body: "+String(body));
lcd.init();
lcd.backlight();
lcd.createChar(0, vlastnyChar);
lcd.createChar(1, znak);
lcd.home();
lcd.write(0);
randomSeed(analogRead(A0));
nahodaX = random(0,19);
nahodaY = random(0,3);
lcd.setCursor(nahodaX, nahodaY);
lcd.write(1);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
}
void loop() {
//--------------- Nahodne generovanie znaku --------------
if(num[0] == nahodaY && num[1] == nahodaX){
body++;
Serial.println("Skvelé našiel si JABLKO! Tvoje body: "+String(body));
nahodaX = random(0,19);
nahodaY = random(0,3);
lcd.setCursor(nahodaX, nahodaY);
lcd.write(1);
}
//---------------- Pohyb panacika -------------------------
int state1 = digitalRead(2);
int state2 = digitalRead(3);
int state3 = digitalRead(4);
int state4 = digitalRead(5);
if(firstState1 == HIGH && state1 == LOW){ //Dolne
lcd.setCursor(num[1], num[0]);
lcd.print(" ");
num[0]++;
if(num[0] > 3){
num[0] = 0;
}
lcd.setCursor(num[1], num[0]);
lcd.write(0);
}
if(firstState2 == HIGH && state2 == LOW){ //Pravo
lcd.setCursor(num[1], num[0]);
lcd.print(" ");
num[1]++;
if(num[1] > 19){
num[1] = 0;
}
lcd.setCursor(num[1], num[0]);
lcd.write(0);
}
if(firstState4 == HIGH && state4 == LOW){ //Hore
lcd.setCursor(num[1], num[0]);
lcd.print(" ");
num[0]--;
if(num[0] < 0){
num[0] = 3;
}
lcd.setCursor(num[1], num[0]);
lcd.write(0);
}
if(firstState3 == HIGH && state3 == LOW){ //Ľavo
lcd.setCursor(num[1], num[0]);
lcd.print(" ");
num[1]--;
if(num[1] < 0){
num[1] = 19;
}
lcd.setCursor(num[1], num[0]);
lcd.write(0);
}
firstState1 = state1;
firstState2 = state2;
firstState3 = state3;
firstState4 = state4;
}