It isn't that good, but I was just doing it for the practice.
Please revise my code for any errors...cuz I kno I probably did a hundred things wrong, lol.
Code: Select all
DECLARE SUB delay (wat!)
DECLARE SUB lose ()
DECLARE SUB playermove (playery!, playerx!, keyed$)
CLS
TIMER ON
playerx = 40
playery = 23
row = 12
column = 79
count = 0
move = 0
DO
start = TIMER
count = count + 1
LOCATE 12, 35
PRINT "GET READY"
IF count = 1 THEN
'lvl 1 *******************************************************************************
PLAY "a8 b8 g8"
CLS
LOCATE 1, 1
PRINT "lvl 1"
PRINT "Avoid the ASCII characters using the arrow keys"
FOR column = 1 TO 79
CALL playermove(playery, playerx, keyed$)
LOCATE row, column
PRINT " "; CHR$(141)
LOCATE row + 1, column
PRINT " "; CHR$(140); CHR$(140)
LOCATE row + 2, column
PRINT " "; CHR$(144)
wat = .01
CALL delay(wat)
IF (row = playery OR row + 1 = playery OR row + 2 = playery) AND column = playerx THEN lose
NEXT
END IF
IF count = 2 THEN
'lvl 2 ******************************************************************************
PLAY "a8 b8 g8"
COLOR 15, 1
CLS
LOCATE 1, 1
PRINT "lvl 2"
PRINT "READY?? "
READ row, row1, row2, row3, row4, row5, row6, row7, row8, row9, row10
FOR column = 1 TO 79
CALL playermove(playery, playerx, keyed$)
LOCATE row, column
PRINT " "; CHR$(175)
LOCATE row1, column
PRINT " "; CHR$(175)
LOCATE row2, column
PRINT " "; CHR$(175)
LOCATE row3, column
PRINT " "; CHR$(175)
LOCATE row4, column
PRINT " "; CHR$(175)
LOCATE row5, column
PRINT " "; CHR$(175)
LOCATE row6, column
PRINT " "; CHR$(175)
LOCATE row7, column
PRINT " "; CHR$(175)
LOCATE row8, column
PRINT " "; CHR$(175)
LOCATE row9, column
PRINT " "; CHR$(175)
LOCATE row10, column
PRINT " "; CHR$(175)
wat = .001
CALL delay(wat)
IF (row = playery OR row1 = playery OR row2 = playery OR row3 = playery OR row4 = playery OR row5 = playery OR row6 = playery OR row7 = playery OR row8 = playery OR row9 = playery OR row10 = playery) AND (column = playerx) THEN lose
NEXT
END IF
IF count = 3 THEN
'lvl 3 ******************************************************************************
PLAY "a8 b8 g8"
COLOR 15, 4
CLS
LOCATE 1, 1
PRINT "lvl 3"
PRINT "TAKE COVER!!!!!!!!!! "
FOR I = 4000 TO 1000 STEP -5
SOUND I, .1
NEXT
column = 1
FOR row = 1 TO 23
CALL playermove(playery, playerx, keyed$)
LOCATE row, column
PRINT " "
PRINT SPACE$(5); STRING$(34, CHR$(173)); SPACE$(1); STRING$(38, CHR$(173))
wat = .05
CALL delay(wat)
IF (playerx > 5 AND playerx <> 40 AND playerx < 78) THEN
IF (row = playery) THEN lose
END IF
NEXT
END IF
IF count = 4 THEN
'lvl 4 ******************************************************************************
PLAY "a8 b8 g8"
COLOR 14, 0
CLS
LOCATE 1, 1
PRINT "lvl 4"
PRINT "Are you feeling lucky? Move your guy so he lands in the gap, then press g"
b$ = CHR$(219)
row = 1
column = 1
DO
CALL playermove(playery, playerx, keyed$)
LOOP UNTIL keyed$ = "g"
FOR row = 1 TO 23
LOCATE row, 1
COLOR 4, 0
PRINT STRING$(80, b$)
NEXT
LOCATE 4, 1
PRINT STRING$(10, b$); SPACE$(3); STRING$(67, b$)
COLOR 15, 1
LOCATE playery, playerx
PRINT CHR$(153)
IF (playery <> 4) AND (playerx <> 11 OR playerx <> 12 OR playerx <> 13) THEN lose
END IF
IF count = 5 THEN
'last lvl ******************************************************************************
PLAY "a8 b8 g8"
COLOR 11, 1
CLS
LOCATE 1, 1
PRINT "last lvl"
PRINT "Thanx for playing my nooby game!"
PRINT "Just move your guy to the exit and you win."
DO
LOCATE 22, 67
PRINT "E"
CALL playermove(playery, playerx, keyed$)
IF (playery = 22) AND (playerx = 67) THEN
LOCATE 3, 1
PRINT " "
PRINT "Did I trick you??? "
PRINT "I kno, it was kind of cheap. :P "
PRINT "But technically, E is an ASCII chracter"
lose
END IF
LOOP 'notice the loop...there is no way of winning in case the hardcore gamers were wondering
END IF
LOOP UNTIL keyed$ = CHR$(27)
DATA 13,14,15,16,17,18,19,20,21,22,23
SUB delay (wat)
StartingTime! = TIMER
DO
LOOP WHILE TIMER - StartingTime! < wat
END SUB
SUB lose
LOCATE 24, 1
PRINT "HA HA! The ASCII symbols caught you!"
PRINT "YOu LOsE!"
PLAY "a8 b8 c4"
END
END SUB
SUB playermove (playery, playerx, keyed$)
keyed$ = INKEY$
oldplayery = playery
oldplayerx = playerx
IF keyed$ = CHR$(0) + CHR$(72) THEN playery = playery - 1
IF keyed$ = CHR$(0) + CHR$(80) THEN playery = playery + 1
IF keyed$ = CHR$(0) + CHR$(75) THEN playerx = playerx - 1
IF keyed$ = CHR$(0) + CHR$(77) THEN playerx = playerx + 1
IF keyed$ = CHR$(27) THEN END
LOCATE oldplayery, oldplayerx
PRINT " "
LOCATE playery, playerx
PRINT CHR$(153)
IF (playery <1>= 24) OR (playerx <1>= 80) THEN
playery = oldplayery
LOCATE 24, 1
PRINT "Oh no!!!!!!"
PRINT "You fell off the face of the earth!!"
END
END IF
END SUB