4
<title>A Denemo Keymap</title>
5
<author>AT, JRR, RTS</author>
8
<action>StepSkipOrSame</action>
9
<scheme>;;;;;;;;;;;;;;;
13
;; tests interval recognition.
14
(define StepSkipOrSame::score 0)
15
(define StepSkipOrSame::interval 3)
16
(define StepSkipOrSame::start (current-time))
17
(define StepSkipOrSame::end (current-time))
18
(define StepSkipOrSame::num-goes 30)
19
(define StepSkipOrSame::intervalwas #t)
20
(define StepSkipOrSame::acceptable_list (list "a" "k" "t"))
21
(define StepSkipOrSame::stepstring #t)
22
(define StepSkipOrSame::userinput #t)
23
(define StepSkipOrSame::direction 0)
25
(define (StepSkipOrSame::showscore)
26
(d-DirectivePut-score-display "StepSkipOrSame::GameScore" (string-append "<b>Score: " (object->string StepSkipOrSame::score) "</b> in " (object->string (- StepSkipOrSame::end StepSkipOrSame::start)) " Secs.")))
28
(define (StepSkipOrSame::help)
29
(d-InfoDialog "Is the music moving by a step, skip or staying the same. If the note is going up by skip hit the *k* key. If it is moving by step hit the *t* key. If it is staying the same hit the *a* key")
32
(define (StepSkipOrSame::GameOver)
33
(d-InfoDialog (string-append "Game Over\n" "Your Score = " (number->string StepSkipOrSame::score)))
36
(define (StepSkipOrSame::ScoreBoard)
37
(d-InfoDialog (EducationGames::Scoreboard_Pretty_Print
38
(EducationGames::ScoreboardFile "StepSkipOrSame")))
41
(CreateButton "StepSkipOrSame::GameScore" "<span font_desc=\"12\">Score</span>")
42
(d-SetDirectiveTagActionScript "StepSkipOrSame::GameScore" "(StepSkipOrSame::ScoreBoard)")
43
(CreateButton "StepSkipOrSame::GameHelp" "<b>Help</b>")
44
(d-SetDirectiveTagActionScript "StepSkipOrSame::GameHelp" "(StepSkipOrSame::help)")
47
;;;;;;;; the main function to run the test - just goes to end and places a note at a random height above the cursor, returning the cursor to where it was.
48
(define (StepSkipOrSame::offerNote)
49
(if (>= StepSkipOrSame::num-goes 0)
52
(let gotoEnd () (if (d-NextObject) (gotoEnd)))
53
(set! steps (random StepSkipOrSame::interval))
54
(if (= StepSkipOrSame::direction 0)
56
(EducationGames::shiftup steps)
57
(set! StepSkipOrSame::direction 1))
59
(EducationGames::shiftdown steps)
60
(set! StepSkipOrSame::direction 0)))
66
(set! StepSkipOrSame::stepstring "a")))
69
(set! StepSkipOrSame::stepstring "t")))
72
(set! StepSkipOrSame::stepstring "k")))
75
(StepSkipOrSame::showscore)
76
(set! StepSkipOrSame::num-goes (- StepSkipOrSame::num-goes 1))
80
;;;;;;;;; callback when user chooses a note
81
(define (StepSkipOrSame::intervalchosen interval)
83
(set! StepSkipOrSame::end (current-time))
84
(let gotoEnd () (if (d-NextObject) (gotoEnd)))
85
(if (string=? StepSkipOrSame::stepstring interval)
87
(set! StepSkipOrSame::score (+ StepSkipOrSame::score 1))
88
(EducationGames::PlaceAnswerStatus "CheckMark"))
90
(set! StepSkipOrSame::score (- StepSkipOrSame::score 1))
91
(EducationGames::PlaceAnswerStatus "CrossSign")))
92
(StepSkipOrSame::offerNote)
95
;;;;;;;; the main function to run the test
96
(define StepSkipOrSame::runtest
99
(set! StepSkipOrSame::userinput (EducationGames::GetAcceptableKeyInput StepSkipOrSame::acceptable_list))
100
(StepSkipOrSame::intervalchosen StepSkipOrSame::userinput)
101
(StepSkipOrSame::runtest StepSkipOrSame::num-goes)))))
104
(define (StepSkipOrSame::plus)
105
(set! StepSkipOrSame::interval (+ StepSkipOrSame::interval 1))
106
(if (> StepSkipOrSame::interval 32)
107
(set! StepSkipOrSame::interval 32))
108
(d-DirectivePut-score-display "StepSkipOrSame::GameInterval"
109
(string-append "<span font_desc=\"12\">Interval: " (object->string StepSkipOrSame::interval) "</span>")))
111
(define (StepSkipOrSame::minus)
112
(set! StepSkipOrSame::interval (- StepSkipOrSame::interval 1))
113
(if (< StepSkipOrSame::interval 2)
114
(set! StepSkipOrSame::interval 2))
115
(d-DirectivePut-score-display "StepSkipOrSame::GameInterval"
116
(string-append "<span font_desc=\"12\">Interval: " (object->string StepSkipOrSame::interval) "</span>")))
118
(define (StepSkipOrSame::setInterval)
119
(set! StepSkipOrSame::interval (string->number (d-GetUserInput "Interval" "Give number of steps you want to name note over" (object->string StepSkipOrSame::interval))))
120
(if (boolean? StepSkipOrSame::interval)
121
(set! StepSkipOrSame::interval 8))
122
(if (< StepSkipOrSame::interval 2)
123
(set! StepSkipOrSame::interval 2))
124
(if (> StepSkipOrSame::interval 32)
125
(set! StepSkipOrSame::interval 32))
126
(d-DirectivePut-score-display "StepSkipOrSame::GameInterval"
127
(string-append "<span font_desc=\"12\">Interval: " (object->string StepSkipOrSame::interval) "</span>")))
130
(CreateButton "StepSkipOrSame::GameMinus" "<b>-</b>")
131
(d-SetDirectiveTagActionScript "StepSkipOrSame::GameMinus" "(StepSkipOrSame::minus)")
132
(CreateButton "StepSkipOrSame::GameInterval" (string-append "<span font_desc=\"12\">Interval: " (object->string StepSkipOrSame::interval) "</span>"))
133
(d-SetDirectiveTagActionScript "StepSkipOrSame::GameInterval" "(StepSkipOrSame::setInterval)")
134
(CreateButton "StepSkipOrSame::GamePlus" "<b>+</b>")
135
(d-SetDirectiveTagActionScript "StepSkipOrSame::GamePlus" "(StepSkipOrSame::plus)")
137
(define (StepSkipOrSame::createbuttons position ustring)
138
(CreateButton (string-append "StepSkipOrSame::" position) (string-append " <span font_desc=\"32\" foreground=\"blue\">" position "</span>"))
139
(d-SetDirectiveTagActionScript (string-append "StepSkipOrSame::" position) (string-append "(StepSkipOrSame::intervalchosen \"" ustring "\")")))
141
(StepSkipOrSame::createbuttons "step" "t")
142
(StepSkipOrSame::createbuttons "skip" "k")
143
(StepSkipOrSame::createbuttons "same" "a")
145
(EducationGames::Chime)
147
(EducationGames::shiftup 6)
149
(StepSkipOrSame::offerNote)
150
(set! StepSkipOrSame::start (current-time))
151
(StepSkipOrSame::runtest StepSkipOrSame::num-goes)
152
(if (not (EducationGames::Write_Scoreboard_File
153
(EducationGames::ScoreboardFile "StepSkipOrSame") StepSkipOrSame::score))
154
(StepSkipOrSame::GameOver)
155
(StepSkipOrSame::ScoreBoard)
158
(EducationGames::Chime)
160
;;;;;;;;;;;;;;;;;;;;;;;;;;
163
<label>Step, Skip, or Same?</label>
164
<tooltip>%tests your ability to determine if note is moving by a step or skip</tooltip>