Add easy mode without shuffling
This commit is contained in:
parent
92a2d39e49
commit
8c0f98b7a7
@ -97,15 +97,20 @@ bool readButton(uint8_t i) {
|
||||
|
||||
// ------------------ Neues Spiel ------------------
|
||||
|
||||
void generateNewGame() {
|
||||
void generateNewGame(bool easy) {
|
||||
|
||||
for (uint8_t i = 0; i < 6; i++) solutionOrder[i] = i;
|
||||
for (uint8_t i = 0; i < 6; i++)
|
||||
solutionOrder[i] = i;
|
||||
|
||||
for (int i = 5; i > 0; i--) {
|
||||
int j = random(i + 1);
|
||||
uint8_t t = solutionOrder[i];
|
||||
solutionOrder[i] = solutionOrder[j];
|
||||
solutionOrder[j] = t;
|
||||
if (!easy)
|
||||
{
|
||||
for (int i = 5; i > 0; i--)
|
||||
{
|
||||
int j = random(i + 1);
|
||||
uint8_t t = solutionOrder[i];
|
||||
solutionOrder[i] = solutionOrder[j];
|
||||
solutionOrder[j] = t;
|
||||
}
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < 6; i++)
|
||||
@ -137,11 +142,15 @@ void generateNewGame() {
|
||||
uint8_t idx[18];
|
||||
for (uint8_t i = 0; i < 18; i++) idx[i] = i;
|
||||
|
||||
for (int i = 17; i > 0; i--) {
|
||||
int j = random(i + 1);
|
||||
uint8_t t = idx[i];
|
||||
idx[i] = idx[j];
|
||||
idx[j] = t;
|
||||
if (!easy)
|
||||
{
|
||||
for (int i = 17; i > 0; i--)
|
||||
{
|
||||
int j = random(i + 1);
|
||||
uint8_t t = idx[i];
|
||||
idx[i] = idx[j];
|
||||
idx[j] = t;
|
||||
}
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < 6; i++)
|
||||
@ -244,7 +253,7 @@ void setup() {
|
||||
|
||||
if (powerOnState)
|
||||
{
|
||||
generateNewGame();
|
||||
generateNewGame(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -271,7 +280,7 @@ void loop() {
|
||||
// Detecting turn-on
|
||||
if (!powerOnState && digitalRead(PIN_POWER_ON) == HIGH)
|
||||
{
|
||||
generateNewGame();
|
||||
generateNewGame(false);
|
||||
powerOnState = true;
|
||||
}
|
||||
if (!powerOnState)
|
||||
@ -279,14 +288,18 @@ void loop() {
|
||||
// We are turned-off and stop anything after here
|
||||
return;
|
||||
}
|
||||
unsigned long now = millis();
|
||||
|
||||
bool trigger = digitalRead(PIN_TRIGGER_SHUFFLE);
|
||||
if (trigger && !lastTriggerState) {
|
||||
generateNewGame();
|
||||
if (digitalRead(PIN_TRIGGER_SHUFFLE) == HIGH)
|
||||
{
|
||||
unsigned long resetTimer = millis();
|
||||
while (digitalRead(PIN_TRIGGER_SHUFFLE) == HIGH)
|
||||
{
|
||||
delay(10);
|
||||
}
|
||||
generateNewGame(millis() - resetTimer > 150);
|
||||
}
|
||||
lastTriggerState = trigger;
|
||||
|
||||
unsigned long now = millis();
|
||||
for (uint8_t i = 0; i < 18; i++) {
|
||||
bool pressed = readButton(i);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user