' Arrow Catcher Game ' ' LameGamez ' by Vince Long ' Feb 2002 ' Output the Title Screen GOSUB TitleBuild ' Setup the Screen COLOR 7, 0 CLS LOCATE 25, 26 PRINT "Press 'ESC' to Quit Anytime"; COLOR 14, 0 FOR col = 1 TO 80 LOCATE 20, col PRINT CHR$(205); NEXT col COLOR 12, 0 col = 1: row = 17 ' Initialize Variables RANDOMIZE TIMER GOSUB BuildArrow Pincrement = 1 ' Main Program Starts Here DO I$ = INKEY$ IF I$ = CHR$(0) + "K" THEN col = col - 1 IF col < 1 THEN col = 1 IF I$ = CHR$(0) + "M" THEN col = col + 1 IF col > 70 THEN col = 70 IF I$ = CHR$(0) + "H" THEN row = row - 1 IF row < 1 THEN row = 1 IF I$ = CHR$(0) + "P" THEN row = row + 1 IF row > 17 THEN row = 17 GOSUB DrawThing ' Check for Catch IF Prow = row AND Pcol = col + 3 OR Prow = row AND Pcol = col + 4 THEN score = score + 1 SOUND 440, .1: SOUND 100, .1: SOUND 1300, .3 GOSUB BuildArrow GOTO DoNext END IF ' Draw the Arrow LOCATE Prow, Pcol PRINT CHR$(25); ' Do a Delay t = TIMER DO LOOP UNTIL TIMER > t + .05 ' Erase the Arrow and the Thing GOSUB EraseThing LOCATE Prow, Pcol PRINT " "; IF Pincrement = 1 THEN Pincrement = 0 Prow = Prow + 1 ELSE Pincrement = 1 END IF ' Check to see if the Arrow is in the bottom row ' and if it is draw an asterisk IF Prow = 19 THEN GOSUB DrawThing LOCATE Prow, Pcol PRINT "*"; t = TIMER DO LOOP UNTIL TIMER > t + .1 LOCATE Prow, Pcol PRINT " "; ' erase The Thing and the Arrow GOSUB EraseThing LOCATE Prow, Pcol PRINT " "; ' Generate data for new arrow GOSUB BuildArrow missed = missed + 1 END IF ' Update the score and start the cycle over DoNext: LOCATE 23, 1 PRINT "Catches: "; score; LOCATE 23, 20 PRINT "Missed:"; missed; LOCATE 23, 40 PRINT "Total: "; total; LOCATE 23, 60 IF score <> 0 THEN PRINT "Percent:"; INT((score / total) * 100); LOOP UNTIL I$ = CHR$(27) GOTO Shutdown ' Subroutine draws The Thing DrawThing: LOCATE row, col + 2 PRINT CHR$(218); CHR$(32); CHR$(32); CHR$(191) LOCATE row + 1, col PRINT CHR$(201); CHR$(205); CHR$(207); CHR$(205); CHR$(205); CHR$(207); CHR$(205); CHR$(187) LOCATE row + 2, col PRINT CHR$(200); "O"; CHR$(205); CHR$(205); CHR$(205); CHR$(205); "O"; CHR$(188) RETURN ' Subroutine Erases The Thing EraseThing: FOR et = row TO row + 2 LOCATE et, col PRINT " "; NEXT et RETURN ' Build the Initial Title Screens TitleBuild: CLS FOR row = 5 TO 12 FOR col = 20 TO 61 LOCATE row, col PRINT CHR$(176); NEXT col NEXT row COLOR 14, 0 FOR row = 4 TO 11 FOR col = 19 TO 59 LOCATE row, col PRINT CHR$(178); NEXT col NEXT row COLOR 1, 2 LOCATE 6, 24 PRINT " L a M e G a M e Z " LOCATE 9, 34 PRINT " P r E s E n T z " t = TIMER DO LOOP WHILE TIMER < t + 2 COLOR 14, 0 FOR row = 4 TO 11 FOR col = 19 TO 59 LOCATE row, col PRINT CHR$(178); NEXT col NEXT row COLOR 1, 2 LOCATE 7, 27 PRINT " A r R o W c A t C h E r " t = TIMER DO LOOP WHILE TIMER < t + 2 RETURN ' Generate Arrow Location BuildArrow: Prow = 1 Pcol = INT(70 * RND(1) + 1) IF Pcol < 10 THEN GOTO BuildArrow total = total + 1 RETURN ' Shutdown Shutdown: CLS LOCATE 10, 25 PRINT "Thanks for Playing LaMeGaMeZ" END