#include<LiquidCrystal_I2C.h>
const byte PIN_CLK = 2;
const byte PIN_DIO = 3;
const byte PIN_CLK2 = 4;
const byte PIN_DIO2 = 5;
const int led1 = 14;
const int led2 = 15;
const int pb1 = 6;
const int pb2 = 7;
const int pb3 = 8;
const int pb4 = 9;
const int pb5 = 10;
const int pb6 = 5;
const int pb7 = 4;
const int pb8 = 3;
const int pb9 = 2;
const int pb10 = 11;
int hpP1 = 8000;
int hpP2 = 8000;
float delExecute1, delExecute2;
int damageP1, damageP2;
int statepb1, statepb2;
int menu;
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
lcd.init();
lcd.backlight();
pinSet();
Serial.begin(9600);
lcd.setCursor(0,0);
lcd.print("Setting Up . . .");
delay(1000);
lcd.clear();
}
void loop() {
inputButton();
if(hpP1<0 || hpP1==0){
hpP1=0;
menu=4;
}
if(hpP2<0|| hpP2==0){
hpP2=0;
menu=3;
}
if(damageP1<0) damageP1=0;
if(damageP2<0) damageP2=0;
panel();
}
void panel(){
if(menu==0){
lcd.setCursor(0,0);
lcd.print("Player1");
lcd.setCursor(1,1);
lcd.print(hpP1);
lcd.setCursor(9,0);
lcd.print("Player2");
lcd.setCursor(11,1);
lcd.print(hpP2);
}
else if(menu==1){
lcd.setCursor(0,0);
lcd.print("Player 1 deals");
lcd.setCursor(0,1);
lcd.print(damageP1);
lcd.print(" damage!");
}
else if(menu==2){
lcd.setCursor(0,0);
lcd.print("Player 2 deals");
lcd.setCursor(0,1);
lcd.print(damageP2);
lcd.print(" damage!");
}
else if(menu==3){
lcd.setCursor(0,0);
lcd.print(" PLAYER 1 WINS ");
lcd.setCursor(0,1);
lcd.print("CONGRATULATIONS!");
delay(5000);
lcd.clear();
hpP1 = 8000;
hpP2 = 8000;
menu=0;
}
else if(menu==4){
lcd.setCursor(0,0);
lcd.print(" PLAYER 2 WINS ");
lcd.setCursor(0,1);
lcd.print("CONGRATULATIONS!");
delay(5000);
lcd.clear();
hpP1 = 8000;
hpP2 = 8000;
menu=0;
}
}
void execute(int player){
delExecute1 = damageP2*5;
delExecute2 = damageP1*5;
if(delExecute1>8000)delExecute1=8000;
if(delExecute2>8000)delExecute2=8000;
if(player==1){
lcd.setCursor(0,0);
lcd.print("ELECTROCUTING P1!");
lcd.setCursor(1,1);
lcd.print(delExecute1/1000); lcd.print(" seconds");
digitalWrite(led1, HIGH);
delay(delExecute1);
digitalWrite(led1, LOW);
lcd.clear();
}
else if(player==2){
lcd.setCursor(0,0);
lcd.print("ELECTROCUTING P2!");
lcd.setCursor(1,1);
lcd.print(delExecute2/1000); lcd.print(" seconds");
digitalWrite(led2, HIGH);
delay(delExecute2);
digitalWrite(led2, LOW);
lcd.clear();
}
}
void inputButton(){
if(digitalRead(pb1)==1){
if(statepb1==0){
lcd.clear();
menu=1;
damageP1+=100;
//hpP1=hpP1+100;
statepb1=1;
}
}
else if(digitalRead(pb2)==1){
if(statepb1==0){
lcd.clear();
menu=1;
damageP1-=100;
//hpP1=hpP1-100;
statepb1=1;
}
}
else if(digitalRead(pb3)==1){
if(statepb1==0){
lcd.clear();
menu=1;
damageP1+=50;
//hpP1=hpP1+50;
statepb1=1;
}
}
else if(digitalRead(pb4)==1){
if(statepb1==0){
lcd.clear();
menu=1;
damageP1-=50;
//hpP1=hpP1-50;
statepb1=1;
}
}
else if(digitalRead(pb5)==1){
if(statepb1==0){
lcd.clear();
menu=0;
hpP2-=damageP1;
execute(2);
damageP1=0;
statepb1=1;
}
}
else statepb1=0;
//=============================
if(digitalRead(pb6)==1){
if(statepb2==0){
lcd.clear();
menu=2;
damageP2+=100;
// hpP2=hpP2+100;
statepb2=1;
}
}
else if(digitalRead(pb7)==1){
if(statepb2==0){
lcd.clear();
menu=2;
damageP2-=100;
// hpP2=hpP2-100;
statepb2=1;
}
}
else if(digitalRead(pb8)==1){
if(statepb2==0){
lcd.clear();
menu=2;
damageP2+=50;
// hpP2=hpP2+50;
statepb2=1;
}
}
else if(digitalRead(pb9)==1){
if(statepb2==0){
lcd.clear();
menu=2;
damageP2-=50;
// hpP2=hpP2-50;
statepb2=1;
}
}
else if(digitalRead(pb10)==1){
if(statepb2==0){
lcd.clear();
menu=0;
hpP1-=damageP2;
execute(1);
damageP2=0;
statepb2=1;
}
}
else statepb2=0;
}
void pinSet(){
pinMode(pb1, INPUT);
pinMode(pb2, INPUT);
pinMode(pb3, INPUT);
pinMode(pb4, INPUT);
pinMode(pb5, INPUT);
pinMode(pb6, INPUT);
pinMode(pb7, INPUT);
pinMode(pb8, INPUT);
pinMode(pb9, INPUT);
pinMode(pb10, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}