<spoiler> //fastpress
int gameState = 0;
int p1Button = 3;
int p2Button = 2;
int p1LED = 4;
int p2LED = 6;
int winLED = 5;
void setup() {
Serial.begin(115200);
pinMode(p1Button, INPUT);
pinMode(p2Button, INPUT);
pinMode(p1LED, OUTPUT);
pinMode(p2LED, OUTPUT);
pinMode(winLED, OUTPUT);
}
void loop() {
/* gamestate table:
* if gamestate = 0: game not running
* if gamestate = 1: game beggining
* if gamestate = 2: game on
* if gamestate = 3: light on; press button
* if gamestate = 4: player 2 wins
* if gamestate = 5: player 1 wins
*/
int pressed = digitalRead(p2Button);
int pressed2 = digitalRead(p1Button);
if(pressed2 == 1 && gameState == 0){
gameState = 1;
game();
}
if( pressed == 1 && gameState == 2){
gameState == 4;
}
if( pressed2 == 1 && gameState == 2){
gameState == 5;
}
if( pressed == 1 && gameState == 3){
gameState == 5;
}
if( pressed2 == 1 && gameState == 3){
gameState == 4;
}
if(gameState == 5){
for(int i = 0; i == 6; i++){
digitalWrite(winLED,LOW);
digitalWrite(p1LED, HIGH);
delay(100);
digitalWrite(p1LED, LOW);
}
}
if(gameState == 4){
for(int i = 0; i == 6; i++){
digitalWrite(winLED,LOW);
digitalWrite(p2LED, HIGH);
delay(100);
digitalWrite(p2LED, LOW);
}
}
}
void game(){
for(int z = 4; z == 6; z++){
digitalWrite(z, HIGH);
}
delay(50);
for(int z = 4; z == 6; z++){
digitalWrite(z, LOW);
}
gameState = 2;
delay(random(150, 400));
gameState = 3;
digitalWrite(winLED, HIGH);
}
</spoiler>