#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int upBtn = 11;
int downBtn = 12;
int bulletBtn = 13;
int playerXPos = 0;
int playerYPos = 0;
int bulletYPos = 1;
int alienYPos = 0;
int spawn;
int y=15;
void setup() {
pinMode(upBtn, INPUT);
pinMode(downBtn, INPUT);
pinMode(bulletBtn, INPUT);
lcd.init();
lcd.backlight();
}
void loop() {
lcd.clear();
if(digitalRead(upBtn))
{
delay(100);
playerYPos = 0;
}
if(digitalRead(downBtn))
{
delay(100);
playerYPos = 1;
}
lcd.setCursor(playerXPos, playerYPos);
lcd.print(">");
if(digitalRead(bulletBtn))
{
bulletYPos = playerYPos;
bullet();
}
spawn = random(0,5);
if (spawn == 3);
{
delay(100);
randomSeed(analogRead(0));
alienYPos = random(0,2);
lcd.setCursor(y, alienYPos);
lcd.print("X");
y--;
if(y==0)
{
y=15;
}
}
}
void bullet()
{
for(int x = 1; x<=15; x++)
{
delay(100);
lcd.clear();
if(digitalRead(upBtn))
{
delay(100);
playerYPos = 0;
}
if(digitalRead(downBtn))
{
delay(100);
playerYPos = 1;
}
if(digitalRead(bulletBtn))
{
bulletYPos = playerYPos;
bullet();
}
if (spawn == 3);
{
delay(100);
randomSeed(analogRead(0));
alienYPos = random(0,2);
lcd.setCursor(y, alienYPos);
lcd.print("X");
y--;
if ((y==0))
{
y=15;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Game Over");
delay(500);
lcd.setCursor(0,0);
lcd.print("Retry in 3");
delay(1000);
lcd.setCursor(0,0);
lcd.print("Retry in 2");
delay(1000);
lcd.setCursor(0,0);
lcd.print("Retry in 1");
delay(1000);
break;
}
}
if ((bulletYPos == alienYPos) && (x==y))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alien Killed");
delay(2000);
break;
}
lcd.setCursor(playerXPos, playerYPos);
lcd.print(">");
lcd.setCursor(x,bulletYPos);
lcd.print("-");
}
}