Add easy mode based on pulse length

This commit is contained in:
C0d3v 2026-01-19 13:30:10 +01:00
parent 9f964f63d3
commit 9df16a82c4

View File

@ -211,7 +211,7 @@ NormalizedRGB generateRandomNormalizedRGB(const Section *section, uint8_t from,
} }
GameBoard finishedBoard; GameBoard finishedBoard;
void generateTargetGameBoard() void generateTargetGameBoard(bool easy)
{ {
for (size_t i = 0; i < 6; i++) for (size_t i = 0; i < 6; i++)
{ {
@ -221,20 +221,37 @@ void generateTargetGameBoard()
strip.begin(); strip.begin();
strip.clear(); strip.clear();
GameBoard board; GameBoard board;
// left if (easy)
board.left = generateRandomNormalizedRGB(pot3, 0, 3); {
finishedLeft = false; // left
strip.setPixelColor(3, strip.Color(board.left.r, board.left.g, board.left.b, 0)); // left board.left = generateRandomNormalizedRGB(pot3, 2, 3);
// middle finishedLeft = false;
board.middle = generateRandomNormalizedRGB(pot4, 0, 4); strip.setPixelColor(3, strip.Color(board.left.r, board.left.g, board.left.b, 0)); // left
finishedMiddle = false; // middle
strip.setPixelColor(4, strip.Color(board.middle.r, board.middle.g, board.middle.b, 0)); // middle board.middle = generateRandomNormalizedRGB(pot3, 2, 3);
// right finishedMiddle = false;
board.right = generateRandomNormalizedRGB(pot5, 1, 5); strip.setPixelColor(4, strip.Color(board.middle.r, board.middle.g, board.middle.b, 0)); // middle
finishedRight = false; // right
strip.setPixelColor(5, strip.Color(board.right.r, board.right.g, board.right.b, 0)); // left board.right = generateRandomNormalizedRGB(pot3, 2, 3);
//------------------ finishedRight = false;
strip.setPixelColor(5, strip.Color(board.right.r, board.right.g, board.right.b, 0)); // left
}
else
{
// left
board.left = generateRandomNormalizedRGB(pot3, 0, 3);
finishedLeft = false;
strip.setPixelColor(3, strip.Color(board.left.r, board.left.g, board.left.b, 0)); // left
// middle
board.middle = generateRandomNormalizedRGB(pot4, 0, 4);
finishedMiddle = false;
strip.setPixelColor(4, strip.Color(board.middle.r, board.middle.g, board.middle.b, 0)); // middle
// right
board.right = generateRandomNormalizedRGB(pot5, 1, 5);
finishedRight = false;
strip.setPixelColor(5, strip.Color(board.right.r, board.right.g, board.right.b, 0)); // left
//------------------
}
finishedBoard = board; finishedBoard = board;
strip.show(); strip.show();
} }
@ -261,7 +278,7 @@ void setup()
if (powerOnState) if (powerOnState)
{ {
strip.begin(); strip.begin();
generateTargetGameBoard(); generateTargetGameBoard(false);
strip.show(); strip.show();
} }
} }
@ -298,7 +315,7 @@ void loop()
// Detecting turn-on // Detecting turn-on
if (!powerOnState && digitalRead(POWER_PIN) == HIGH) if (!powerOnState && digitalRead(POWER_PIN) == HIGH)
{ {
generateTargetGameBoard(); generateTargetGameBoard(false);
powerOnState = true; powerOnState = true;
} }
if (!powerOnState) if (!powerOnState)
@ -309,8 +326,12 @@ void loop()
if (digitalRead(REGENERATE_PIN) == HIGH) if (digitalRead(REGENERATE_PIN) == HIGH)
{ {
generateTargetGameBoard(); unsigned long resetTimer = millis();
delay(50); // Puls kurz blockieren while (digitalRead(REGENERATE_PIN) == HIGH)
{
delay(10);
}
generateTargetGameBoard(millis() - resetTimer > 150);
} }
strip.begin(); strip.begin();