Allow disabling sound at startup
This commit is contained in:
parent
ee91c550a2
commit
2ecd7546d7
3 changed files with 20 additions and 8 deletions
|
@ -8,10 +8,10 @@
|
||||||
#define LCD_COLS 16
|
#define LCD_COLS 16
|
||||||
#define LCD_ROWS 2
|
#define LCD_ROWS 2
|
||||||
|
|
||||||
#define BUZZER 11
|
#define BUZZER 10
|
||||||
|
|
||||||
#define BUTTON_GREEN 2
|
#define BUTTON_GREEN 2
|
||||||
#define BUTTON_YELLOW 10
|
#define BUTTON_YELLOW 11
|
||||||
#define BUTTON_BLUE 12
|
#define BUTTON_BLUE 12
|
||||||
#define BUTTON_RED 3
|
#define BUTTON_RED 3
|
||||||
|
|
||||||
|
@ -26,6 +26,8 @@
|
||||||
#define TONE_RED 440
|
#define TONE_RED 440
|
||||||
#define TONE_ERROR 100
|
#define TONE_ERROR 100
|
||||||
|
|
||||||
|
#define GREEN_INDEX 0
|
||||||
|
|
||||||
#define MAX_GAME 20
|
#define MAX_GAME 20
|
||||||
|
|
||||||
#endif //SUPER_SIMON_MAIN_H
|
#endif //SUPER_SIMON_MAIN_H
|
||||||
|
|
|
@ -12,7 +12,9 @@ void deactivateAll();
|
||||||
void playSequence(const byte sequence[], byte upTo);
|
void playSequence(const byte sequence[], byte upTo);
|
||||||
bool userSequence(const byte sequence[], byte upTo);
|
bool userSequence(const byte sequence[], byte upTo);
|
||||||
byte waitForButton();
|
byte waitForButton();
|
||||||
void error();
|
|
||||||
|
void error(byte index);
|
||||||
|
|
||||||
void endGame(LiquidCrystal lcd, bool win, byte score);
|
void endGame(LiquidCrystal lcd, bool win, byte score);
|
||||||
void configure();
|
void configure();
|
||||||
void blink(byte index);
|
void blink(byte index);
|
||||||
|
|
|
@ -11,8 +11,12 @@
|
||||||
const uint8_t LEDS[] = {LED_GREEN, LED_YELLOW, LED_BLUE, LED_RED};
|
const uint8_t LEDS[] = {LED_GREEN, LED_YELLOW, LED_BLUE, LED_RED};
|
||||||
const uint8_t BUTTONS[] = {BUTTON_GREEN, BUTTON_YELLOW, BUTTON_BLUE, BUTTON_RED};
|
const uint8_t BUTTONS[] = {BUTTON_GREEN, BUTTON_YELLOW, BUTTON_BLUE, BUTTON_RED};
|
||||||
const uint16_t TONES[] = {TONE_GREEN, TONE_YELLOW, TONE_BLUE, TONE_RED};
|
const uint16_t TONES[] = {TONE_GREEN, TONE_YELLOW, TONE_BLUE, TONE_RED};
|
||||||
|
bool soundEnabled = true;
|
||||||
|
|
||||||
void configure() {
|
void configure() {
|
||||||
|
if (buttonIsPressed(GREEN_INDEX)) {
|
||||||
|
soundEnabled = false;
|
||||||
|
}
|
||||||
for (byte i = 0; i < 4; i++) {
|
for (byte i = 0; i < 4; i++) {
|
||||||
const byte led = LEDS[i];
|
const byte led = LEDS[i];
|
||||||
pinMode(led, OUTPUT);
|
pinMode(led, OUTPUT);
|
||||||
|
@ -31,7 +35,9 @@ void activate(byte index) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void buzz(byte index, unsigned long duration) {
|
void buzz(byte index, unsigned long duration) {
|
||||||
tone(BUZZER, TONES[index], duration);
|
if (soundEnabled) {
|
||||||
|
tone(BUZZER, TONES[index], duration);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool buttonIsPressed(byte index) {
|
bool buttonIsPressed(byte index) {
|
||||||
|
@ -64,16 +70,18 @@ bool userSequence(const byte sequence[], byte upTo) {
|
||||||
deactivateAll();
|
deactivateAll();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
error();
|
error(expectedButton);
|
||||||
blink(expectedButton);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void error() {
|
void error(byte expectedButton) {
|
||||||
tone(BUZZER, TONE_ERROR, 500);
|
if (soundEnabled) {
|
||||||
|
tone(BUZZER, TONE_ERROR, 500);
|
||||||
|
}
|
||||||
|
blink(expectedButton);
|
||||||
delay(500);
|
delay(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue