home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
- <stack>
- <name>in</name>
- <id>-1</id>
- <cardCount>70</cardCount>
- <cardID>3774</cardID>
- <listID>4997</listID>
- <cantModify><false /></cantModify>
- <cantDelete><false /></cantDelete>
- <cantAbort><false /></cantAbort>
- <cardSize>
- <width>512</width>
- <height>342</height>
- </cardSize>
- <script>on idle
- global MOUSE_TRACKER, IDLE_TIMER, MAX_IDLE_TIME, DIVIDING_LINE
-
- get the mouseloc
- if the optionkey is down then
- visual effect dissolve to black
- visual effect dissolve
- go to card "main menu"
- exit to hypercard
- end if
- if MOUSE_TRACKER = the mouseloc then
- get the seconds
- subtract IDLE_TIMER from it
- if it > MAX_IDLE_TIME then
- promptoid "Please move the mouse"
- put the ticks into START_TIME
- repeat while the ticks - START_TIME < 300
- if the mouseloc <> MOUSE_TRACKER then
- put the seconds into IDLE_TIMER
- put the mouseloc into MOUSE_TRACKER
- close window "promptoid"
- exit idle
- end if
- end repeat
- close window "promptoid"
- put the seconds into IDLE_TIMER
- put the mouseloc into MOUSE_TRACKER
- visual effect dissolve to black
- visual effect dissolve
- go to card "main menu"
- exit to hypercard
- end if
- else
- put the seconds into IDLE_TIMER
- put the mouseloc into MOUSE_TRACKER
- end if
-
- end idle
-
- on ClickWait
- global MAX_IDLE_TIME
-
- put empty into TOTAL_WAIT_TIME
- put MAX_IDLE_TIME * 60 into MAX_WAIT_TIME
- put the mouseloc into MOUSE_TRACKER
-
- repeat while the mouseclick is true
- -- Clean out leftover mouseclicks
- end repeat
-
- set cursor to "face 1"
- put 1 into CURRENT_FACE
- repeat
- if the optionkey is "down" then
- visual effect dissolve to black
- visual effect dissolve
- go to card "main menu"
- exit to hypercard
- else
- if the mouseclick then exit repeat
- end if
- if inkey() is " " then exit repeat
- put the random of 20 into WAIT_TEMP
- add 50 to WAIT_TEMP
- wait WAIT_TEMP
- add WAIT_TEMP to TOTAL_WAIT_TIME
- if TOTAL_WAIT_TIME > MAX_WAIT_TIME then
- if the mouseloc = MOUSE_TRACKER then
- promptoid "Please move the mouse"
- put the ticks into START_TIME
- put FALSE into FALSE_ALARM
- repeat while the ticks - START_TIME < 300
- if the mouseloc <> MOUSE_TRACKER then
- put TRUE into FALSE_ALARM
- exit repeat
- end if
- end repeat
- close window "promptoid"
- if FALSE_ALARM then
- put the mouseloc into MOUSE_TRACKER
- put 0 into TOTAL_WAIT_TIME
- else
- visual effect dissolve to black
- visual effect dissolve
- go to card "main menu"
- exit to hypercard
- end if
- else
- put the mouseloc into MOUSE_TRACKER
- put 0 into TOTAL_WAIT_TIME
- end if
- end if
- if CURRENT_FACE is 1 then
- put the random of 20 into CURRENT_FACE
- put "face " & CURRENT_FACE into NEW_FACE
- set cursor to NEW_FACE
- else if CURRENT_FACE is 2 then
- set cursor to "face 1"
- put 1 into CURRENT_FACE
- else
- put the random of 20 into CURRENT_FACE
- if CURRENT_FACE is 2 then put 1 into CURRENT_FACE
- put "face " & CURRENT_FACE into NEW_FACE
- set cursor to NEW_FACE
- end if
- end repeat
- set cursor to none
-
- end ClickWait
-
- on openstack
- global USERLEVEL_SAVE
- global WAIT_INTERVAL
- global MYVOLUME
- global VOLUME_SAVE
- global EFFECT_SPEED
- global SPEED
- global LOG_FLAG
- global MAX_IDLE_TIME
- global IDLE_TIMER
- global MOUSE_TRACKER
- global DIVIDING_LINE
-
- hide menubar
- hide titlebar
- put the screenrect into SCREEN_BORDER
- put the rect of card window into CARD_BORDER
- put item 3 of SCREEN_BORDER - item 1 of SCREEN_BORDER into SCREEN_WIDTH
- put item 4 of SCREEN_BORDER - item 2 of SCREEN_BORDER into SCREEN_HEIGHT
- put item 3 of CARD_BORDER - item 1 of CARD_BORDER into CARD_WIDTH
- put item 4 of CARD_BORDER - item 2 of CARD_BORDER into CARD_HEIGHT
- put (SCREEN_WIDTH - CARD_WIDTH) / 2 into item 1 of TOP_LEFT
- put (SCREEN_HEIGHT - CARD_HEIGHT) / 2 into item 2 of TOP_LEFT
- set the loc of card window to TOP_LEFT
- set the cantmodify of this stack to true
- set the cantpeek of this stack to true
- set the blindtyping to false
- put the userlevel into USERLEVEL_SAVE
- put 60 into WAIT_INTERVAL
- set the userlevel to 2
- put volume(4) into VOLUME_SAVE
- put 4 into MYVOLUME
- send updatevolume to card button "slider 1" of card "controls"
- put EMPTY into LOG_FLAG
- put 120 into MAX_IDLE_TIME
- put 0 into IDLE_TIMER
- put the mouseloc into MOUSE_TRACKER
- get the rect of the card window
- put ( item 3 of it - item 1 of it ) / 2 into DIVIDING_LINE
-
- end openstack
-
- on closestack
- global USERLEVEL_SAVE
- global VOLUME_SAVE
-
- set the userlevel to USERLEVEL_SAVE
- put volume(VOLUME_SAVE) into TEMP
-
- end closestack
-
- on suspendstack
- global USERLEVEL_SAVE
- global VOLUME_SAVE
-
- put the userlevel into TEMP
- set the userlevel to USERLEVEL_SAVE
- put TEMP into USERLEVEL_SAVE
- put volume(VOLUME_SAVE) into VOLUME_SAVE
-
- end suspendstack
-
- on resumestack
- global USERLEVEL_SAVE
- global VOLUME_SAVE
-
- put the userlevel into TEMP
- set the userlevel to USERLEVEL_SAVE
- put TEMP into USERLEVEL_SAVE
- put volume(VOLUME_SAVE) into VOLUME_SAVE
-
- end resumestack
-
- on work
- set the userlevel to 5
- set the cantmodify of this stack to false
- set the cantpeek of this stack to false
- end work
-
- on use
- set the cantmodify of this stack to true
- set the cantpeek of this stack to true
- end use
-
- on record_answer MODULE, QUESTION, RIGHTWRONG
- end record_answer
-
- function significantto WORK,PLACES
-
- repeat while first char of WORK is "0"
- delete first char of WORK
- if WORK is EMPTY then
- return FALSE
- exit significantto
- end if
- end repeat
-
- put offset( ".", WORK ) into DECIMAL
-
- if DECIMAL > 1 then
- if length( WORK ) = PLACES + 1 then
- return TRUE
- else
- return FALSE
- end if
- else
- repeat while char DECIMAL+1 of work is "0"
- add 1 to DECIMAL
- end repeat
- if (length( WORK ) - DECIMAL) = PLACES then
- return TRUE
- else
- return FALSE
- end if
- end if
-
- end significantto
-
- function numberVerify container
- put the charToNum of "0" into base
- put the charToNum of "." into aperiod
- put the charToNum of " " into ablank
- put the charToNum of "-" into aminus
- put 0 into isanumber
- put false into seenAPeriod
- put false into numberStarted
- put false into numberFinished
- put false into seenASign
- repeat with i = 1 to the number of characters in line 1 of container
- put (the charToNum of char i of container) into test
- if test is aperiod then
- if numberFinished or seenAperiod then
- put i into isanumber
- exit repeat
- else
- put true into seenAPeriod
- put true into numberStarted
- end if
- else if test is aminus then
- if numberStarted or seenASign then
- put i into isanumber
- exit repeat
- else
- put true into seenASign
- put true into numberStarted
- end if
- else if test is ablank and numberStarted and not numberFinished then
- put true into numberFinished
- else if test is not ablank then
- if numberFinished then
- put i into isanumber
- exit repeat
- else if ((test-base) < 0) or ((test-base) > 9) then
- put i into isanumber
- exit repeat
- else
- put true into numberStarted
- end if
- end if
- end repeat
- return isanumber
- end numberVerify
-
- on login
-
- open file "Hyperchem Records"
- read from file "Hyperchem Records" for 16384
- repeat until it is EMPTY
- put it into PAST_ENTRIES
- read from file "Hyperchem Records" for 16384
- end repeat
- put EMPTY into USERNAME
- if USERNAME is empty then
- ask "Please type your name or ID number:"
- repeat while it is empty
- ask "Please type your name or ID number:"
- end repeat
- put it into USERNAME
- end if
- put USERNAME & "," & the short name of this stack & "," &¬
- the time & "," & the date & RETURN into THIS_ENTRY
- write THIS_ENTRY to file "Hyperchem Records"
- close file "Hyperchem Records"
-
- end login
-
-
- on dowrong
- push card
- visual effect checkerboard
- go to card "wrong"
-
- flash 3
- lock screen
- show cd fld luck
- unlock screen with wipe right
- wait 40
- pop card
- end dowrong
-
- on doright
- push card
- visual effect checkerboard
- go to card "CORRECT"
- flash 3
- show cd fld good
- wait 40
- pop card
- end doright
- </script>
- <background id="2233" file="background_2233.xml" name="" />
- <background id="2663" file="background_2663.xml" name="" />
- <background id="3886" file="background_3886.xml" name="" />
- <background id="9469" file="background_9469.xml" name="work" />
- <background id="9733" file="background_9733.xml" name="" />
- <background id="11025" file="background_11025.xml" name="" />
- <background id="12517" file="background_12517.xml" name="" />
- <background id="13249" file="background_13249.xml" name="" />
- <background id="13907" file="background_13907.xml" name="" />
- <background id="15346" fi