#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define LCD_ADDR 0x27
#define LCD_COLUMNS 19
#define LCD_ROWS 4
LiquidCrystal_I2C lcd(LCD_ADDR, LCD_COLUMNS, LCD_ROWS);
#define PIN_VERT A0
#define PIN_HORZ A1
int x;
byte customChar0[8] = {
0b00110,
0b00100,
0b01110,
0b10101,
0b00100,
0b01010,
0b01010,
0b11011
};
byte customChar1[8] = {
0b10001,
0b11011,
0b01010,
0b01010,
0b00000,
0b10001,
0b01110,
0b00000
};
byte customChar2[8] = {
0b00000,
0b01110,
0b10001,
0b10101,
0b10111,
0b10001,
0b01110,
0b00000
};
void setup() {
Serial.begin(9600);
lcd.init();
lcd.createChar(0, customChar0);
lcd.createChar(1, customChar1);
lcd.createChar(2, customChar2);
lcd.begin(19, 4);
lcd.backlight();
pinMode(PIN_VERT, INPUT);
pinMode(PIN_HORZ, INPUT);
}
void loop() {
lcd.setCursor(5,0);
lcd.write("Loading...");
delay(100);
lose(x,y,xE,yE);
gamer(x,y,vert);
enemy(xE,yE);
delay(100);
lcd.clear();
}
void gamer(int x, int y, int v) {
if (v==0){
y=y+0;
}
if (v==1){
y=y-1;
}
if (v==-1){
y=y+1;
}
if (old_y != y){
old_y=y;
}
Serial.print(" Gamer: ");
Serial.print(x);
Serial.println(old_y);
lcd.setCursor(x,old_y);
lcd.write((byte)0);
}
void enemy(int x, int y) {
xE=x-1;
if (xE <-1){
xE=19;
yE=random(0,3);
}
Serial.print(" Enemy: ");
Serial.print(xE);
Serial.println(yE);
lcd.setCursor(xE,y);
lcd.write((byte)1);
}
void lose(int x, int y, int xE, int yE){
if ((x==xE)&&(y==yE)){
lcd.setCursor(3,0);
lcd.write("YOU LOSE");
}
}