1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-03 15:51:20 +00:00
QB64-PE/tests/qbasic_testcases/misc/frog.bas
Matthew Kilgore 9ee89d6ff4 Add QBasic tests
These tests use a variety of sample code (with some of the larger files
removed, so they are not complete!) and verifies that they all compile
successfully.
2022-04-28 23:00:07 -04:00

709 lines
33 KiB
QBasic

'RETRO.BAS by Matt Bross, 1997
'HOMEPAGE - http://www.GeoCities.Com/SoHo/7067/
'EMAIL - oh_bother@GeoCities.Com
DEFINT A-Z
DECLARE SUB BYE ()
DECLARE SUB ShowHiScore ()
DECLARE SUB DELAY (SEC!)
DECLARE SUB FrogINTRO ()
DECLARE SUB OptScn (SPECIAL)
DECLARE SUB Frogger (TLIVES%, ODIF%, OT%, OD!)
DECLARE SUB NewHiScore (SCORE%)
TYPE ScoreType
SCORE AS LONG
PERSON AS STRING * 3
END TYPE
DIM SHARED HISCORE(9) AS ScoreType
SCREEN 7: CLS
RANDOMIZE TIMER + VAL(DATE$) + RND
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%INTRO AND GAME%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FrogINTRO
ShowHiScore
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%BEGIN DATA%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FroggerGraphics:
'frog
DATA 9,9,0,-32612,0,-32612,20,-32578,0,-32598,0,-32513,0,-32513,-32567,-32513
DATA 0,54,8,62,0,54,0,127,0,127,28,127,0,99,34,-32541,0,-32575,-32575,-32575
DATA 0,0
'car1
DATA 9,9,-32513,-32513,-32513,0,-32575,-32575,-32513,0,-32575,-32575,-32541,0
DATA 0,0,-32541,0,0,128,-32513,128,0,0,-32513,0,0,0,-32578,0,0,0,28,65,-32578
DATA -32578,-32578,0
'car2
DATA 9,9,-32513,-32513,-32513,0,-32513,-32575,-32575,0,-32541,-32575,-32575,0
DATA -32541,0,0,0,255,-32768,-32768,-32768,-32513,0,0,0,-32578,0,0,0,28,0,0
DATA 65,-32578,-32578,-32578,0
'log1
DATA 9,9,-32640,-32513,127,-32640,0,-32513,-32513,64,0,-32513,-32513,64,0
DATA -32513,-32513,64,0,-32513,-32513,64,0,-32513,-32513,64,0,-32513,-32513
DATA 64,0,-32513,-32513,64,-32640,-32513,127,-32640
'lily
DATA 9,9,-32547,-32513,0,-32513,-32632,127,0,127,0,-32513,0,-32513,8,-32513,0
DATA -32521,-32632,-32513,0,119,-32567,-32513,0,-32586,-32575,255,0,255
DATA -32541,127,0,93,-32513,-32513,0,-32541
'water
DATA 9,9,-32513,-32513,0,-32513,-32513,219,0,219,-32513,146,0,146,-32513,73,0
DATA 73,-32513,-32513,0,-32513,-32513,219,0,219,-32513,146,0,146,-32513,73,0
DATA 73,-32513,-32513,0,-32513
'road
DATA 9,9,-32513,-32513,-32513,0,-32513,-32513,-32513,0,-32513,-32513,-32513,0
DATA -32513,-32513,-32513,0,-32513,-32513,-32513,127,-32513,-32513,-32513,0
DATA -32513,-32513,-32513,0,-32513,-32513,-32513,0,-32513,-32513,-32513,0
'exit1
DATA 9,9,-32513,0,0,-32513,-32513,127,127,-32640,-32576,64,64,-32577,-32576
DATA 64,64,-32577,-32576,64,64,-32577,-32576,64,64,-32577,-32576,64,64,-32577
DATA -32576,64,64,-32577,-32576,64,64,-32577
FroggerIntroPalette:
DATA 1,0,7,2,8,7,4,5,7,7,10,10,10,8,7,15
FroggerIntroGraphics:
'title1
DATA 57,87,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3976,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,-3841,0,0,0,-24576,0,0,0,0,0,0,0,0,0,0,0,-1793,0,0,0,-16369
DATA 0,0,0,0,0,0,0,0,0,0,768,-1793,0,0,0,-3969,0,0,0,0,0,0,0,0,0,0,7936
DATA -1793,0,0,256,28927,0,0,0,0,0,0,0,0,0,0,16128,-1793,0,0,3840,28784
DATA 0,0,0,0,0,0,0,8192,0,0,32512,-3841,0,0,1536,-8159,0,0,0,0,0,0,0,-8192
DATA 0,0,-256,-3841,0,0,2048,-8189,0,0,0,0,0,0,0,-8190,0,0,-253,-7937,0
DATA 0,20224,-16361,0,0,0,0,0,0,0,-16363,0,0,-249,-16129,0,0,-26623,-32513
DATA 0,0,0,0,0,0,0,-32705,0,0,-241,-16129,0,0,-20477,127,0,0,0,0,0,0,0
DATA 63,0,0,-481,15615,0,0,8199,-16322,0,0,0,0,0,0,0,30,0,0,-225,1023,128
DATA 0,16399,-994,0,0,0,0,0,0,0,30,0,0,-225,1790,96,0,16399,-2019,0,0,0
DATA 0,0,0,0,28,0,0,-193,1276,32,0,16399,-1765,192,0,0,0,0,0,0,24,0,0,-129
DATA 1272,32,0,24604,-1225,0,0,0,0,0,0,0,48,0,0,-129,1272,16,0,12344,-1673
DATA 192,0,0,0,0,0,0,112,0,0,-1,-31503,16,0,2096,31470,96,0,0,0,0,0,0,224
DATA 0,256,-1,29935,16,0,26466,2496,160,0,0,0,0,0,768,192,0,768,-1,7904
DATA 8,0,-10265,0,192,0,0,0,0,0,1536,0,0,1792,-1,608,8,256,-8977,128,112
DATA 0,0,0,0,0,1024,0,0,3840,-257,832,8,768,-15889,128,144,0,0,0,0,0,0
DATA 0,0,7936,-769,64,232,1792,-27665,128,0,0,0,0,0,0,0,0,0,16128,-257
DATA 64,56,3840,4591,128,0,0,0,0,0,0,0,0,0,16128,-1537,64,16,7936,32495
DATA 128,0,0,0,0,0,0,0,0,0,32512,-1537,64,16,7936,32494,128,0,0,0,0,0,0
DATA 0,0,0,-256,-1537,192,16,16128,-308,0,0,0,0,0,0,0,0,0,0,-255,-769,192
DATA 16,32256,32732,0,0,0,0,0,0,0,0,0,0,-255,-1281,128,16,31744,-232,0
DATA 0,0,0,0,0,0,0,0,0,-255,-1793,128,16,32256,-200,0,0,0,0,0,0,0,0,0,0
DATA -255,-513,192,32,-512,-208,0,0,0,0,0,0,0,0,0,0,-255,-3329,192,32,-512
DATA -208,0,0,0,0,0,0,0,0,0,0,-205,-8449,64,32,-512,-14,128,0,0,0,0,0,0
DATA 0,0,0,-197,-769,96,64,-8704,-14,160,0,0,0,32,0,0,0,0,0,-217,-3841
DATA 48,64,-9191,-14,208,0,0,0,16,0,0,0,0,0,-221,-11777,40,128,-8931,-10
DATA 248,0,0,256,40,0,0,0,0,0,-221,-513,52,128,-9955,-10,220,0,0,256,20
DATA 0,0,0,0,0,-205,-16385,-73,0,-9443,-9,236,0,0,768,164,0,0,0,0,0,-185
DATA -4865,19548,0,-27847,-17,-3857,0,0,0,76,0,0,0,0,0,-185,-3329,-391
DATA 0,-18631,-49,-1801,0,0,512,112,0,0,0,0,0,-153,255,-16404,128,-18631
DATA -33,-1805,0,0,0,224,0,0,0,0,0,-185,16639,32566,240,-18629,-97,-2079
DATA 0,0,0,32,0,0,0,0,0,-185,8446,-221,254,14139,-65,15808,224,0,0,0,0
DATA 0,0,0,0,-185,254,-224,235,28475,-65,2016,92,0,0,32,0,0,0,0,0,-153
DATA 254,3904,-32519,20283,-65,128,254,0,0,0,0,0,0,0,0,-185,24820,128,-32514
DATA 32571,-1,0,1,0,0,0,0,0,0,0,0,-185,205,128,-32765,-197,-1,0,0,0,0,0
DATA 0,0,0,0,0,-185,192,128,0,-197,-1,0,0,0,0,0,0,0,0,0,0,-121,6608,0,0
DATA -133,-257,0,0,0,6144,0,0,0,0,0,0,-121,5504,0,0,-133,-257,0,0,0,5120
DATA 0,0,0,0,0,0,-121,-4672,0,0,-133,-257,0,0,0,-5120,0,0,0,0,0,0,-313
DATA -17024,0,0,-133,-257,0,0,0,-17408,0,0,0,0,0,0,-1401,-9340,0,0,-133
DATA -769,0,0,0,-10236,0,0,0,0,0,0,-1401,-17729,0,0,-133,-769,0,0,0,-18241
DATA 0,0,0,0,0,0,-377,-2823,0,0,-135,-1793,0,0,0,-3847,0,0,0,0,0,0,-9329
DATA -19233,0,0,-143,-1793,0,0,768,-20257,0,0,0,0,0,0,-3509,-1793,0,0,-207
DATA -3841,0,0,512,-3841,0,0,0,0,0,0,-31919,-28469,0,0,-224,-7937,0,0,768
DATA -32565,0,0,0,0,0,0,-30383,-7970,0,0,32544,255,0,0,2304,222,0,0,0,0
DATA 0,0,865,87,0,0,-256,252,0,0,768,84,0,0,0,0,0,0,-6656,188,0,0,7936
DATA 248,0,0,1536,184,0,0,0,0,0,0,8960,248,0,0,7936,240,0,0,768,240,0,0
DATA 0,0,0,0,13056,248,0,0,3840,240,0,0,768,240,0,0,0,0,0,0,4352,248,0
DATA 0,3840,240,0,0,256,240,0,0,0,0,0,0,7168,248,0,0,3840,240,0,0,3072
DATA 240,0,0,0,0,0,0,7680,124,0,0,3840,248,0,0,3584,120,0,0,0,0,0,0,7936
DATA 28,0,0,3840,248,0,0,3840,24,0,0,0,0,0,0,32512,140,0,0,1792,248,0,0
DATA 0,8,0,0,0,0,0,0,-253,228,0,0,16128,248,0,0,0,0,0,0,0,0,0,0,-241,244
DATA 0,0,-255,248,0,0,0,0,0,0,0,0,0,0,-225,252,0,0,-241,240,0,0,0,0,0,0
DATA 0,0,0,0,-193,248,0,0,-993,0,0,0,0,0,0,0,0,0,0,0,-385,0,0,0,56,0,0
DATA 0,0,0,0,0,0,0,0,0,-8000,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,30832,0,0,0
DATA -32753,0,0,0,0,0,0,0,0,0,0,0,-14577,-8057,0,0,14336,0,0,0,0,0,0,0
DATA 0,0,0,0,16128,-3969,0,0,0,-8057,0,0,0,-8185,0,0,0,0,0,0,0,-7937,0
DATA 0,0,8,0,0,0,8,0,0,0,0,0,0,0,-1921,0,0,0,-16345,0,0,0,-16345,0,0,0
DATA 0,0,0,0,-385,0,0,0,14352,0,0,0,14352,0,0,0,0,0,0,0,31800,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
'title2
DATA 54,81,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,-7951,0,0,0,0,0,0,0,0,0,0,0,0,0,-7951,0,0,2048,0,0,0,8192,0,0,0
DATA 0,0,256,-24322,0,0,0,0,0,0,16385,0,0,0,0,0,256,-7937,0,0,2816,64,0
DATA 0,8192,0,0,0,0,0,256,-3842,0,0,0,64,0,0,1,0,0,0,0,0,256,-7945,0,0
DATA 2,32,0,0,24,0,0,0,0,0,16128,-3841,0,0,-19455,80,0,0,0,0,0,0,0,0,16128
DATA -3841,0,0,-7671,32,0,0,16384,0,0,0,32,0,32512,-24322,0,0,16514,240
DATA 0,0,1,0,0,0,0,0,-256,24829,0,0,-32766,176,0,0,16386,0,0,0,0,0,-249
DATA -24321,0,2304,-24824,0,0,1280,16384,0,0,5376,0,0,-243,16607,0,0,-8440
DATA 0,0,4098,-20448,0,0,2560,0,0,-225,-7937,0,512,-256,16,0,4100,2048
DATA 0,0,7424,0,0,-489,2047,192,1024,-16640,48,0,8456,-16384,0,0,7680,0
DATA 0,-193,1258,64,1792,4352,184,0,16384,16396,128,0,0,0,0,-129,16626
DATA 64,1792,2304,-24574,0,8192,-12028,0,0,0,0,0,-4225,-23324,32,3584,5120
DATA 16386,0,4144,-6133,160,0,0,0,0,30079,1093,32,15872,2576,184,0,-21888
DATA 16529,96,0,0,0,768,-1,-19272,48,20736,25856,74,0,1024,-32750,0,0,0
DATA 0,1792,-1,7792,16,-3326,-32262,16512,0,256,352,160,0,0,0,3840,-257
DATA 688,16,-2298,-7447,233,0,512,0,224,0,0,0,7936,-1,864,208,-221,-31520
DATA 92,0,2048,80,32,0,0,0,16128,-1,16,112,-2289,-23836,-32618,0,0,10240
DATA 0,0,0,0,32512,-1,144,32,-1265,1484,20490,4096,0,5376,0,0,0,0,-256
DATA -257,80,32,-1177,735,180,0,0,2560,128,0,0,0,-255,-257,80,544,-3105
DATA 9375,80,0,0,0,0,0,0,0,-255,-1,48,32,1407,-13793,16,0,80,8192,0,0,0
DATA 0,-255,-257,32,32,1791,20751,16,0,8192,128,0,0,0,0,-255,-257,32,0
DATA 3807,21020,12448,0,256,2176,0,0,0,0,-255,-1,184,8192,3775,16522,4184
DATA 0,0,0,0,0,0,0,-253,-257,88,64,7799,-23024,-28644,48,256,-32768,40
DATA 0,0,0,-214,-1,140,5184,3819,25408,8208,1,0,1040,16,0,0,0,-201,-257
DATA 6,2176,17486,22612,4272,0,256,2720,96,0,0,0,-253,-1,37,-31616,3754
DATA -29744,16627,112,384,81,0,0,0,0,-221,-1,16038,-11264,-12224,22980
DATA 1089,8,0,-32768,0,0,-31232,0,-201,-1,21499,2048,-3864,9312,1156,512
DATA 0,26656,0,0,-29952,0,-217,-257,-16409,-16256,-12208,6608,1032,56,256
DATA 16385,8,0,1536,0,-187,-769,-10466,-22416,6200,-26368,2052,18,768,10842
DATA 132,0,1537,0,-16537,-2817,27299,-25604,20737,21568,16,16384,2816,1448
DATA 0,0,0,0,-185,-7425,8002,-18200,-13559,9608,0,0,5376,8408,20,0,0,0
DATA -185,-7937,946,-28420,20997,68,4,40,6912,-22280,0,0,0,0,32611,-3841
DATA 2,-31744,-17919,15626,-22384,-32752,1280,17728,64,0,0,0,-189,25342
DATA 4,-18432,-11115,23191,49,4,2561,-30048,40,0,0,0,-189,255,4,-20480
DATA -5380,-30556,4181,4,22785,81,0,0,0,0,-189,-32514,200,-28672,22751
DATA 12309,-22452,44,27137,-24058,0,0,0,0,-189,253,168,-31744,-19974,17799
DATA 17476,48,28674,0,0,0,-32768,0,-61,2046,104,0,12663,-27328,2050,29
DATA -18432,-30718,128,0,0,0,-637,1524,216,1280,-23813,9386,29,152,20489
DATA 1,20,0,0,0,-893,-3628,208,1024,16637,10254,1,569,43,10752,160,0,144
DATA 0,-893,-6149,96,19456,16637,4104,12312,657,4108,128,4,0,8352,0,-53
DATA 32495,160,1024,21757,149,0,56,5124,64,0,0,72,0,-4729,-2101,192,24576
DATA 9470,8238,0,152,9744,0,0,0,209,0,-860,11791,64,20736,4350,-32555,0
DATA 266,1248,0,0,0,40,0,25516,29223,128,20736,-9807,165,0,3584,10241,0
DATA 0,0,80,0,-860,11791,64,21248,4096,-32560,0,17160,480,0,0,2048,32,0
DATA -4857,-2101,192,0,1106,32,0,-24424,10768,0,0,512,16400,0,-30654,-3897
DATA 0,0,11552,12,0,-30961,533,0,0,512,16,0,20032,24609,0,2560,3584,176
DATA 0,16901,9232,0,0,256,64,0,1536,-24519,0,3328,1032,16,0,-24574,18450
DATA 0,0,2048,160,0,1024,-4036,0,1280,544,12,0,4864,1,0,0,3072,48,0,1536
DATA 28734,0,1280,16457,128,0,-24568,2049,0,0,512,0,0,3840,4349,0,1280
DATA 176,104,0,16384,-32766,0,0,3328,0,0,16128,-12033,0,1280,16708,32,0
DATA -32766,0,0,0,0,0,0,-256,-3841,0,1280,-8183,0,0,512,0,0,0,0,0,0,-256
DATA -16129,0,768,12367,32,0,0,72,0,0,0,0,0,-253,248,0,1024,770,80,0,0
DATA 0,0,0,0,0,0,3590,0,0,2048,-10240,8,0,-3839,-32734,0,0,0,0,0,-30965
DATA 3264,0,1024,8232,144,0,21000,16,0,0,0,0,0,29456,-264,0,0,1420,0,0
DATA 16,2,0,0,0,0,0,800,-4065,0,0,-24528,0,0,544,2112,0,0,0,0,0,64,-16889
DATA 0,-24576,2048,0,0,0,20480,0,0,0,0,0,128,-2801,128,16384,0,16384,0
DATA 128,2560,0,0,256,128,0,0,-29949,0,0,1024,64,0,0,8192,0,0,0,8,0,0,-16383
DATA 0,0,0,16,0,0,0,0,0,0,0,0,0,-16384,0,0,256,0,0,0,0,0,0,0,0,0,0,-16384
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,-32767,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,0,0,-32768,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0
'title3
DATA 55,82,0,0,48,0,0,0,0,0,0,32,0,0,0,0,0,0,16,0,0,0,0,0,0,32,0,0,0,0
DATA 0,0,96,0,0,0,0,0,0,64,0,0,0,0,0,0,64,0,0,0,0,0,0,32,0,0,0,0,0,0,-7952
DATA 0,0,0,16,0,0,65,0,0,0,0,0,0,16465,0,0,16384,0,0,0,-32608,0,0,0,0,0
DATA 0,-7951,0,0,8192,16,0,0,81,0,0,0,0,0,256,16483,0,0,16384,0,0,0,-32638
DATA 0,0,0,0,0,256,-32605,0,0,256,0,0,0,16448,0,0,0,0,0,768,16597,0,0,768
DATA 0,0,512,-32520,0,0,0,0,0,768,16633,0,0,2304,0,0,256,-32554,0,0,0,0
DATA 0,768,85,0,0,0,192,0,0,234,0,0,0,0,0,512,-16134,0,0,-1536,0,0,256
DATA 5,0,0,0,0,0,256,21,0,0,8452,0,0,2560,-32546,0,0,0,0,0,11776,-16129
DATA 0,0,-16374,0,0,5376,0,0,0,0,0,0,-6400,16639,0,0,8,128,0,-4096,16384
DATA 0,0,0,0,0,-16637,254,0,256,256,128,0,24576,16384,0,0,0,0,0,-235,-16132
DATA 0,8192,2816,0,0,523,160,0,0,0,0,0,-5607,-3345,128,3072,18184,1,0,5890
DATA 12344,0,0,0,0,0,-233,-18945,0,0,26112,-16246,0,10,16408,0,0,0,0,0
DATA -193,-21254,192,0,256,67,0,-2781,4190,0,0,0,0,0,22301,16630,64,256
DATA 512,-32624,0,-21978,10413,0,0,0,0,0,-4113,24818,32,-30976,512,-12261
DATA 0,21784,-16307,0,0,0,0,256,-2057,20708,32,514,6656,16552,0,-21992
DATA 165,0,0,0,0,3840,-1026,-29779,32,15878,16512,112,0,17729,1844,0,0
DATA 0,0,14080,30167,1916,160,22279,-32162,16400,14336,-24408,3176,32,0
DATA 0,0,-1280,-1025,584,192,-18425,18088,176,12288,21829,1952,128,0,0
DATA 0,7937,30719,1476,576,21543,-30638,-32688,-16384,-22102,3856,0,0,0
DATA 0,-22016,-5,144,64,-22134,-9542,248,21761,17748,32,0,0,1024,0,22273
DATA 32725,1092,64,-11245,24645,8272,-22528,-21974,146,0,0,2048,0,-255
DATA -1,230,96,21763,-20090,4344,0,20736,72,0,0,0,0,-255,30079,226,32,-24053
DATA 13665,84,2,-30200,520,112,0,0,0,-2034,-18310,1015,2256,1,128,80,1537
DATA 17541,-32504,48,322,7,0,-1785,22524,1016,3104,512,2128,4208,1616,-24575
DATA 6927,224,262,8,128,-201,-1281,-15880,-32632,0,1280,8,76,0,4354,8,0
DATA 5,32,-29,-3585,3042,2200,0,1024,8388,22,512,14617,24,0,14,0,-57,-1
DATA -3075,4348,0,0,128,172,0,-13310,12,4,16,80,-2105,-2049,-4916,10342
DATA -32768,0,4112,10450,2048,-24013,138,128,128,224,-2073,-1,-6408,4346
DATA 0,0,1144,2156,0,-7929,0,0,64,128,-191,-1,29904,-24388,0,10240,8441
DATA 22,0,28679,66,0,32,0,-18653,16351,2946,5290,0,17408,4112,2120,96,-6863
DATA 228,64,2248,0,32515,22527,5120,11264,0,512,13921,18,2048,-29143,192
DATA 128,-11104,0,-8397,-5633,-28152,7296,0,20484,14944,64,512,3079,64
DATA 32,-24560,0,7937,-11777,1025,1024,8224,256,22211,-16334,3840,7423
DATA 0,192,32,0,-253,-1409,6314,2048,160,-24319,32290,16404,1152,-13068
DATA 0,-32768,2144,0,-255,-2561,20492,3072,64,1281,31777,8208,2816,-29450
DATA 0,0,100,64,-1455,-22481,-22491,1536,4330,12112,-21936,5465,1984,1269
DATA 0,-32767,160,0,-2799,-19121,-32523,2640,20727,264,2600,2052,25248
DATA 265,244,8192,-2928,0,-504,31,-32544,29962,-8136,-26609,0,17666,12048
DATA 133,6,0,208,0,-2814,2143,-16169,14336,16469,4207,2048,10887,20384
DATA 25,0,0,9872,0,-1270,2192,-32745,256,-11927,12300,64,5252,-9170,-32676
DATA 0,0,-32733,0,29957,528,13,512,-20076,28799,128,11144,-31154,128,0
DATA 0,256,0,14495,-30559,40,0,1,-32202,0,-15668,16734,84,0,0,8,0,4373
DATA -6909,112,8704,-6078,28,0,-21112,1556,142,0,0,16385,0,11818,8216,248
DATA 1024,-15615,14,0,-3949,-28416,12,0,1024,0,0,18224,5320,96,512,1924
DATA 232,0,30881,816,152,0,0,0,0,11818,-20196,252,1024,-7360,78,0,-28271
DATA 4356,12,0,0,0,0,5397,-6369,242,-24064,12352,-30712,0,-20711,4684,6
DATA 0,0,0,0,2624,-129,224,-28672,0,0,0,15616,16516,0,0,0,0,0,1344,29695
DATA 192,-32768,42,0,0,5120,-17366,128,0,0,0,0,2816,-1281,160,0,0,4096
DATA 0,5120,1280,192,0,0,0,0,1280,5616,0,0,3072,-32760,0,2560,-2302,96
DATA 0,0,0,0,2816,-13316,224,0,0,0,0,1536,13507,0,0,0,0,0,5376,-2161,32
DATA 0,4104,-32768,0,4096,2176,96,0,0,0,0,24576,-2032,128,0,784,16384,0
DATA 16384,1792,0,0,0,0,0,-16384,29696,224,0,0,3,0,0,19456,96,0,0,16,0
DATA 1,2816,32,0,0,0,0,1,1024,0,0,0,0,0,2,768,0,0,0,12,0,2,0,0,0,0,0,0
DATA 4,1536,0,512,0,0,0,4,0,0,0,0,0,0,24,1024,0,8192,0,8,0,8,512,0,0,0
DATA 0,0,32,3072,0,2048,0,0,0,32,0,0,0,0,0,0,64,4096,0,16384,0,44,0,0,0
DATA 0,0,0,0,0,0,6144,0,0,0,0,0,0,0,0,0,0,0,0,128,12288,0,0,0,0,0,128,8192
DATA 0,0,0,0,0,0,12288,0,0,0,0,0,0,0,0,0,0,0,0,0,24576,0,0,0,128,0,0,8192
DATA 0,0,0,0,0,0,-16384,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,-32768
DATA 0,0,0,0,0,0,-32767,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,128,0,0,0,0,0
DATA 0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,2048,0,0,0,2,0,0,0,0,0
'title4
DATA 55,82,0,0,0,0,0,16384,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0
DATA 0,256,-16157,0,0,0,0,0,0,0,0,0,0,128,0,256,16483,0,0,0,0,0,0,0,0,0
DATA 0,0,0,256,-16157,0,0,0,0,0,0,0,0,0,0,0,0,256,-16191,0,0,0,0,0,0,0
DATA 0,0,0,0,0,256,-16157,0,0,0,0,0,0,0,0,0,0,0,0,768,71,0,0,0,0,0,0,0
DATA 0,0,0,0,0,768,-32569,0,0,0,0,0,0,0,0,0,1282,0,0,1280,-32552,0,0,0
DATA 0,0,0,0,0,0,1280,0,0,1792,-32518,0,0,0,0,0,0,0,0,0,-31488,0,0,1792
DATA 114,0,0,0,0,0,0,0,0,0,2560,0,0,3840,245,0,0,0,0,0,0,0,0,0,2048,0,0
DATA 1280,213,0,0,0,0,0,0,0,0,0,3072,0,0,1792,243,0,0,0,0,0,0,0,0,0,32
DATA 0,0,21760,84,0,0,0,0,0,0,0,0,0,-4859,0,0,-2044,-32766,0,0,0,0,0,3840
DATA 252,0,0,400,0,0,16413,-32512,0,0,0,0,0,-256,252,0,1280,0,128,0,0,1792
DATA 128,0,0,0,0,-32753,-16185,0,4096,10,0,0,29984,12480,64,0,0,0,0,-30708
DATA -8057,0,28928,12288,2,0,-254,6216,64,0,0,0,0,5237,4124,0,2048,768
DATA 136,3328,-1273,24828,192,0,0,0,-32000,-21821,2723,0,4,3072,21,-26624
DATA -8385,-6061,128,0,0,0,1536,1,-10432,0,16568,6696,-32768,16641,-10305
DATA -3868,0,0,0,0,15872,10794,514,0,513,4,209,-32767,-1027,11517,128,0
DATA 0,0,-16384,2305,513,0,62,2562,208,257,-769,245,0,0,0,0,-9213,10784
DATA -32736,96,0,256,2,8960,-1,-22274,0,0,0,0,-1018,3652,-16383,2272,2
DATA 2048,0,257,-1,9462,0,0,0,0,-32754,0,-8191,256,32001,-2187,-4050,512
DATA -30078,8329,0,124,136,0,-28643,64,13326,8440,257,-32536,171,518,5888
DATA 11008,0,-16788,28928,64,25121,32512,-8180,17568,256,1024,23747,26
DATA -32768,-15612,2,-355,-3328,28,17125,-18688,-16242,12,-30720,27136
DATA -7444,22,2184,-13206,16,30653,4416,19,-1342,-8193,20367,62,4,2128
DATA 0,63,20480,8,192,-20351,29729,191,-1088,28667,4095,2076,1028,8256
DATA 25120,55,16384,32,128,29200,3219,223,-1086,28667,3054,8240,1108,0
DATA -14832,20495,0,1025,8,29216,4243,235,-3327,-2561,-31105,8256,-24572
DATA 24,2603,86,6816,640,100,6152,256,212,9249,-4081,-3329,3104,8208,7432
DATA 1089,2096,2080,16413,714,-8509,16631,188,1041,-4081,-8462,1120,-32760
DATA 18952,-32535,4272,2176,-14270,532,32483,1527,16,9248,-4081,-20225
DATA 7520,4120,1801,5195,128,2320,1031,642,-4669,8438,176,-7935,-4081,20605
DATA -22824,16400,-17401,1583,16,1792,-32708,32,-20466,760,80,528,3,24847
DATA 794,-15360,2305,-32688,-116,312,19481,4,0,-7938,128,264,1,-7734,4866
DATA 3712,2112,2096,32708,240,11784,0,0,13759,0,12,33,15904,4096,11777
DATA 32583,241,-349,1488,12320,0,0,-32584,8,12289,1,5760,-13824,1536,32558
DATA 240,-240,-22800,6144,0,0,81,0,28675,3585,15488,10240,16384,3552,0
DATA -12416,-24386,-16270,0,0,17,32,32257,2304,26752,2560,808,20619,132
DATA -31852,-22028,4111,0,0,84,0,-6400,898,-1918,1280,9232,19475,0,2218
DATA 857,33,0,512,236,0,5376,716,-32665,-10240,58,-32654,32,4,-32197,24
DATA 0,0,16385,0,3584,16255,-7937,-32768,16,-32684,0,316,-30323,72,0,0
DATA 0,0,256,-24769,-32577,0,-32768,4,64,24,26688,64,0,0,0,0,0,-1,254,-32768
DATA 1,-32508,192,48,0,8,0,0,0,0,0,-241,222,0,-12288,8192,0,48,0,0,0,0
DATA 0,0,0,-1025,254,-32768,0,0,0,48,1024,8,0,0,0,0,256,-26817,-32579,0
DATA 16384,40,64,280,20528,66,0,0,0,0,0,0,0,0,0,156,0,192,128,120,0,0,0
DATA 0,0,0,0,0,-32768,0,0,256,0,16,0,0,0,0,0,0,0,0,0,0,0,1664,0,48,0,0
DATA 0,0,0,0,0,0,0,0,0,3200,0,16,0,0,0,0,0,0,0,0,0,0,0,4096,0,96,0,0,0
DATA 0,0,0,0,0,0,0,0,8192,0,64,0,0,0,0,0,0,0,0,0,0,0,-16384,0,192,0,0,0
DATA 0,0,0,0,0,0,0,0,-32767,256,128,0,0,0,0,0,0,0,0,0,0,0,2,256,128,0,0
DATA 0,0,0,0,0,0,0,0,0,4,768,0,0,0,0,0,0,0,0,0,0,0,0,24,1536,0,0,0,0,0
DATA 0,0,0,0,0,0,0,16,1024,0,0,0,0,0,0,0,0,0,0,0,0,32,3072,0,0,0,0,0,64
DATA 0,0,0,0,0,0,64,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,6144,0,0,0,0,0,0,0,0
DATA 0,0,0,0,128,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,12288,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,24576,0,0,0,0,0,0,0,0,0,0,0,0,0,24576,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,-16384,0,0,0,0,0,0,0,0,0,0,0,0,0,-32767,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
DATA 0,0,0,0
'title5
DATA 57,22,0,-241,248,0,0,0,0,0,0,0,0,0,0,0,0,0,768,240,-8185,0,0,-241
DATA 248,0,0,0,0,0,0,0,0,0,15360,0,7680,0,768,-1,-7937,0,0,0,0,0,0,0,0
DATA 0,-16383,0,256,192,16128,-1,-257,0,0,0,0,0,0,0,0,0,6,0,0,48,-255,-1
DATA -1,192,-512,0,0,0,0,0,0,0,24,0,0,12,-249,-1,-1,240,-32255,0,0,0,31744
DATA 0,0,0,32,0,0,2,-241,-1,-1,252,6673,0,15360,0,-7168,0,0,0,64,0,0,1
DATA -225,-1,-1,254,-17631,-12289,-6145,248,17408,0,6144,0,64,0,0,1,-225
DATA -1,-1,254,-16864,30860,18992,136,16640,-30861,-18993,112,128,0,0,-32768
DATA -193,-1,-1,255,-19136,-19677,-25754,40,18432,19676,25753,208,128,0
DATA 0,-32768,-193,-1,-1,255,-31424,-22714,-19634,72,30720,22712,19633
DATA 176,128,0,0,-32768,-193,-1,-1,255,-17088,-20619,-28834,120,16384,20616
DATA 28833,128,128,0,0,-32768,-193,-1,-1,255,-19647,11895,-17572,96,16384
DATA -11896,17571,128,64,0,0,1,-225,-1,-1,254,4641,28728,-14752,32,-7936
DATA -28729,14751,192,64,0,0,1,-225,-1,-1,252,-3295,-8209,-130,226,0,0
DATA 129,0,32,0,0,2,-249,-1,-1,240,24,7424,-32646,12,0,0,129,0,24,0,0,12
DATA -255,-1,-1,192,6,5888,-32658,48,0,2048,145,0,6,0,0,48,16128,-1,-257
DATA 0,-16383,6144,-32271,192,0,1792,14,0,-16383,0,256,192,768,-1,-7937
DATA 0,15360,3840,7839,0,0,0,0,0,15360,0,7680,0,0,-241,248,0,768,240,-8185
DATA 0,0,0,0,0,768,240,-8185,0,0,0,0,0,0,-241,248,0,0,0,0,0,0,-241,248
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0
SUB BYE
SCREEN 0, 0, 0, 0: WIDTH 80, 25: CLS
PRINT "FROGGER! Written in *QB*. Matt Bross, 1997"
PRINT "HOMEPAGE - http://www.GeoCities.Com/SoHo/7067/"
PRINT "EMAIL - oh_bother@GeoCities.Com"
END
END SUB
SUB DELAY (SEC!)
FOR V = 0 TO SEC! * 70: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT
END SUB
SUB Frogger (TLIVES, ODIF, OT, OD!)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%GRAPHICS ARRAYS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
REM $DYNAMIC
DIM FROG(37), car1(37), car2(37), log1(37), lily(37), water(37), road(37)
DIM exit1(37): RESTORE FroggerGraphics
FOR i = 0 TO 37: READ FROG(i): NEXT: FOR i = 0 TO 37: READ car1(i): NEXT
FOR i = 0 TO 37: READ car2(i): NEXT: FOR i = 0 TO 37: READ log1(i): NEXT
FOR i = 0 TO 37: READ lily(i): NEXT: FOR i = 0 TO 37: READ water(i): NEXT
FOR i = 0 TO 37: READ road(i): NEXT: FOR i = 0 TO 37: READ exit1(i): NEXT
'%%%%%%%%%%%%%%%%%%%%%%%%%%%INFORMATION ARRAYS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DIM FrogLev(23, 15)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%VARIABLES%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NewGame: LIVES = TLIVES: SCORE = 0: DIF = ODIF: D! = OD!
'%%%%%%%%%%%%%%%%%%%%%%%%%%LOAD HIGH SCORE TABLE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OPEN "hiscore.dat" FOR BINARY AS #1
'FOR i = 0 TO 9: GET #1, , HISCORE(i): NEXT
CLOSE
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%LOAD LEVEL%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NextLev: CLS
FOR Y = 0 TO 15: FOR X = 0 TO 23
SELECT CASE Y
CASE 0: IF INT(RND * DIF) = 0 THEN FrogLev(X, Y) = 8 ELSE FrogLev(X, Y) = 9
CASE 1 TO 6: FrogLev(X, Y) = 6
IF INT(RND * DIF) = 0 THEN
IF Y AND 1 THEN FrogLev(X, Y) = 4 ELSE FrogLev(X, Y) = 5
END IF
CASE 8 TO 14: FrogLev(X, Y) = 7
IF INT(RND * (100 - DIF)) = 0 THEN
IF Y AND 1 THEN FrogLev(X, Y) = 2 ELSE FrogLev(X, Y) = 3
END IF
END SELECT
NEXT: NEXT
FOR Y = 0 TO 6
FY = -1: FX = -1: EX = -1
FOR X = 0 TO 23
IF FrogLev(X, Y) = 4 AND Y AND 1 THEN FY = 0
IF FrogLev(X, Y) = 5 THEN FX = 0
IF FrogLev(X, Y) = 8 THEN EX = 0
NEXT
IF Y AND 1 THEN
IF FY = -1 THEN FrogLev(INT(RND * 23), Y) = 4
ELSE
IF FX = -1 AND Y <> 0 THEN
IF Y = 3 OR Y = 6 THEN EX = 11 ELSE EX = 0
FrogLev(INT(RND * 11) + EX, Y) = 5
END IF
END IF
IF EX = -1 AND Y = 0 THEN FrogLev(INT(RND * 11), Y) = 8
NEXT
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%RESTART POINT%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ReStart: FX = 11: FY = 15: SEC = OT: ForStep = DIF: SideStep = DIF \ 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DRAW LEVEL%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FOR Y = 0 TO 15: FOR X = 0 TO 23
EX = X * 9 + 50: EY = Y * 9 + 20
SELECT CASE FrogLev(X, Y)
CASE 2: PUT (EX, EY), car1, PSET
CASE 3: PUT (EX, EY), car2, PSET
CASE 4: PUT (EX, EY), log1, PSET
CASE 5: PUT (EX, EY), lily, PSET
CASE 6: PUT (EX, EY), water, PSET
CASE 7: PUT (EX, EY), road, PSET
CASE 8: PUT (EX, EY), exit1, PSET
CASE ELSE: LINE (EX, EY)-(EX + 8, EY + 8), 0, BF
END SELECT
NEXT: NEXT
LOCATE 2, 14: PRINT SPACE$(12)
LINE (0, 178)-(45, 186), 0, BF
IF LIVES > 5 THEN SLIVES = 5 ELSE SLIVES = LIVES
FOR X = 0 TO SLIVES - 1: PUT (X * 9, 178), FROG, PSET: NEXT
LOCATE 22, 1: PRINT "LIVES": LOCATE 1, 16: PRINT "FROGGER!"
LOCATE 22, 9: PRINT "SCORE": LOCATE 23, 9: PRINT SCORE
LOCATE 22, 16: PRINT "TIME": LOCATE 23, 16: PRINT SEC
LOCATE 22, 23: PRINT "LEVEL": LOCATE 23, 23: PRINT DIF
LOCATE 22, 31: PRINT "HISCORE": LOCATE 23, 31: PRINT HISCORE(0).SCORE
PUT (149, 155), FROG, PSET: IF LIVES <= 0 THEN GOTO LOSE
DO: LOOP UNTIL INKEY$ <> ""
T& = TIMER MOD 86400: DO: LOOP UNTIL TIMER >= T&: T& = TIMER
'------------------------>BEGIN MAIN LOOP OF FROGGER GAME<-------------------
DEF SEG = 0
DO
'**********************************GET KEY***********************************
'a = INP(&H60): WHILE LEN(INKEY$): WEND
'SELECT CASE a
' CASE &H48: OFX = FX: OFY = FY: FY = FY - 1
'SCORE = SCORE + ForStep: KeyPress = -1
' CASE &H50: OFX = FX: OFY = FY: FY = FY + 1
'KeyPress = -1
' CASE &H4B: OFX = FX: OFY = FY: FX = FX - 1
'SCORE = SCORE + SideStep: KeyPress = -1
' CASE &H4D: OFX = FX: OFY = FY: FX = FX + 1
'SCORE = SCORE + SideStep: KeyPress = -1
' CASE &H1: GOSUB ABORTGAME
' CASE ELSE: KeyPress = 0
'END SELECT
a$ = INKEY$
'a = INP(&H60): WHILE LEN(INKEY$): WEND
SELECT CASE a$
CASE "8": OFX = FX: OFY = FY: FY = FY - 1
SCORE = SCORE + ForStep: KeyPress = -1
CASE "2": OFX = FX: OFY = FY: FY = FY + 1
KeyPress = -1
CASE "4": OFX = FX: OFY = FY: FX = FX - 1
SCORE = SCORE + SideStep: KeyPress = -1
CASE "6": OFX = FX: OFY = FY: FX = FX + 1
SCORE = SCORE + SideStep: KeyPress = -1
CASE "q": GOSUB ABORTGAME
CASE ELSE: KeyPress = 0
END SELECT
'********************************MOVE FROG***********************************
IF KeyPress THEN
LOCATE 23, 9: PRINT SCORE: SOUND 500, .5
'*************************CHECK BOUNDS OF THE FROG***************************
IF FX < 0 THEN FX = 0
IF FX > 23 THEN FX = 23
IF FY < 0 THEN FY = 0
IF FY > 15 THEN FY = 15
END IF
'********************************DRAW FROG***********************************
IF KeyPress OR FY < 7 THEN PUT (FX * 9 + 50, FY * 9 + 20), FROG, PSET
'******************************ERASE OLD CELL********************************
IF FX <> OFX OR FY <> OFY THEN
EX = OFX * 9 + 50: EY = OFY * 9 + 20
SELECT CASE FrogLev(OFX, OFY)
CASE 2: PUT (EX, EY), car1, PSET
CASE 3: PUT (EX, EY), car2, PSET
CASE 4: PUT (EX, EY), log1, PSET
CASE 5: PUT (EX, EY), lily, PSET
CASE 6: PUT (EX, EY), water, PSET
CASE 7: PUT (EX, EY), road, PSET
CASE 8: PUT (EX, EY), exit1, PSET
CASE ELSE: LINE (EX, EY)-(EX + 8, EY + 8), 0, BF
END SELECT
END IF
DO: newtimer! = TIMER: LOOP WHILE newtimer! = lasttimer!
lasttimer! = newtimer!
DO: newtimer! = TIMER: LOOP WHILE newtimer! = lasttimer!
lasttimer! = newtimer!
'*****************************CHECK FOR BONUSES******************************
IF FrogLev(FX, FY) = 8 THEN GOTO WIN
IF SCORE AND SCORE MOD (100 * DIF + 1) = 0 THEN GOSUB LIFEUP
'***************************CHECK IF YOU ARE DEAD****************************
SELECT CASE FrogLev(FX, FY)
CASE 2, 3, 6, 9: GOTO DIE
END SELECT
IF T& <> FIX(TIMER) THEN T& = TIMER: SEC = SEC - 1: LOCATE 23, 16: PRINT SEC
IF SEC <= 0 THEN GOTO DIE
'******************************MOVE OBSTICALES*******************************
BACK = 23: FORTH = 0
FOR Y = 1 TO 14: FOR X = BACK TO FORTH STEP SGN(FORTH - BACK)
SELECT CASE FrogLev(X, Y)
CASE 2
IF X = 0 THEN C2 = 23 ELSE C2 = X - 1
SWAP FrogLev(X, Y), FrogLev(C2, Y)
PUT (C2 * 9 + 50, Y * 9 + 20), car1, PSET
IF FrogLev(X, Y) <> 2 THEN PUT (X * 9 + 50, Y * 9 + 20), road, PSET
CASE 3
IF X = 23 THEN C2 = 0 ELSE C2 = X + 1
SWAP FrogLev(X, Y), FrogLev(C2, Y)
PUT (C2 * 9 + 50, Y * 9 + 20), car2, PSET
IF FrogLev(X, Y) <> 3 THEN PUT (X * 9 + 50, Y * 9 + 20), road, PSET
CASE 4
SELECT CASE Y
CASE 1, 5
IF X = 23 THEN C2 = 0 ELSE C2 = X + 1
IF FY = Y AND FX = X THEN OFX = FX: OFY = FY: FX = (FX + 1) MOD 23
SWAP FrogLev(X, Y), FrogLev(C2, Y)
PUT (C2 * 9 + 50, Y * 9 + 20), log1, PSET
IF FrogLev(X, Y) <> 4 THEN PUT (X * 9 + 50, Y * 9 + 20), water, PSET
CASE 3
IF X = 0 THEN C2 = 23 ELSE C2 = X - 1
IF FY = Y AND FX = X THEN OFX = FX: OFY = FY: FX = FX - 1
SWAP FrogLev(X, Y), FrogLev(C2, Y)
PUT (C2 * 9 + 50, Y * 9 + 20), log1, PSET
IF FrogLev(X, Y) <> 4 THEN PUT (X * 9 + 50, Y * 9 + 20), water, PSET
END SELECT
END SELECT
NEXT
IF Y > 7 THEN SWAP BACK, FORTH ELSE IF Y AND 1 THEN SWAP BACK, FORTH
NEXT
SOUND 100, .1
'DELAY D!
LOOP
'--------------------->END MAIN LOOP OF FROGGER GAME<------------------------
DIE: SOUND 500, 5: SOUND 200, 3: SOUND 100, 2
LIVES = LIVES - 1: GOTO ReStart
WIN: PUT ((OFX + 1) * 9 + 50, OFY * 9 + 20), log1, PSET
LOCATE 2, 14: PRINT "LEVEL PASSED": DIF = DIF + 1: GOTO NextLev
LOSE: FOR X = 0 TO 500 STEP 40: SOUND 2000 + X, 1: NEXT
SOUND 200, 4: SOUND 100, 2
LOCATE 2, 15: PRINT "GAME OVER!"
WHILE LEN(INKEY$): WEND: DELAY 1
IF SCORE > HISCORE THEN NewHiScore SCORE
LOCATE 1, 1: PRINT SPACE$(40)
PRINT SPACE$(40)
LOCATE 2, 15: PRINT "PLAY AGAIN?"
promt: a$ = INPUT$(1)
SELECT CASE a$
CASE "Y", "y": GOTO NewGame
CASE "N", "n": DEF SEG : EXIT SUB
CASE ELSE: GOTO promt
END SELECT
ABORTGAME: LOCATE 2, 12: PRINT "ABORT GAME?(Y/N)": a$ = INPUT$(1)
SELECT CASE a$
CASE "Y", "y": LOCATE 2, 12: PRINT SPACE$(16): GOTO LOSE
CASE "N", "n": LOCATE 2, 12: PRINT SPACE$(16): RETURN
CASE ELSE: GOTO ABORTGAME
END SELECT
LIFEUP: SOUND 3000, .9: SOUND 3000, .2: SOUND 4000, .1
SCORE = SCORE + DIF: LIVES = LIVES + 1
IF LIVES > 5 THEN SLIVES = 4 ELSE SLIVES = LIVES - 1
PUT (SLIVES * 9, 178), FROG, PSET: RETURN
END SUB
REM $STATIC
SUB FrogINTRO
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%LOAD TITLE IMAGES%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLS : FOR X = 0 TO 15: PALETTE X, 0: NEXT
REDIM title1(1393), title2(1135), title3(1149), title4(1149), title5(353)
RESTORE FroggerIntroGraphics
FOR i = 0 TO 1393: READ title1(i): NEXT
FOR i = 0 TO 1135: READ title2(i): NEXT
FOR i = 0 TO 1149: READ title3(i): NEXT
FOR i = 0 TO 1149: READ title4(i): NEXT
FOR i = 0 TO 353: READ title5(i): NEXT
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SET PALETTE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
RESTORE FroggerIntroPalette
FOR X = 0 TO 15: READ i: PALETTE X, i: NEXT
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%SHOW MORPHING TITLE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PUT (131, 60), title1, PSET
DELAY 1: LINE (131, Y)-(188, 144), 0, BF
PUT (131, 60), title2, PSET
DELAY .05: LINE (131, 60)-(188, 144), 0, BF
PUT (131, 60), title3, PSET
DELAY .05: LINE (131, 60)-(188, 144), 0, BF
PUT (131, 60), title4, PSET
DELAY .05: LINE (131, 60)-(188, 144), 0, BF
PUT (131, 88), title5, PSET
ERASE title1, title2, title3, title4, title5
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SET STAR PALETTE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DELAY 1: PALETTE 0, 0: PALETTE 3, 8: PALETTE 5, 7: PALETTE 8, 15
LOCATE 16, 11: PRINT "PRESS SPACE TO START"
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%STAR INIT%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nstar = 100
REDIM starX(nstar), starY(nstar), starZ(nstar), OSX(nstar), OSY(nstar)
FOR X = 0 TO nstar
starX(X) = INT(RND * 320) - 160
starY(X) = INT(RND * 200) - 100
starZ(X) = INT(RND * 150)
NEXT
'%%%%%%%%%%%%%%%%%%%%%%%%%%REAL(!) 3D STAR SCROLLER%%%%%%%%%%%%%%%%%%%%%%%%%%
DEF SEG = 0
DO
FOR X = 0 TO nstar
SELECT CASE POINT(OSX(X), OSY(X))
CASE 3, 5, 8: PSET (OSX(X), OSY(X)), 0
END SELECT
IF starZ(X) <= 0 THEN
starX(X) = INT(RND * 320) - 160
starY(X) = INT(RND * 200) - 100
starZ(X) = INT(RND * 150)
ELSE
SX = 50 * starX(X) \ starZ(X) + 160
SY = 50 * starY(X) \ starZ(X) + 100
c = starZ(X) \ 50
SELECT CASE c
CASE 0: c = 8
CASE 1: c = 5
CASE 2: c = 3
END SELECT
IF POINT(SX, SY) = 0 THEN PSET (SX, SY), c
OSX(X) = SX: OSY(X) = SY
starZ(X) = starZ(X) - 1
END IF
NEXT
SELECT CASE INP(&H60)
CASE &H39: EXIT DO
CASE &H10: IF SPECIAL = 0 THEN SPECIAL = 1
CASE &H30: IF SPECIAL = 1 THEN SPECIAL = 2
END SELECT
LOOP
PALETTE: DEF SEG
OptScn SPECIAL
END SUB
SUB NewHiScore (SCORE)
i = 9: DO: i = i - 1: IF i = 0 THEN EXIT DO
IF SCORE > HISCORE(i).SCORE THEN EXIT DO
LOOP
LOCATE 1, 1: PRINT "YOU HAVE A NEW HIGH SCORE"
INPUT "PLEASE GIVE 3 OR LESS INITIALS: ", NAME$
HISCORE(i).PERSON = NAME$: HISCORE(i).SCORE = SCORE
OPEN "hiscore.dat" FOR BINARY AS #1
FOR i = 0 TO 9
' PUT #1, , HISCORE(i)
NEXT
CLOSE #1
END SUB
SUB OptScn (SPECIAL)
CLS : LIVES = 5: DIF = 0: D = 0: OT = 40: choose = 1
IF SPECIAL = 2 THEN
DO
COLOR 15
LOCATE 1, 1: PRINT "OPTIONS SCREEN: PRESS ENTER TO EXIT"
IF choose = 1 THEN COLOR 4 ELSE COLOR 15
LOCATE 2, 1: PRINT "LIVES: "; LIVES
IF choose = 2 THEN COLOR 4 ELSE COLOR 15
LOCATE 3, 1: PRINT "DIFFICULTY: "; DIF
IF choose = 3 THEN COLOR 4 ELSE COLOR 15
LOCATE 4, 1: PRINT "TIME: "; OT
IF choose = 4 THEN COLOR 4 ELSE COLOR 15
LOCATE 5, 1: PRINT "DELAY: "; D / 10; " "
DO: a$ = INKEY$: LOOP UNTIL a$ <> ""
SELECT CASE a$
CASE CHR$(13): EXIT DO
CASE CHR$(0) + "K"
SELECT CASE choose
CASE 1: LIVES = LIVES - 1
CASE 2: DIF = DIF - 1
CASE 3: OT = OT - 1
CASE 4: D = D - 1
END SELECT
CASE CHR$(0) + "H"
IF choose = 0 THEN choose = 4 ELSE choose = choose - 1
CASE CHR$(0) + "P"
IF choose = 4 THEN choose = 0 ELSE choose = choose + 1
CASE CHR$(0) + "M"
SELECT CASE choose
CASE 1: LIVES = LIVES + 1
CASE 2: DIF = DIF + 1
CASE 3: OT = OT + 1
CASE 4: D = D + 1
END SELECT
END SELECT
LOOP
END IF
COLOR 15
Frogger LIVES, DIF, OT, D / 10
END SUB
SUB ShowHiScore
CLS
LOCATE 1, 14: PRINT "HIGH SCORES": PRINT
FOR i = 0 TO 9
a$ = STR$(i + 1): IF i < 9 THEN a$ = a$ + " "
a$ = a$ + STR$(HISCORE(i).SCORE)
b$ = HISCORE(i).PERSON
LOCATE i + 3, 7: PRINT a$, b$
NEXT
SLEEP
BYE
END SUB