'SCREEN 7 'I remarked out screen 7 because it is kind of small,With qb64 it come up bigger 'with no screen selection.'BGround' BGround gets invalid syntex in qb64tmp$ = " CHR$(###),\\,\ \ "tmp2$ = " CHR$(0) + CHR$(###) \ \"DO COLOR 14: LOCATE 3, 3: PRINT "The code can tell what key is pressed" COLOR 12: LOCATE 5, 3: PRINT " "; CHR$(3); " "; COLOR 13: PRINT CHR$(5); " "; COLOR 12: PRINT CHR$(4); COLOR 13: PRINT " "; CHR$(6) COLOR 10 LOCATE 11, 1: PRINT SPACE$(20) LOCATE 7, 4: PRINT " Hit a key to find the ASCII Code" key$ = SPACE$(9) i% = 6 a$ = "" 'Delay .5 DO: a$ = INKEY$: LOOP UNTIL a$ <> "" IF ASC(a$) > 0 THEN code% = ASC(a$) 'normal codes SELECT CASE code% CASE 7: key$ = "Beep" CASE 8: key$ = "Backspace" CASE 9: key$ = "Tab Key" CASE 10: key$ = "Line Feed" CASE 12: key$ = "Form Feed" CASE 13: key$ = "Enter" CASE 27: key$ = "Escape" CASE 32: key$ = "Space Bar" CASE 48 TO 57: key$ = "Number" CASE 65 TO 90: key$ = "Uppercase" CASE 97 TO 122: key$ = "Lowercase" CASE ELSE: key$ = "" END SELECT SELECT CASE code% 'unprintable control characters CASE 9 TO 13: Kcode% = 32 CASE 28 TO 31: Kcode% = 32 CASE ELSE: Kcode% = code% END SELECT LOCATE 9, 20: PRINT SPACE$(2) COLOR 9: LOCATE 10, 7: PRINT USING tmp$; code%; CHR$(Kcode%); key$; SELECT CASE code% 'CASE 7: SetCHR 5, 20, 12, code% 'CASE 9 TO 13: SetCHR 5, 21, 12, code% 'CASE 28 TO 31: SetCHR 5, 21, 12, code% END SELECT END IF IF ASC(a$) = 0 THEN ' 2 byte codes code% = ASC(RIGHT$(a$, 1)) SELECT CASE code% CASE 16 TO 50: key$ = "Alt+ letter" CASE 72: key$ = CHR$(24) + " Arrow" CASE 77: key$ = CHR$(26) + " Arrow" CASE 80: key$ = CHR$(25) + " Arrow" CASE 75: key$ = CHR$(27) + " Arrow" CASE 83: key$ = "Delete" CASE 59: key$ = "F1" CASE 60: key$ = "F2" CASE 61: key$ = "F3" CASE 62: key$ = "F4" CASE 63: key$ = "F5" CASE 64: key$ = "F6" CASE 65: key$ = "F7" CASE 66: key$ = "F8" CASE 67: key$ = "F9" CASE 68: key$ = "F10" CASE 71: key$ = "Home" CASE 79: key$ = "End" CASE 73: key$ = "Page " + CHR$(24) CASE 81: key$ = "Page " + CHR$(25) CASE 82: key$ = "Insert" CASE 83: key$ = "Delete" CASE 84 TO 93: key$ = "Shift+ F" CASE 94 TO 103: key$ = "Ctrl+ F" CASE 104 TO 113: key$ = "Alt+ F" CASE 114 TO 119: key$ = "Ctrl + pad" CASE 120 TO 129: key$ = "Alt+ number" CASE 132: key$ = "Ctrl + pad" CASE 133: key$ = "F11" CASE 134: key$ = "F12" CASE 135: key$ = "Shift+ F11" CASE 136: key$ = "Shift+ F12" CASE 137: key$ = "Ctrl+ F11" CASE 138: key$ = "Ctrl+ F12" CASE 139: key$ = "Alt+ F11" CASE 140: key$ = "Alt+ F12" CASE ELSE: key$ = "" END SELECT LOCATE 10, 7: PRINT USING tmp2$; code%; key$ END IF COLOR 5 LOCATE 13, 1: PRINT " Codes below 33 are called control keys" LOCATE 15, 1: PRINT " CHR$(0) + are 2 byte Extended key codes" COLOR 13: LOCATE 17, 1: PRINT " Try some Ctrl, Alt, or Shift Combo's" COLOR 5: LOCATE 19, 1: PRINT " INKEY$ is used to detect the key entry" COLOR 2: LOCATE 21, 1: PRINT " "; CHR$(1); " "; CHR$(2) COLOR 4: LOCATE 23, 10: PRINT "To Quit hit the TAB key"LOOP UNTIL a$ = CHR$(9)SOUND 400, 4
'Code by "Clippy" Ted Weisenburger,From Qbasics.zip,chapt 12 modified some what by garrySCREEN 12DEFINT A-ZDECLARE SUB Align (Tclr, Trow, txt$)DECLARE FUNCTION ScanKey% (scancode%)DECLARE SUB GameExample ()DECLARE SUB SetBell ()DIM SHARED Matrix(1 TO 30, 1 TO 80) AS INTEGERDIM SHARED Qt AS STRING * 1Try% = 0Qt = CHR$(34) 'quotation characterPrt$ = "PRINT " + Qt$ 'print command for displayInp$ = "INPUT " + Qt$ 'input commandCOLOR 10LOCATE 5, 4: PRINT "To create a maze for the character to move in, we can use the IBM extended"LOCATE 6, 4: PRINT "characters that are used to create borders. First we need to make a DATA"LOCATE 7, 4: PRINT "field consisting of just 1's and 0's. The field is 30 by 80 for SCREEN 12."LOCATE 8, 4: PRINT "The data is READ and the characters for each value are printed to the"LOCATE 9, 4: PRINT "screen. The DATA is also saved into an array so that the character can "LOCATE 10, 4: PRINT "only move where there is a value of 0 in the array. "COLOR 15: LOCATE 12, 4: PRINT " DIM Map(1 TO 30, 1 TO 80) AS INTEGER 'array to determine moves"LOCATE 13, 4: PRINT " FOR r% = 1 TO 30 'rows of DATA"LOCATE 14, 4: PRINT " FOR c% = 1 TO 80 'columns of DATA"LOCATE 15, 4: PRINT " READ maze% 'get data"LOCATE 16, 4: PRINT " Map(r%, c%) = maze% 'put DATA into Map array"LOCATE 17, 4: PRINT " IF maze% = 1 THEN 'print the walls(1) and cherries(0)"LOCATE 18, 4: PRINT " COLOR 9: LOCATE r%, c%: PRINT CHR$(177); 'walls ";: COLOR 9: PRINT CHR$(177)COLOR 15: LOCATE 19, 4: PRINT " ELSE : COLOR 12: LOCATE r%, c%: PRINT CHR$(249); 'cherries ";: COLOR 12: PRINT CHR$(249)COLOR 15: LOCATE 20, 4: PRINT " END IF"LOCATE 21, 4: PRINT " NEXT: NEXT 'actual data field is 30 DATA statements, 80 data values each"LOCATE 22, 4: PRINT "DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"LOCATE 23, 4: PRINT "DATA 1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1"COLOR 10: LOCATE 25, 4: PRINT "The 0's are changed to 1 when the character moves so that it cannot move"LOCATE 26, 4: PRINT "to that place again in the rest of the code. The arrow key routine is the"LOCATE 27, 4: PRINT "same as the previous page. There also is a Score to count the dots eaten."LOCATE 28, 4: PRINT "Try to see how many cherries you can eat before you run out of moves!"COLOR 13: LOCATE 29, 4: PRINT " Hit any key to play the game!";'---------------------------SLEEPCLSRESTORE GameDataFOR r% = 1 TO 30 FOR c% = 1 TO 80 READ maze% Matrix(r%, c%) = maze% IF maze% = 1 THEN COLOR 9: LOCATE r%, c%: PRINT CHR$(177); ELSE: COLOR 12: LOCATE r%, c%: PRINT CHR$(249); END IFNEXT: NEXTr% = 2: c% = 2: Score% = 0COLOR 11: LOCATE 1, 2: PRINT "START";COLOR 13: LOCATE 29, 30: PRINT "Hit Escape key to Quit!";DECLARE SUB GameExample ()COLOR 14: LOCATE r%, c%: PRINT CHR$(1);DO COLOR 11: LOCATE 1, 65: PRINT "Score:"; Score%; DO: arrow$ = INKEY$: LOOP UNTIL arrow$ <> "" SELECT CASE arrow$ CASE CHR$(0) + CHR$(72): IF Matrix(r% - 1, c%) = 0 THEN r% = r% - 1: blank% = 1 'up arrow CASE CHR$(0) + CHR$(75): IF Matrix(r%, c% - 1) = 0 THEN c% = c% - 1: blank% = 2 'left CASE CHR$(0) + CHR$(77): IF Matrix(r%, c% + 1) = 0 THEN c% = c% + 1: blank% = 3 'right CASE CHR$(0) + CHR$(80): IF Matrix(r% + 1, c%) = 0 THEN r% = r% + 1: blank% = 4 'down END SELECT IF blank% > 0 THEN SELECT CASE blank% CASE 1: LOCATE r% + 1, c%: PRINT SPACE$(1); CASE 2: LOCATE r%, c% + 1: PRINT SPACE$(1); CASE 3: LOCATE r%, c% - 1: PRINT SPACE$(1); CASE 4: LOCATE r% - 1, c%: PRINT SPACE$(1); END SELECT COLOR 14: LOCATE r%, c%: PRINT CHR$(1); IF Matrix(r%, c%) = 0 THEN Matrix(r%, c%) = 1: Score% = Score% + 1 IF Matrix(r% + 1, c%) = 1 AND Matrix(r% - 1, c%) = 1 AND Matrix(r%, c% + 1) = 1 AND Matrix(r%, c% - 1) = 1 THEN EXIT DO blank% = 0 END IFLOOP UNTIL arrow$ = CHR$(27)COLOR 12: LOCATE 14, 35: PRINT "Game Over!"SOUND 800, 4: SOUND 700, 6: SOUND 600, 8DIM Map(1 TO 30, 1 TO 80) AS INTEGER 'array to determine movesFOR r% = 1 TO 30 'rows of DATA FOR c% = 1 TO 80 'columns of DATA Map(r%, c%) = maze% 'put DATA into Map array IF maze% = 1 THEN 'print the walls(1) and cherries(0) COLOR 9: LOCATE r%, c%: PRINT CHR$(177);: COLOR 9: PRINT CHR$(177);: COLOR 9: PRINT CHR$(177) ELSE: COLOR 12: LOCATE r%, c%: PRINT CHR$(249);: COLOR 12: PRINT CHR$(249) END IF NEXTNEXTGameData:DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1DATA 1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1DATA 1,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1DATA 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,0,0,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1DATA 1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1DATA 1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,1DATA 1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1SUB Align (Tclr, Trow, txt$)Tcol = 41 - (LEN(txt$) \ 2)COLOR Tclr: LOCATE Trow, Tcol: PRINT txt$;END SUB'-----------------------
'Code by "Clippy" Ted Weisenburger,From Qbasics.zip,chapt 12 modified some what by garrySCREEN 12DEFINT A-ZDECLARE SUB Align (Tclr, Trow, txt$)DECLARE FUNCTION ScanKey% (scancode%)DECLARE SUB GameExample ()DECLARE SUB SetBell ()DIM SHARED Matrix(1 TO 30, 1 TO 80) AS INTEGERDIM SHARED Qt AS STRING * 1Try% = 0Qt = CHR$(34) 'quotation characterPrt$ = "PRINT " + Qt$ 'print command for displayInp$ = "INPUT " + Qt$ 'input commandCOLOR 10LOCATE 5, 4: PRINT "To create a maze for the character to move in, we can use the IBM extended"LOCATE 6, 4: PRINT "characters that are used to create borders. First we need to make a DATA"LOCATE 7, 4: PRINT "field consisting of just 1's and 0's. The field is 30 by 80 for SCREEN 12."LOCATE 8, 4: PRINT "The data is READ and the characters for each value are printed to the"LOCATE 9, 4: PRINT "screen. The DATA is also saved into an array so that the character can "LOCATE 10, 4: PRINT "only move where there is a value of 0 in the array. "COLOR 15: LOCATE 12, 4: PRINT " DIM Map(1 TO 30, 1 TO 80) AS INTEGER 'array to determine moves"LOCATE 13, 4: PRINT " FOR r% = 1 TO 30 'rows of DATA"LOCATE 14, 4: PRINT " FOR c% = 1 TO 80 'columns of DATA"LOCATE 15, 4: PRINT " READ maze% 'get data"LOCATE 16, 4: PRINT " Map(r%, c%) = maze% 'put DATA into Map array"LOCATE 17, 4: PRINT " IF maze% = 1 THEN 'print the walls(1) and cherries(0)"LOCATE 18, 4: PRINT " COLOR 9: LOCATE r%, c%: PRINT CHR$(177); 'walls ";: COLOR 9: PRINT CHR$(177)COLOR 15: LOCATE 19, 4: PRINT " ELSE : COLOR 12: LOCATE r%, c%: PRINT CHR$(249); 'cherries ";: COLOR 12: PRINT CHR$(249)COLOR 15: LOCATE 20, 4: PRINT " END IF"LOCATE 21, 4: PRINT " NEXT: NEXT 'actual data field is 30 DATA statements, 80 data values each"LOCATE 22, 4: PRINT "DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"LOCATE 23, 4: PRINT "DATA 1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1"COLOR 10: LOCATE 25, 4: PRINT "The 0's are changed to 1 when the character moves so that it cannot move"LOCATE 26, 4: PRINT "to that place again in the rest of the code. The arrow key routine is the"LOCATE 27, 4: PRINT "same as the previous page. There also is a Score to count the dots eaten."LOCATE 28, 4: PRINT "Try to see how many cherries you can eat before you run out of moves!"COLOR 13: LOCATE 29, 4: PRINT " Hit any key to play the game!";'---------------------------SLEEPCLSRESTORE GameDataFOR r% = 1 TO 30 FOR c% = 1 TO 80 READ maze% Matrix(r%, c%) = maze% IF maze% = 1 THEN COLOR 9: LOCATE r%, c%: PRINT CHR$(177); ELSE: COLOR 12: LOCATE r%, c%: PRINT CHR$(249); END IFNEXT: NEXTr% = 2: c% = 2: Score% = 0COLOR 11: LOCATE 1, 2: PRINT "START";COLOR 13: LOCATE 29, 30: PRINT "Hit Escape key to Quit!";COLOR 14: LOCATE r%, c%: PRINT CHR$(1);DO COLOR 11: LOCATE 1, 65: PRINT "Score:"; Score%; DO: arrow$ = INKEY$: LOOP UNTIL arrow$ <> "" SELECT CASE arrow$ CASE CHR$(0) + CHR$(72): IF Matrix(r% - 1, c%) = 0 THEN r% = r% - 1: blank% = 1 'up arrow CASE CHR$(0) + CHR$(75): IF Matrix(r%, c% - 1) = 0 THEN c% = c% - 1: blank% = 2 'left CASE CHR$(0) + CHR$(77): IF Matrix(r%, c% + 1) = 0 THEN c% = c% + 1: blank% = 3 'right CASE CHR$(0) + CHR$(80): IF Matrix(r% + 1, c%) = 0 THEN r% = r% + 1: blank% = 4 'down END SELECT IF blank% > 0 THEN SELECT CASE blank% CASE 1: LOCATE r% + 1, c%: PRINT SPACE$(1); CASE 2: LOCATE r%, c% + 1: PRINT SPACE$(1); CASE 3: LOCATE r%, c% - 1: PRINT SPACE$(1); CASE 4: LOCATE r% - 1, c%: PRINT SPACE$(1); END SELECT COLOR 14: LOCATE r%, c%: PRINT CHR$(1); IF Matrix(r%, c%) = 0 THEN Matrix(r%, c%) = 1: Score% = Score% + 1 IF Matrix(r% + 1, c%) = 1 AND Matrix(r% - 1, c%) = 1 AND Matrix(r%, c% + 1) = 1 AND Matrix(r%, c% - 1) = 1 THEN EXIT DO blank% = 0 END IFLOOP UNTIL arrow$ = CHR$(27)COLOR 12: LOCATE 14, 35: PRINT "Game Over!"SOUND 800, 4: SOUND 700, 6: SOUND 600, 8GameData:DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1DATA 1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1DATA 1,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1DATA 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,0,0,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1DATA 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1DATA 1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1DATA 1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1DATA 1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,1DATA 1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1SUB Align (Tclr, Trow, txt$)Tcol = 41 - (LEN(txt$) \ 2)COLOR Tclr: LOCATE Trow, Tcol: PRINT txt$;END SUB