--This is an applescript to help with -- the Two Hundred Situps training program -- copyright Eric Goldhagen -- -- This code is licensed under the GPL version 3 -- http://www.gnu.org/licenses/gpl.html -- -- get the voices to use -- get the voice the user selected from the list set myVoices to {"Fred", "Agnes", "Bruce", "Kathy", "Junior", "Princess", "Ralph", "Vicki", "Victoria"} set selectedVoiceSitupNumber to {choose from list myVoices with prompt "Pick the voice for the number of situps and general prompts"} -- get the voice the user selected from the list set myVoices to {"Fred", "Agnes", "Bruce", "Kathy", "Junior", "Princess", "Ralph", "Vicki", "Victoria"} set selectedVoiceCountNumber to {choose from list myVoices with prompt "Pick the voice for counting the length of each situp"} --get the numbers for each set -- there are 4 sets per workout -- followed by a set where you try get -- as close to 200 as popssible set displayString to "How many situps in set 1?" set defaultAnswer to 0 repeat set response to display dialog displayString default answer defaultAnswer try set theNumber to (text returned of response) as number exit repeat on error errstr set displayString to errstr & return & "Please try again." set defaultAnswer to text returned of response end try end repeat set howManySitupsRep1 to text returned of response set displayString to "How many situps in set 2?" set defaultAnswer to 0 repeat set response to display dialog displayString default answer defaultAnswer try set theNumber to (text returned of response) as number exit repeat on error errstr set displayString to errstr & return & "Please try again." set defaultAnswer to text returned of response end try end repeat set howManySitupsRep2 to text returned of response set displayString to "How many situps in set 3?" set defaultAnswer to 0 repeat set response to display dialog displayString default answer defaultAnswer try set theNumber to (text returned of response) as number exit repeat on error errstr set displayString to errstr & return & "Please try again." set defaultAnswer to text returned of response end try end repeat set howManySitupsRep3 to text returned of response set displayString to "How many situps in set 4?" set defaultAnswer to 0 repeat set response to display dialog displayString default answer defaultAnswer try set theNumber to (text returned of response) as number exit repeat on error errstr set displayString to errstr & return & "Please try again." set defaultAnswer to text returned of response end try end repeat --start the sets say "get ready, we will start in 30 seconds" using selectedVoiceSitupNumber delay 30 set howManySitupsRep4 to text returned of response set currentSitup to 1 repeat howManySitupsRep1 times say currentSitup using selectedVoiceSitupNumber delay 1 say "1" using selectedVoiceCountNumber delay 1 say "2" using selectedVoiceCountNumber delay 1 say "3" using selectedVoiceCountNumber delay 1 say "down" using selectedVoiceSitupNumber delay 3 set currentSitup to currentSitup + 1 end repeat say "good job, now rest for 30 seconds" using selectedVoiceSitupNumber delay 25 say "get ready for the next set" using selectedVoiceSitupNumber delay 2 set currentSitup to 1 repeat howManySitupsRep2 times say currentSitup using selectedVoiceSitupNumber delay 1 say "1" using selectedVoiceCountNumber delay 1 say "2" using selectedVoiceCountNumber delay 1 say "3" using selectedVoiceCountNumber delay 1 say "down" using selectedVoiceSitupNumber delay 3 set currentSitup to currentSitup + 1 end repeat say "good job, now rest for 30 seconds" using selectedVoiceSitupNumber delay 25 say "get ready for the next set" using selectedVoiceSitupNumber delay 2 set currentSitup to 1 repeat howManySitupsRep3 times say currentSitup using selectedVoiceSitupNumber delay 1 say "1" using selectedVoiceCountNumber delay 1 say "2" using selectedVoiceCountNumber delay 1 say "3" using selectedVoiceCountNumber delay 1 say "down" using selectedVoiceSitupNumber delay 3 set currentSitup to currentSitup + 1 end repeat say "good job, now rest for 30 seconds" using selectedVoiceSitupNumber delay 25 say "get ready for the next set" using selectedVoiceSitupNumber delay 2 set currentSitup to 1 repeat howManySitupsRep4 times say currentSitup using selectedVoiceSitupNumber delay 1 say "1" using selectedVoiceCountNumber delay 1 say "2" using selectedVoiceCountNumber delay 1 say "3" using selectedVoiceCountNumber delay 1 say "down" using selectedVoiceSitupNumber delay 3 set currentSitup to currentSitup + 1 end repeat say "good job, now rest for 30 seconds. next is the exhaustion test, I'll count until 200 situps and you stop when you can not do any more" using selectedVoiceSitupNumber delay 25 say "get ready for the final set" using selectedVoiceSitupNumber delay 2 set currentSitup to 1 repeat 200 times say currentSitup using selectedVoiceSitupNumber delay 1 say "1" using selectedVoiceCountNumber delay 1 say "2" using selectedVoiceCountNumber delay 1 say "3" using selectedVoiceCountNumber delay 1 say "down" using selectedVoiceSitupNumber delay 3 set currentSitup to currentSitup + 1 end repeat