Winfried Sjoukes
/
Tetris
Plays the Tetris theme on a buzzer
Fork of popcorn by
tetris.cpp@1:5d7ecf6a9525, 2012-11-09 (annotated)
- Committer:
- wsjoukes
- Date:
- Fri Nov 09 16:34:20 2012 +0000
- Revision:
- 1:5d7ecf6a9525
Commit message
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wsjoukes | 1:5d7ecf6a9525 | 1 | #include "mbed.h" |
wsjoukes | 1:5d7ecf6a9525 | 2 | #include "beep.h" |
wsjoukes | 1:5d7ecf6a9525 | 3 | Beep buzzer(p23); |
wsjoukes | 1:5d7ecf6a9525 | 4 | |
wsjoukes | 1:5d7ecf6a9525 | 5 | DigitalOut myled(LED1); |
wsjoukes | 1:5d7ecf6a9525 | 6 | |
wsjoukes | 1:5d7ecf6a9525 | 7 | void play(char* note, char* length); |
wsjoukes | 1:5d7ecf6a9525 | 8 | |
wsjoukes | 1:5d7ecf6a9525 | 9 | void tetris() { |
wsjoukes | 1:5d7ecf6a9525 | 10 | |
wsjoukes | 1:5d7ecf6a9525 | 11 | |
wsjoukes | 1:5d7ecf6a9525 | 12 | play("g", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 13 | play("d", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 14 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 15 | play("f", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 16 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 17 | play("d", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 18 | play("c", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 19 | play("c", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 20 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 21 | play("g", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 22 | play("f", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 23 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 24 | play("d", "T"); |
wsjoukes | 1:5d7ecf6a9525 | 25 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 26 | play("f", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 27 | play("g", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 28 | play("eb", "S"); |
wsjoukes | 1:5d7ecf6a9525 | 29 | play("c", "S"); |
wsjoukes | 1:5d7ecf6a9525 | 30 | play("c", "S"); |
wsjoukes | 1:5d7ecf6a9525 | 31 | play("r", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 32 | play("r", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 33 | play("f", "T"); |
wsjoukes | 1:5d7ecf6a9525 | 34 | play("abh", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 35 | play("ch", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 36 | play("bbh", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 37 | play("abh", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 38 | play("g", "T"); |
wsjoukes | 1:5d7ecf6a9525 | 39 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 40 | play("g", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 41 | play("f", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 42 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 43 | play("d", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 44 | play("d", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 45 | play("eb", "E"); |
wsjoukes | 1:5d7ecf6a9525 | 46 | play("f", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 47 | play("g", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 48 | play("eb", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 49 | play("c", "S"); |
wsjoukes | 1:5d7ecf6a9525 | 50 | play("c", "S"); |
wsjoukes | 1:5d7ecf6a9525 | 51 | play("r", "Q"); |
wsjoukes | 1:5d7ecf6a9525 | 52 | |
wsjoukes | 1:5d7ecf6a9525 | 53 | } |
wsjoukes | 1:5d7ecf6a9525 | 54 | |
wsjoukes | 1:5d7ecf6a9525 | 55 | |
wsjoukes | 1:5d7ecf6a9525 | 56 | void play(char* note, char* length) { |
wsjoukes | 1:5d7ecf6a9525 | 57 | |
wsjoukes | 1:5d7ecf6a9525 | 58 | if (note=="ab") { |
wsjoukes | 1:5d7ecf6a9525 | 59 | buzzer.beepFreq(830); |
wsjoukes | 1:5d7ecf6a9525 | 60 | } |
wsjoukes | 1:5d7ecf6a9525 | 61 | if (note=="abh"){ |
wsjoukes | 1:5d7ecf6a9525 | 62 | buzzer.beepFreq(1661); |
wsjoukes | 1:5d7ecf6a9525 | 63 | } |
wsjoukes | 1:5d7ecf6a9525 | 64 | if (note=="bb") { |
wsjoukes | 1:5d7ecf6a9525 | 65 | buzzer.beepFreq(932); |
wsjoukes | 1:5d7ecf6a9525 | 66 | } |
wsjoukes | 1:5d7ecf6a9525 | 67 | if (note=="bbh") { |
wsjoukes | 1:5d7ecf6a9525 | 68 | buzzer.beepFreq(1865); |
wsjoukes | 1:5d7ecf6a9525 | 69 | } |
wsjoukes | 1:5d7ecf6a9525 | 70 | if (note=="c") { |
wsjoukes | 1:5d7ecf6a9525 | 71 | buzzer.beepFreq(1046); |
wsjoukes | 1:5d7ecf6a9525 | 72 | } |
wsjoukes | 1:5d7ecf6a9525 | 73 | if (note=="ch") { |
wsjoukes | 1:5d7ecf6a9525 | 74 | buzzer.beepFreq(2093); |
wsjoukes | 1:5d7ecf6a9525 | 75 | } |
wsjoukes | 1:5d7ecf6a9525 | 76 | if (note=="d") { |
wsjoukes | 1:5d7ecf6a9525 | 77 | buzzer.beepFreq(1175); |
wsjoukes | 1:5d7ecf6a9525 | 78 | } |
wsjoukes | 1:5d7ecf6a9525 | 79 | if (note=="eb") { |
wsjoukes | 1:5d7ecf6a9525 | 80 | buzzer.beepFreq(1245); |
wsjoukes | 1:5d7ecf6a9525 | 81 | } |
wsjoukes | 1:5d7ecf6a9525 | 82 | if (note=="f") { |
wsjoukes | 1:5d7ecf6a9525 | 83 | buzzer.beepFreq(1397); |
wsjoukes | 1:5d7ecf6a9525 | 84 | } |
wsjoukes | 1:5d7ecf6a9525 | 85 | if (note=="g") { |
wsjoukes | 1:5d7ecf6a9525 | 86 | buzzer.beepFreq(1568); |
wsjoukes | 1:5d7ecf6a9525 | 87 | } |
wsjoukes | 1:5d7ecf6a9525 | 88 | if (note=="r") { |
wsjoukes | 1:5d7ecf6a9525 | 89 | buzzer.beepFreq(0); |
wsjoukes | 1:5d7ecf6a9525 | 90 | } |
wsjoukes | 1:5d7ecf6a9525 | 91 | |
wsjoukes | 1:5d7ecf6a9525 | 92 | if (length=="Q"){ //quarter note |
wsjoukes | 1:5d7ecf6a9525 | 93 | buzzer.beepTime(0.5); |
wsjoukes | 1:5d7ecf6a9525 | 94 | wait (0.5); |
wsjoukes | 1:5d7ecf6a9525 | 95 | } |
wsjoukes | 1:5d7ecf6a9525 | 96 | if (length=="E"){ // eighth note |
wsjoukes | 1:5d7ecf6a9525 | 97 | buzzer.beepTime(0.25); |
wsjoukes | 1:5d7ecf6a9525 | 98 | wait(0.25); |
wsjoukes | 1:5d7ecf6a9525 | 99 | } |
wsjoukes | 1:5d7ecf6a9525 | 100 | if (length=="T"){ //quarter+eigthh note |
wsjoukes | 1:5d7ecf6a9525 | 101 | buzzer.beepTime(0.75); |
wsjoukes | 1:5d7ecf6a9525 | 102 | wait(0.75); |
wsjoukes | 1:5d7ecf6a9525 | 103 | } |
wsjoukes | 1:5d7ecf6a9525 | 104 | if (length=="S"){ //staccato note |
wsjoukes | 1:5d7ecf6a9525 | 105 | buzzer.beepTime(0.25); |
wsjoukes | 1:5d7ecf6a9525 | 106 | wait(0.5); |
wsjoukes | 1:5d7ecf6a9525 | 107 | } |
wsjoukes | 1:5d7ecf6a9525 | 108 | |
wsjoukes | 1:5d7ecf6a9525 | 109 | } |
wsjoukes | 1:5d7ecf6a9525 | 110 | |
wsjoukes | 1:5d7ecf6a9525 | 111 | |
wsjoukes | 1:5d7ecf6a9525 | 112 | int main() { |
wsjoukes | 1:5d7ecf6a9525 | 113 | tetris(); |
wsjoukes | 1:5d7ecf6a9525 | 114 | } |