#include "U8glib.h"
#include <Bounce2.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
int progress = 0;
int buttonPin = 12;
int currentPlayer = 1;
extern volatile unsigned long previousMillis = 0;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
u8g.setFont(u8g_font_tpssb);
u8g.setColorIndex(1);
drawDisplay();
}
void loop() {
int buttonState = digitalRead(buttonPin);
//Serial.print(currentPlayer);
//Serial.println(buttonState);
if (buttonState == LOW) // light the LED
{
switch (currentPlayer) {
case 1: {
currentPlayer = 2;
break;
}
case 2: {
currentPlayer = 1;
break;
}
}
delay(500);
resetTurnTime();
drawDisplay();
}
drawDisplay();
}
void resetTurnTime() {
previousMillis = millis();
}
void drawDisplay() {
u8g.firstPage();
enum {BufSize = 9}; // If a is short use a smaller number, eg 5 or 6
char buf[BufSize];
snprintf(buf, BufSize, "%d", currentPlayer);
String player = String(buf);
unsigned long mill = (millis() - previousMillis);
unsigned long seconds = mill / 1000;
unsigned long minutes = seconds / 60;
/*Serial.print(mill);
Serial.print(" ");
Serial.print(turnTime);
Serial.print(" ");
Serial.print(previousMillis);
Serial.println();*/
seconds %= 60;
minutes %= 60;
snprintf(buf, BufSize, "%02d", minutes);
String time = String(buf) + String(":");
snprintf(buf, BufSize, "%02d", seconds);
time = time + String(buf);
do {
u8g.setFont(u8g_font_fur30r);
u8g.drawStr(50, 35, player.c_str());
u8g.drawLine(10, 45, 110, 45);
u8g.setFont(u8g_font_tpssb);
u8g.drawStr(40, 60, "Current Player");
switch (currentPlayer) {
case 1: {
u8g.drawStr(10, 25, "<<<");
break;
}
case 2: {
u8g.drawStr(90, 25, ">>>");
break;
}
}
//Serial.println(time);
u8g.drawStr(0, 60, time.c_str());
} while ( u8g.nextPage() );
}