From a6765b1d26debb99447fc7106e64f993128aa896 Mon Sep 17 00:00:00 2001 From: Willem Oldemans Date: Sat, 12 Dec 2020 21:24:32 +0100 Subject: [PATCH] fixed chaingame and made simpleled game follow idx --- src/chainGame.cpp | 30 ++++++++++++++++++++++++++---- src/led.cpp | 2 +- src/main.cpp | 13 ++++++++++--- src/simpleled.cpp | 4 ++-- 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/chainGame.cpp b/src/chainGame.cpp index f3a3125..6daafe3 100644 --- a/src/chainGame.cpp +++ b/src/chainGame.cpp @@ -10,6 +10,8 @@ uint8_t patternIndex = 0; uint8_t nextPatternIndex = 1; bool patternFlag = false; bool firstpattern = false; +e_ledcolor cheatbutton = NONE; +bool cheatButtonFlag = false; // uint8_t ledpattern[4][3] = { // {1, 0, 0}, @@ -45,19 +47,39 @@ void HandleChainGame(void) { turnOnLed(ledpattern[patternIndex]); patternFlag = true; + cheatbutton = NONE; } - else if (!buttonIsPressed(ledpattern[patternIndex])) + else if (buttonIsPressed(cheatbutton)) { + turnOnLed(cheatbutton); + cheatButtonFlag = true; + } + else if (!anybutton()) + { + turnOffAllLed(); if (patternFlag) { patternFlag = false; nextPattern(); } - turnOffLed(ledpattern[patternIndex]); + if(cheatButtonFlag) + { + cheatButtonFlag = false; + cheatbutton = NONE; + } } - else + + if(buttonIsPressed(YELLOW2)) { - turnOffAllLed(); + cheatbutton = YELLOW; + } + else if(buttonIsPressed(RED2)) + { + cheatbutton = RED; + } + else if(buttonIsPressed(GREEN2)) + { + cheatbutton = GREEN; } // if (buttonIsPressed(YELLOW) | buttonIsPressed(RED) | buttonIsPressed(GREEN)) diff --git a/src/led.cpp b/src/led.cpp index 2adf7f9..6066c65 100644 --- a/src/led.cpp +++ b/src/led.cpp @@ -19,7 +19,7 @@ void initLeds(void) ledlist.init(); ledlist.AddLed(LED1, DETECT1, 1, 844, YELLOW, false); ledlist.AddLed(LED2, DETECT2, 2, 512, RED, false); - ledlist.AddLed(LED3, DETECT3, 2, 92, GREEN, false); + ledlist.AddLed(LED3, DETECT3, 3, 92, GREEN, false); ledlist.begin(); } diff --git a/src/main.cpp b/src/main.cpp index 80b5c8b..8fb060c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,19 +31,26 @@ uint64_t GameSelectTimer = 0; void HandleIdle(void) { //green button first released - if (buttonIsPressed(YELLOW) && !buttonIsPressed(RED) && buttonIsPressed(GREEN) && (nextGame == none)) + if (!buttonIsPressed(YELLOW) && buttonIsPressed(RED) && buttonIsPressed(GREEN) && (nextGame == none)) { //prepare for next game nextGame = ChainGame; } - //yellow button first released - if (buttonIsPressed(YELLOW) && buttonIsPressed(RED) && !buttonIsPressed(GREEN) & (nextGame == none)) + //red button first released + if (buttonIsPressed(YELLOW) && !buttonIsPressed(RED) && buttonIsPressed(GREEN) & (nextGame == none)) { //prepare for next game nextGame = magicSwitchBoard; } + //green button first released + if (buttonIsPressed(YELLOW) && buttonIsPressed(RED) && !buttonIsPressed(GREEN) & (nextGame == none)) + { + //prepare for next game + nextGame = detectLED; + } + //wait for all buttons to be switched off if (!anybutton()) { diff --git a/src/simpleled.cpp b/src/simpleled.cpp index 03ad5b9..7521b8e 100644 --- a/src/simpleled.cpp +++ b/src/simpleled.cpp @@ -18,11 +18,11 @@ void handleSimpleLed(void) { if (button->isPressed()) { - turnOnLed(button->getColor()); + turnOnLed(button->getIndex()); } else { - turnOffLed(button->getColor()); + turnOffLed(button->getIndex()); } } } \ No newline at end of file