A simple Simon Says game using a Grove Base Shield, 3 Grove LED Bars, 1 Grove Buzzer, and 3 Grove Buttons.
Components Used
Platform: ST-Nucleo-F401RE
Component Configuration
LED_Bar mid(D6, D5); //D5 LED_Bar right(D8, D7); //D7 LED_Bar left(D4, D3); //D3 InterruptIn button_left(A2); InterruptIn button_mid(A1); InterruptIn button_right(A0); DigitalOut buzzer(D2);
Gallery
Diff: main.cpp
- Revision:
- 3:96879db74ec8
- Parent:
- 2:8ff96f7acb45
- Child:
- 4:9950f9ec46cf
--- a/main.cpp Wed Aug 17 15:45:49 2016 +0000
+++ b/main.cpp Thu Aug 18 16:47:00 2016 +0000
@@ -7,10 +7,13 @@
DigitalIn button_left(A2);
DigitalIn button_top(A1);
DigitalIn button_right(A0);
+DigitalOut buzzer(D2);
+Ticker input_timer;
int input[50];
int sequence[] = {3, 2, 1, 3, 2, 1};
+int level_index = 0;
-void start_up() {
+void level() {
//generate random simon says sequence
//wait for user input
@@ -45,7 +48,6 @@
/* gather user input based on buttons pressed, then store button # into
the input array (1=button_right, 2=button_top, 3=button_left) */
void input_loop() {
-
for(int j = 0; j < (sizeof(sequence)/sizeof(sequence[0])); j++) {
wait(0.4);
if (button_top) {
@@ -83,7 +85,7 @@
return true;
}
-/* display a happy LED animation for winning (LED levels 0 to 10 fast, twice) */
+/* display a happy LED animation for winning (LED levels 0 to 10 fast) */
void success() {
for(int h = 0; h <=10; h++){
top.setLevel(h);
@@ -112,11 +114,12 @@
}
}
-int main() {
+void start_game() {
top.setLevel(0);
right.setLevel(0);
left.setLevel(0);
- start_up();
+ //next_level:
+ //level();
wait(0.3);
simon_loop();
input_loop();
@@ -124,4 +127,11 @@
bool winner = win_or_lose();
if (winner == true) { success(); }
else { failure(); }
+ //if (level < 10) then { GoTo next_level; }
}
+
+int main() {
+ start_game();
+}
+
+//buzzer_timer.attach(&timer_handler, 0.5)
\ No newline at end of file
Jenny Plunkett
