/*
John Doe
Date 3/24/2024-4/22/2024
*/
//declare lcd library
#include <LiquidCrystal.h>
//declares pushbutton pins for easy reconfig
const int buttonK = 11;
const int buttonD = 10;
const int buttonW = 9;
const int buttonL = 8;
//declare all Button#State
int Button1State = 0;
int LastButton1State = 0;
int Button2State = 0;
int LastButton2State = 0;
int Button3State = 0;
int LastButton3State = 0;
int Button4State = 0;
int LastButton4State = 0;
//declare other var
int K = 0;
int D = 0;
int W = 0;
int L = 0;
int G = 0;
double KD = 0.00;
double WL = 0.00;
//define lcd pins & set cords
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
//custom characters
byte KDP1[] = {
B10100,
B11000,
B10100,
B00000,
B00001,
B00010,
B00100,
B01000
};
byte KDP2[] = {
B00010,
B00100,
B01000,
B10000,
B00110,
B00101,
B00101,
B00110
};
void setup()
{
lcd.begin(16,2); //sets up lcd space
lcd.createChar(1, KDP1); //calls customchar
lcd.createChar(2, KDP2);
pinMode(buttonK,INPUT_PULLUP); //sets up button pins as inputs with built-in pull-up resistor
pinMode(buttonD, INPUT_PULLUP);
pinMode(buttonW,INPUT_PULLUP);
pinMode(buttonL, INPUT_PULLUP);
delay(250); // Wait for 250 millisecond(s)
//prints start format lcd
lcd.clear();
lcd.setCursor(0,0);
lcd.print("K");
lcd.setCursor(1,0);
lcd.print(K);
lcd.setCursor(4,0);
lcd.print("W");
lcd.setCursor(5,0);
lcd.print(W);
lcd.setCursor(8,0);
lcd.write(1);
lcd.setCursor(9,0);
lcd.write(2);
lcd.setCursor(11,0);
lcd.print(KD,3);
lcd.setCursor(0,1);
lcd.print("D");
lcd.setCursor(1,1);
lcd.print(D);
lcd.setCursor(4,1);
lcd.print("L");
lcd.setCursor(5,1);
lcd.print(L);
lcd.setCursor(8,1);
lcd.print("W%");
lcd.setCursor(11,1);
lcd.print(WL);
lcd.setCursor(15,1);
lcd.print("%");
}
void loop()
{
//death pin
Button1State = digitalRead(buttonD);
if (Button1State != LastButton1State)
{
if (Button1State == LOW)
{ D = D + 1;
lcd.setCursor(1,1);
lcd.print(D);
KD = (double) K / D;
lcd.setCursor(10,0);
lcd.print(KD, 4);
}
} else { }
delay(5);
LastButton1State = Button1State;
//kill pin
Button2State = digitalRead(buttonK);
if (Button2State != LastButton2State)
{
if (Button2State == LOW)
{
K = K + 1;
lcd.setCursor(1,0);
lcd.print(K);
KD = (double)K / D;
lcd.setCursor(10,0);
lcd.print(KD, 4);
}
} else { }
delay(5);
LastButton2State = Button2State;
//win pin
Button3State = digitalRead(buttonW);
if (Button3State != LastButton3State)
{
if (Button3State == LOW)
{
W = W + 1;
G = G + 1;
lcd.setCursor(5,0);
lcd.print(W);
WL = ((double) W / G) * 100;
lcd.setCursor(10,1);
lcd.print(WL);
lcd.setCursor(15,1);
lcd.print("%");
}
} else { }
delay(5);
LastButton3State = Button3State;
//loss pin
Button4State = digitalRead(buttonL);
if (Button4State != LastButton4State)
{
if (Button4State == LOW)
{
L = L + 1;
G = G + 1;
lcd.setCursor(5,1);
lcd.print(L);
WL = ((double) W / G)*100;
lcd.setCursor(10,1);
lcd.print(WL);
lcd.setCursor(15,1);
lcd.print("%");
}
} else { }
delay(5);
LastButton4State = Button4State;
}