'===========================================================================
' Subject: SIMON SAYS                         Date: 12-31-95 (00:00)       
'  Author: John Rodgers                       Code: QB, QBasic, PDS        
'  Origin: www.sat.net/~unol                Packet: GAMES.ABC
'===========================================================================
DECLARE SUB lilSimon ()
DECLARE SUB corect ()
DECLARE SUB highScore ()
DECLARE SUB gameOver ()
DECLARE SUB gameLoop ()
DECLARE SUB delay (a!)
DECLARE SUB gameSet ()
DECLARE SUB info ()
DECLARE SUB gameinfo ()
DECLARE SUB eye (xp%, yp%)
DECLARE SUB getName ()
DECLARE SUB getColor (co%)
DECLARE SUB paintSub (color1%)
DECLARE SUB simon ()
							 'Great FUNCTION I got it from the FIDO QUICKBasic sub[TCF]
DECLARE FUNCTION getKey$ (row%, col%, prompt$, default$, maxx, minn, blanker$, limit$)

COMMON SHARED t%, color1%, st%, co%, l%, winner%
COMMON SHARED key1$, key2$, key3$, key4$
COMMON SHARED song$, name$, simonSong$, playerSong$
COMMON SHARED del!
SCREEN 9
ON ERROR GOTO eror:
CLS
del! = 1
st% = 1
song$ = "T80O1>L20CDEF"
PLAY "L16"                          'game song
PLAY "MB"

 
 
DO
 
lp% = lp% + 1
 FOR lop = 1 TO 10                     'draw small simon
	CIRCLE (420, 250), 90 + lop, 3
 NEXT lop
	
LINE (420, 178)-(420, 323), 3
LINE (320, 250)-(520, 250), 3
PAINT (418, 245), 14, 3
PAINT (428, 245), 2, 3
PAINT (418, 255), 4, 3
PAINT (428, 255), 9, 3

simon                                     'call simon sub
 IF lp% = 1 THEN
	 LINE (99, 307)-(201, 331), 4, B
	 LINE (100, 308)-(200, 330), 8, BF      'show eye with box once
	eye 150, 320
 END IF
LOCATE 25, 11
PRINT "Wizard Productions";

 IF lp% <= 6 THEN                               'play song 6 times
	 PLAY song$
 END IF
 IF lp% >= 28 THEN                              'change prompt color to BrWh
	h% = 15                                        'after 28 loops
 END IF

IF lp% >= 15 THEN                               'turn prompt off for effect
 COLOR h%
 LOCATE 17, 8
 PRINT "ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¸"
 LOCATE 18, 8
 PRINT "³ PRESS ALMOST ANY KEY! ³"                'prompt
 LOCATE 19, 8
 PRINT "ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¾"
END IF

r$ = INKEY$
 IF r$ = CHR$(27) THEN CLS : SYSTEM             'check for escape key


LOOP UNTIL LEN(r$)                              'loop until keypressed

getName                                         'name loop

gameinfo                                        'set keys for play
 
CLS

gameLoop                                        'main game loop


 SYSTEM

eror:
																								'error trap
t% = INT(RND * 13)
simonSong$ = "CC"
RESUME

SUB corect
lop% = 1
del! = .8
x% = LEN(simonSong$) + 1
DO
 LOCATE 4, 32
 PRINT "Correct song goes..."
s$ = MID$(simonSong$, lop%, 1)
lop% = lop% + 1
SELECT CASE s$
CASE "C"                                    'play correct song
getColor 1
CASE "D"
getColor 2
CASE "E"
getColor 3
CASE "F"
getColor 4
END SELECT
LOOP UNTIL lop% >= x%

END SUB

SUB delay (a!)              'real time delay, if a = 1 then delay = 1 second
 dela! = TIMER
 outvar = 0
	
DO
	
	lt% = lt% + 1                            'exit codes
	IF lt% >= 59500 THEN outvar = 1          'MIDNIGHT FIX

 IF TIMER - dela! >= a! THEN outvar = 1

 r$ = INKEY$
 IF r$ = CHR$(27) THEN CLS : SYSTEM
 IF LEN(r$) THEN outvar = 1
LOOP UNTIL outvar = 1
 
END SUB

SUB eye (xp%, yp%)                           'logo graphic

CIRCLE (xp%, yp%), 32, 14, , , 2 / 9
PAINT STEP(0, 0), 14
CIRCLE STEP(0, -1), 11, 0
PAINT STEP(0, 0), 0, 0
CIRCLE STEP(3, 2), 1, 12
END SUB

SUB gameinfo                                  'user selects keys for play
	COLOR 14
CLS
PRINT "          ÒÄÄ¿ Ò    ÒÄÄ¿ ÖÄÄ¿  ÖÄ¿ ÒÄÄ¿    ÒÄÄ¿ ÖÄÄ¿ ÖÄÒÄ¿ ÒÄÄ¿ ÒÄÄ¿"
PRINT "          ÇÄÄÙ º    ÇÄ   ÇÄÄ´  ÓÄ¿ ÇÄ      ÇÄ   º  ³   º   ÇÄ   ÇÄÂÙ"
PRINT "          Ð    ÐÄÄÙ ÐÄÄÙ Ð  Á ÓÄÄÙ ÐÄÄÙ    ÐÄÄÙ Ð  Á   Ð   ÐÄÄÙ Ð Á"
PRINT "         ÒÄÄ¿ ÖÄÄ¿ Ò  Â ÒÄÄ¿     Ò    ÒÄÄ¿ ÖÄÒÄ¿ ÖÄÒÄ¿ ÒÄÄ¿ ÒÄÄ¿  ÖÄ¿"
PRINT "         ÇÄ   º  ³ º  ³ ÇÄÂÙ     º    ÇÄ     º     º   ÇÄ   ÇÄÂÙ  ÓÄ¿"
PRINT "         Ð    ÓÄÄÙ ÓÄÄÙ Ð Á      ÐÄÄÙ ÐÄÄÙ   Ð     Ð   ÐÄÄÙ Ð Á  ÓÄÄÙ"
PRINT
PRINT
PRINT "                                        ÚÄÄÄÄÄ¿ ÚÄÄÄÄÄ¿ ÚÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄ¿"
PRINT "                                        ³ ÚÄÄÄÙ ³ ÚÄ¿ ³ ³ ÚÄÄ¿ ³ ³ Ú¿ Ú¿ ³"
PRINT " ÒÄÄ¿ ÒÄÄ¿ ÒÄÄ¿ ÖÄÄ¿ Ò  Â Ò    ÖÄÒÄ¿    ³ ÀÄ¿   ³ ³ ÀÄÙ ³ ³  ³ ³ ³ ³³ ³³ ³"
PRINT " º  ³ ÇÄ   ÇÄ   ÇÄÄ´ º  ³ º      º      ³ ÚÄÙ   ³ ³ ÚÄ¿ ³ ³  ³ ³ ³ ³ÀÄÙ³ ³"
PRINT " ÐÄÄÙ ÐÄÄÙ Ð    Ð  Á ÓÄÄÙ ÐÄÄÙ   Ð      ³ ÀÄÄÄ¿ ³ ÀÄÙ ³ ³ ÀÄÄÙ ³ ³ ³   ³ ³"
PRINT "                                        ÀÄÄÄÄÄÙ ÀÄÄÄÄÄÙ ÀÄÄÄÄÄÄÙ ÀÄÙ   ÀÄÙ"
PAINT (340, 125), 14, 14
PAINT (420, 125), 4, 14
PAINT (500, 125), 2, 14
PAINT (580, 125), 9, 14

eye 200, 120

LOCATE 19, 20
COLOR 14
PRINT "YELLOW"
LOCATE 20, 20
COLOR 4
PRINT "RED"
LOCATE 21, 20
COLOR 2
PRINT "GREEN"
LOCATE 22, 20
COLOR 9
PRINT "BLUE"
COLOR 15
 LOCATE 17, 10
PRINT UCASE$(name$)
LOCATE 17, (12 + LEN(name$))
COLOR 14
PRINT " PRESS ENTER TO ACCEPT, BACKSPACE TO CHANGE"
PLAY song$


								 'key 1 = yellow
 key1$ = getKey$(19, 40, "Key 1   ", "E", 1, 1, "*", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890")
PLAY song$
																		
 DO                                'DO until keys are different
COLOR 4                                              'key 2 = red
key2$ = getKey$(20, 40, "Key 2   ", "C", 1, 1, "*", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890")
LOOP UNTIL UCASE$(key2$) <> UCASE$(key1$)
 PLAY song$
																		
DO                                  'DO until keys are different
DO
COLOR 2                                              'key 3 = green
key3$ = getKey$(21, 40, "Key 3   ", "O", 1, 1, "*", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890")
LOOP UNTIL UCASE$(key3$) <> UCASE$(key1$)
LOOP UNTIL UCASE$(key3$) <> UCASE$(key2$)
PLAY song$
 
DO                                 'DO until keys are different
DO
DO
COLOR 9                                              'key 4 = blue
key4$ = getKey$(22, 40, "Key 4   ", "M", 1, 1, "*", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890")
LOOP UNTIL UCASE$(key4$) <> UCASE$(key1$)
LOOP UNTIL UCASE$(key4$) <> UCASE$(key2$)
LOOP UNTIL UCASE$(key4$) <> UCASE$(key3$)
PLAY song$

END SUB

SUB gameLoop                  'MAIN GAME LOOP
PLAY song$ + song$
 

gameSet                                         'show color keys


CLS                                            'run eye and wait for *fast
eye 320, 200                                    'users* to clear music
delay 3

COLOR 9
CLS
PRINT "                 ÖÄ¿ ÄÒÄ ÖÄÒÄ¿ ÖÄÄ¿ ÖÄÄ¿      ÖÄ¿ ÖÄÄ¿ Ò  Â  ÖÄ¿"
PRINT "                 ÓÄ¿  º  º º ³ º  ³ º  ³      ÓÄ¿ ÇÄÄ´ ÓÄÄ´  ÓÄ¿"
PRINT "                ÓÄÄÙ ÄÐÄ Ð Ð Á ÓÄÄÙ Ð  Á     ÓÄÄÙ Ð  Á ÓÄÄÙ ÓÄÄÙ"

FOR lp% = 1 TO 12
 CIRCLE (320, 200), 160 + lp%, 3                'main circle
NEXT lp%
 
LINE (320, 80)-(320, 323), 3                    'cross hairs
LINE (160, 200)-(480, 200), 3
 
DO                                              'st% = Simons Turn
IF st% = 1 THEN                                 'l% is a counter variable
	 l% = l% + 1
	 del! = del! - .08

	 LOCATE 4, 1
		PRINT SPACE$(80)                           'clear turn prompt
		eye 320, 200
LINE (320, 80)-(320, 323), 3
LINE (160, 200)-(480, 200), 3

	 LOCATE 4, 38
	 PRINT "MY TURN"
 FOR lp% = 1 TO l%                              'simon's turn
		RANDOMIZE TIMER
		 co% = INT(RND * 4) + 1
		getColor co%
 NEXT lp%
 st% = 0
END IF
	 LOCATE 4, 1
		PRINT SPACE$(80)                           'clear turn prompt
 COLOR 15

 IF st% = 0 THEN
	 co% = 0
	 pl$ = UCASE$(name$) + "'S TURN"
	 LOCATE 4, 40 - (LEN(pl$) / 2)                'players turn
	 PRINT pl$; LEN(simonSong$)
 
 DO
			P$ = INKEY$
			IF P$ = CHR$(27) THEN CLS : SYSTEM         'wait for keypress
	LOOP UNTIL LEN(P$)
					 
	 P$ = UCASE$(P$)
 IF P$ = UCASE$(key1$) THEN co% = 1              'check input
 IF P$ = UCASE$(key2$) THEN co% = 2
 IF P$ = UCASE$(key3$) THEN co% = 3
 IF P$ = UCASE$(key4$) THEN co% = 4
 
 getColor co%                                    'paint corresponding color
	
	 P$ = ""                                       'clear variable
	 
		IF LEN(playerSong$) = LEN(simonSong$) THEN   'if both same length
	st% = 1                                        'Simons turn
	delay 1
			 IF playerSong$ = simonSong$ THEN          'continue if same
		simonSong$ = ""                             'clear variables
		playerSong$ = ""
			 ELSE
		 
		gameOver
		
			 END IF

		END IF                        ' LEN(playerSong$) = LEN(simonSong$)
END IF

 r$ = INKEY$
 IF r$ = CHR$(27) THEN CLS : SYSTEM              'check for escape key

LOOP
 
CLS
BEEP: BEEP

IF playerSong$ <> simonSong$ THEN gameOver
simonSong$ = ""         'clear variables
playerSong$ = ""
st% = 1
 
END SUB

SUB gameOver
PLAY "fe<dcb<a"

	 LOCATE 4, 1
		PRINT SPACE$(80)                             'clear turn prompt
		st% = 0
	delay 2

	corect                                         'play correct song

 highScore                                       'check for highscore
 
 delay 1
 
 lilSimon
					 'PLAY AGAIN SCREEN
 FOR lop = 1 TO 10                                'draw small simon
	CIRCLE (420, 250), 90 + lop, 3
 NEXT lop
 
LINE (420, 178)-(420, 323), 3
LINE (320, 250)-(520, 250), 3
PAINT (418, 245), 14, 3
PAINT (428, 245), 2, 3
PAINT (418, 255), 4, 3
PAINT (428, 255), 9, 3

	 eye 320, 100
	 LOCATE 5, 40 - INT(LEN(name$) + 8) / 2
	 COLOR 14
	 PRINT UCASE$(name$) + " GAME OVER"
	 delay 1
again$ = getKey$(4, 25, "WOULD YOU LIKE TO PLAY AGAIN?  Y/N ", "", 1, 1, " ", "yYnN")

 IF UCASE$(again$) = "Y" THEN
	 CLS
	 simonSong$ = ""      'reset game
	 playerSong$ = ""
	 l% = 0
	 lp% = 0
	 del! = 1
	 st% = 1
	gameLoop
 END IF

SYSTEM

END SUB

SUB gameSet

lilSimon

FOR lp = 1 TO 15                     'draw and paint big simon circle
 CIRCLE (320, 200), 160 + lp, 3
 NEXT lp
LINE (320, 80)-(320, 323), 3
LINE (160, 200)-(480, 200), 3
PAINT (315, 88), 14, 3
PAINT (332, 88), 2, 3
PAINT (315, 201), 4, 3
PAINT (332, 201), 9, 3

LOCATE 10, 8                             'inform user of choices
COLOR 14
PRINT "YELLOW is "; UCASE$(key1$)
LOCATE 18, 8
COLOR 4
PRINT "RED is "; UCASE$(key2$)
LOCATE 10, 66
COLOR 2
PRINT "GREEN is "; UCASE$(key3$)
LOCATE 18, 66
COLOR 9
PRINT "BLUE is "; UCASE$(key4$)

	eye 320, 200

COLOR 15                                        'prompt user for keypress
LOCATE 25, 26
PRINT UCASE$(name$);
COLOR t%
PRINT UCASE$(" Press a key to begin");

DO
	r$ = INKEY$
 IF r$ = CHR$(27) THEN CLS : SYSTEM             'wait for user to start
LOOP UNTIL LEN(r$)

END SUB

SUB getColor (co%)            'paint color choice to circle
 
IF co% = 1 THEN color1 = 14
IF co% = 2 THEN color1 = 4
IF co% = 3 THEN color1 = 2
IF co% = 4 THEN color1 = 9
 
SELECT CASE color1

 CASE 14                                'yellow: upper left quarter
	PAINT (315, 88), 14, 3
 SOUND 220, 6
	delay del!
	PAINT (315, 88), 0, 3
	 delay .1
	 IF st% = 1 THEN
	 simonSong$ = simonSong$ + "C"
	 END IF
	 IF st% = 0 THEN
	playerSong$ = playerSong$ + "C"
	 END IF

CASE 4                                  'red: lower left quarter
	 PAINT (315, 201), 4, 3
	 SOUND 330, 6
	 delay del!
	 PAINT (315, 201), 0, 3
	delay .1
	 IF st% = 1 THEN
	 simonSong$ = simonSong$ + "D"
	 END IF
	 IF st% = 0 THEN
	playerSong$ = playerSong$ + "D"
	 END IF

CASE 2                                  'green: upper right quarter
	 PAINT (332, 88), 2, 3
	 SOUND 380, 6
	 delay del!
	 PAINT (332, 88), 0, 3
	 delay .1
	 IF st% = 1 THEN
	 simonSong$ = simonSong$ + "E"
	 END IF
	 IF st% = 0 THEN
	playerSong$ = playerSong$ + "E"
	 END IF

CASE 9                                  'blue: lower right quarter
	 PAINT (332, 201), 9, 3
	SOUND 460, 6
	 delay del!
	 PAINT (332, 201), 0, 3
	 delay .1
	 IF st% = 1 THEN
	 simonSong$ = simonSong$ + "F"
	 END IF
	 IF st% = 0 THEN
	playerSong$ = playerSong$ + "F"
	 END IF

END SELECT
' LOCATE 23, 1: PRINT simonSong$; "    "; playerSong$
END SUB

'                   Get Key Function from FidoNet Quick Basic SUB
FUNCTION getKey$ (row%, col%, prompt$, default$, maxx, minn, blanker$, limit$)

DO
	LOCATE row%, col% + LEN(prompt$): PRINT STRING$(maxx, blanker$);
	LOCATE row%, col%, 1, 10, 11
	PRINT prompt$;
	default$ = LTRIM$(RTRIM$(default$))
	IF default$ = STRING$(LEN(default$), 0) THEN default$ = ""
	IF LEN(default$) <> 0 THEN
		LOCATE row%, col% + LEN(prompt$): PRINT default$;
		queue$ = default$
		LOCATE row%, col% + (LEN(prompt$) + LEN(default$))
	END IF
Start:
	DO
		tmp$ = INKEY$
	 
		IF tmp$ <> "" THEN
		IF tmp$ = CHR$(27) THEN CLS : SYSTEM
	IF tmp$ = CHR$(13) THEN
	tmp$ = ""
	PRINT
	EXIT DO
		 ELSEIF tmp$ = CHR$(8) THEN
		 
			 tmp$ = ""
			IF LEN(queue$) >= 1 THEN
		LOCATE , POS(0) - 1: PRINT blanker$; : LOCATE , POS(0) - 1
		queue$ = LEFT$(queue$, LEN(queue$) - 1)
			ELSE
		 
		SOUND 500, 1
		WHILE INKEY$ <> "": WEND
			END IF
	ELSEIF LEN(tmp$) > 1 THEN
			SOUND 500, 1
			WHILE INKEY$ <> "": WEND
			tmp$ = ""
	ELSEIF ASC(tmp$) < 32 OR ASC(tmp$) > 126 THEN
			SOUND 500, 1
		 
			WHILE INKEY$ <> "": WEND
			tmp$ = ""
	 ELSEIF LEN(queue$) < maxx THEN
		IF limit$ <> "" THEN
			IF NOT INSTR(limit$, tmp$) <> 0 THEN GOTO Start
		END IF
		queue$ = queue$ + tmp$
			 PRINT tmp$;
		 ELSE
		c% = INT(RND * 10) + 1
		k% = row%
		m% = col%
		 COLOR c%
		 LOCATE 23, 26
			PRINT "USE BACKSPACE TO CHANGE"
			SOUND 500, 1
			LOCATE k%, m% + LEN(prompt$) + 1
			WHILE INKEY$ <> "": WEND
			tmp$ = ""
		END IF
		END IF
	LOOP
 

	IF LEN(queue$) >= MinLen% THEN
		EXIT DO
	ELSE
		SOUND 500, 1
	END IF
LOOP
 
getKey$ = queue$

LOCATE , , 0
 
END FUNCTION

SUB getName                     'get player name
FOR r = 1 TO 20
PRINT
NEXT r
CLS
COLOR t%
PRINT "             ÖÄ¿ ÄÒÄ ÖÄÒÄ¿ ÖÄÄ¿ ÖÄÄ¿      ÖÄ¿ ÖÄÄ¿ Ò  Â  ÖÄ¿"
PRINT "             ÓÄ¿  º  º º ³ º  ³ º  ³      ÓÄ¿ ÇÄÄ´ ÓÄÄ´  ÓÄ¿"
PRINT "            ÓÄÄÙ ÄÐÄ Ð Ð Á ÓÄÄÙ Ð  Á     ÓÄÄÙ Ð  Á ÓÄÄÙ ÓÄÄÙ"
PRINT
PRINT "            ÚÄ¿   ÚÄ¿ ÚÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄ¿ ÚÄÄÄÄÄ¿    ÚÄÄÄ¿ ÚÄÄÄÄÄ¿"
PRINT "            ³ ³   ³ ³ ³ ³ ³ ³ ³ ÚÄÄ¿ ³ ÀÄ¿ ÚÄÙ    À¿ ÚÙ ³ ÚÄÄÄÙ"
PRINT "            ³ ³ÚÄ¿³ ³ ³ ÀÄÙ ³ ³ ÀÄÄÙ ³   ³ ³       ³ ³  ³ ÀÄÄÄ¿"
PRINT "            ³ ³³ ³³ ³ ³ ÚÄ¿ ³ ³ ÚÄÄ¿ ³   ³ ³       ³ ³  ÀÄÄÄ¿ ³"
PRINT "            ³ ÀÙ ÀÙ ³ ³ ³ ³ ³ ³ ³  ³ ³   ³ ³      ÚÙ À¿ ÚÄÄÄÙ ³"
PRINT "            ÀÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÙ ÀÄÙ  ÀÄÙ   ÀÄÙ      ÀÄÄÄÙ ÀÄÄÄÄÄÙ"
PRINT ""
PRINT ""
PRINT "   Ò     Â ÖÄÄÄÄÄ¿ Ò     Â ÒÄÄÄÄÄ¿       ÖÄÄ·  Â ÖÄÄÄÄÄ¿ ÖÄÄÒÄÄ¿ ÒÄÄÄÄÄ¿"
PRINT "   º     ³ º     ³ º     ³ º     ³       º  º  ³ º     ³ º  º  ³ º"
PRINT "   ÓÄÄÄÄÄ´ º     ³ º     ³ ÇÄÄÄÂÄÙ       º  º  ³ ÇÄÄÄÄÄ´ º  º  ³ ÇÄÄ"
PRINT "         ³ º     ³ º     ³ º   ³         º  º  ³ º     ³ º  º  ³ º"
PRINT "   ÓÄÄÄÄÄÙ ÓÄÄÄÄÄÙ ÓÄÄÄÄÄÙ Ð   ÁÄ        Ð  ÓÄÄÙ Ð     Á Ð  Ð  Á ÐÄÄÄÄÄÙ"
PRINT ""
PRINT ""
 
PAINT (140, 125), 14, t%
PAINT (220, 125), 4, t%
PAINT (290, 125), 2, t%
PAINT (340, 125), 3, t%
PAINT (410, 125), 6, t%
PAINT (480, 125), 9, t%


COLOR 15
LOCATE 23, 26
PRINT "USE BACKSPACE TO CHANGE";
 DO
name$ = getKey$(21, 32, "", "___PLAYER ", 12, 1, "_", "")

DO WHILE LEFT$(name$, 1) = "_"                  'clear precedeing _ chars
	name$ = RIGHT$(name$, (LEN(name$) - 1))
	LOOP
	IF name$ = " " THEN name$ = "wizard"           'add my egg
	IF name$ = "  " THEN name$ = "TooCoolFool": winner% = 1
LOOP UNTIL LEN(name$)
END SUB

SUB highScore           'check for high score

 hFile$ = "high.sco"
 OPEN hFile$ FOR APPEND AS #11                    'make file
 CLOSE
OPEN hFile$ FOR INPUT AS #11
DO WHILE NOT (EOF(11))
LINE INPUT #11, B$
	lops% = lops% + 1
 SELECT CASE lops%                              'read file into variables
 CASE 1
 ace$ = B$
 PRINT ace$
 CASE 2
	sec$ = B$
 CASE 3
 thr$ = B$
 CASE 4
	 forth$ = B$
 CASE 5
	fif$ = B$
 END SELECT
 
LOOP
CLOSE

high% = (LEN(simonSong$) - 1)                     'player score
 name$ = UCASE$(name$)

IF high% > VAL(RIGHT$(ace$, 3)) THEN

	fif$ = forth$
	forth$ = thr$                                   'top score
	thr$ = sec$
	sec$ = ace$
	ace$ = name$ + SPACE$(11) + STR$(high%)
	 winner% = 1
ELSEIF high% > VAL(RIGHT$(sec$, 3)) THEN
	fif$ = forth$
	forth$ = thr$                                      'second
	thr$ = sec$
	sec$ = name$ + SPACE$(11) + STR$(high%)
	winner% = 1
ELSEIF high% > VAL(RIGHT$(thr$, 3)) THEN
	winner% = 1
	fif$ = forth$
	forth$ = thr$                                      'third
	thr$ = name$ + SPACE$(11) + STR$(high%)
ELSEIF high% > VAL(RIGHT$(forth$, 3)) THEN
	winner% = 1
	fif$ = forth$
	forth$ = name$ + SPACE$(11) + STR$(high%)          'forth
ELSEIF high% > VAL(RIGHT$(fif$, 3)) THEN
	winner% = 1
 fif$ = name$ + SPACE$(11) + STR$(high%)             'fifth
END IF

IF winner% = 1 THEN                          'if winner rewrite file
	 OPEN hFile$ FOR OUTPUT AS #11
		PRINT #11, ace$
		PRINT #11, sec$
		PRINT #11, thr$
		PRINT #11, forth$
		PRINT #11, fif$
	 CLOSE
 DO
	lp% = lp% + 1
 
	simon
 
LOCATE 10, 50
PRINT "Ò  Â ÄÒÄ ÖÄÄ¿ Ò  Â  "
LOCATE 11, 50
PRINT "ÇÄÄ´  º  º Ä¿ ÇÄÄ´  "
LOCATE 12, 50
PRINT "Ð  Á ÄÐÄ ÓÄÄÙ Ð  Á "
LOCATE 13, 44
PRINT " ÖÄ¿ ÖÄÄ¿ ÖÄÄ¿ ÒÄÄ¿ ÒÄÄ¿  ÖÄ¿"
LOCATE 14, 44
PRINT " ÓÄ¿ º    º  ³ ÇÄÂÙ ÇÄ    ÓÄ¿"
LOCATE 15, 44
PRINT "ÓÄÄÙ ÓÄÄÙ ÓÄÄÙ Ð Á  ÐÄÄÙ ÓÄÄÙ"
LOCATE 16, 44
 
IF lp% = 1 THEN                                 'logo
	 LINE (99, 307)-(201, 331), 4, B
	 LINE (100, 308)-(200, 330), 8, BF
	 eye 150, 320
END IF

IF lp% <= 1 THEN
PLAY "O3 T130 L8 E L16 DC. L10 D E D+ E C D D D L2 D"
PLAY "L10 L8 D L16 C <B.> L10 C D C+ D <B> CCC L2 C"
PLAY "L8 <G L20 G+ L7 A L20 G+ L7 G L20 G+ L7 A L20 G# L10 G >D D L2 D<"
PLAY "L10 A G+ A L5 >D E L2 G"
											 'play song 6 times
END IF

IF lp% >= 28 THEN                               'change color to BrWh
	h% = 15
END IF

IF lp% >= 12 THEN                                'show winner box
COLOR h%
LOCATE 18, 11
PRINT "³               ³"
 COLOR t%
LOCATE 18, 20 - (LEN(name$) / 2)
PRINT name$
COLOR h%
LOCATE 17, 11
PRINT "ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¸"

LOCATE 19, 11
PRINT "³  IS A WINNER  ³"
LOCATE 20, 11
PRINT "ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¾"
END IF
COLOR t%

 IF INSTR(ace$, name$) THEN
	COLOR 15
 ELSE
	COLOR t%
 END IF

LOCATE 17, 50                                  'show highscore list
PRINT LEFT$(ace$, 12)
LOCATE 17, 64
PRINT LTRIM$(RIGHT$(ace$, 3))

 IF INSTR(sec$, name$) THEN                    'show winners name in  BrWh
	COLOR 15
 ELSE
	COLOR t%
 END IF

LOCATE 18, 50
PRINT LEFT$(sec$, 12)
LOCATE 18, 64
PRINT LTRIM$(RIGHT$(sec$, 3))

 IF INSTR(thr$, name$) THEN                     'show winners name in  BrWh
	COLOR 15
 ELSE
	COLOR t%
 END IF

LOCATE 19, 50
PRINT LEFT$(thr$, 12)
LOCATE 19, 64
PRINT LTRIM$(RIGHT$(thr$, 3))

 IF INSTR(thr$, name$) THEN                     'show winners name in  BrWh
	COLOR 15
 ELSE
	COLOR t%
 END IF

 IF INSTR(forth$, name$) THEN                    'show winners name in  BrWh
	COLOR 15
 ELSE
	COLOR t%
 END IF

LOCATE 20, 50
PRINT LEFT$(forth$, 12)
LOCATE 20, 64
PRINT LTRIM$(RIGHT$(forth$, 3))

 IF INSTR(fif$, name$) THEN                     'show winners name in  BrWh
	COLOR 15
 ELSE
	COLOR t%
 END IF

LOCATE 21, 50
PRINT LEFT$(fif$, 12)
LOCATE 21, 64
PRINT LTRIM$(RIGHT$(fif$, 3))






LOCATE 25, 11
PRINT "Wizard Productions";
 r$ = INKEY$
 IF r$ = CHR$(27) THEN CLS : SYSTEM

LOOP UNTIL LEN(r$)
 

END IF
CLS



END SUB

SUB lilSimon
PRINT "                 ÖÄ¿ ÄÒÄ ÖÄÒÄ¿ ÖÄÄ¿ ÖÄÄ¿      ÖÄ¿ ÖÄÄ¿ Ò  Â  ÖÄ¿"
PRINT "                 ÓÄ¿  º  º º ³ º  ³ º  ³      ÓÄ¿ ÇÄÄ´ ÓÄÄ´  ÓÄ¿"
PRINT "                ÓÄÄÙ ÄÐÄ Ð Ð Á ÓÄÄÙ Ð  Á     ÓÄÄÙ Ð  Á ÓÄÄÙ ÓÄÄÙ"

END SUB

SUB simon
 
t% = (RND * 14) + 1
COLOR t%
LOCATE 1, 1
PRINT "   ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄÄ¿   ÚÄÄÄÄ¿"
PRINT "   ³  ÚÄÄÄÄ¿ ³ ÀÄ¿  ÚÄÙ  ³  ÚÄ¿  ÚÄ¿  ³  ³  ÚÄÄÄ¿  ³  ³    À¿  À¿  ÚÙ"
PRINT "   ³  ³    ÀÄÙ   ³  ³    ³  ³ ³  ³ ³  ³  ³  ³   ³  ³  ³  Ã¿ À¿  ³  ³"
PRINT "   ³  ÀÄÄÄÄÄÄ¿   ³  ³    ³  ³ ³  ³ ³  ³  ³  ³   ³  ³  ³  ³À¿ À¿ ³  ³"
PRINT "   ÀÄÄÄÄÄÄ¿  ³   ³  ³    ³  ³ ³  ³ ³  ³  ³  ³   ³  ³  ³  ³ À¿ À¿³  ³"
PRINT "   ÚÄ¿    ³  ³   ³  ³    ³  ³ ÀÄÄÙ ³  ³  ³  ³   ³  ³  ³  ³  À¿ À´  ³"
PRINT "   ³ ÀÄÄÄÄÙ  ³ ÚÄÙ  ÀÄ¿ ÚÙ  À¿    ÚÙ  À¿ ³  ÀÄÄÄÙ  ³ ÚÙ  À¿  À¿    ³"
PRINT "   ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÙ ÀÄÄÄÄÙ    ÀÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÙ   ÀÄÄÄÄÙ"
PRINT "     ÖÄÄÄÄÄ¿ ÖÄÄÄÄÄ¿ Ò     Â ÖÄÄÄÄÄ¿"
PRINT "     º       º     ³ º     ³ º"
PRINT "     ÓÄÄÄÄÄ¿ ÇÄÄÄÄÄ´ ÓÄÄÄÄÄ´ ÓÄÄÄÄÄ¿"
PRINT "           ³ º     ³       ³       ³"
PRINT "     ÓÄÄÄÄÄÙ Ð     Á ÓÄÄÄÄÄÙ ÓÄÄÄÄÄÙ"
a% = INT(RND * 15) + 1
 FOR k% = 1 TO 10
NEXT k%
 END SUB
