Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 REM BASIC Month 4: Lunar Corps
- 110 REM http://reddit.com/r/RetroBattlestations
- 120 REM written by FozzTexx
- 130 REM modified by EkriirkE
- 200 REM Clear screen and setup variables
- 210 CLS : RANDOMIZE TIMER
- 220 COLS = 80: ROWS = 24
- 230 ITER = 10
- 300 GOSUB 2510
- 310 YS = SQR(2) * SQR(LY) * ITER - 1
- 320 XV = LX / YS: YV = 0
- 330 X = 1: Y = 1
- 420 FOR I = 1 TO YS
- 430 RESTORE 9050: GOSUB 1510
- 440 YV = YV + .9 / (ITER * ITER)
- 450 X = X + XV: Y = Y + YV
- 460 IF I >= YS / 1.5 THEN RESTORE 9020 ELSE RESTORE 9000
- 470 GOSUB 1510
- 480 J = TIMER: WHILE TIMER - J < 1 / ITER: WEND
- 490 NEXT I
- 500 RESTORE 9050: GOSUB 1510
- 510 X = LX: Y = LY
- 520 RESTORE 9000: GOSUB 1510
- 530 S$ = "The Eagle has landed": LOCATE ROWS / 2, (COLS - LEN(S$)) / 2: PRINT S$
- 999 END
- 1500 REM EkriirkE's Draw sprite from DATA at X, Y
- 1510 IF Y < 1 OR Y >= ROWS OR X < 1 OR X >= COLS THEN RETURN
- 1520 LOCATE Y, INT(X)
- 1530 READ T$, S$: PRINT S$: LOCATE CSRLIN, INT(X)
- 1540 IF T$ = "SP" GOTO 1530
- 1550 RETURN
- 2500 REM EkriirkE's Draw lunar surface
- 2510 DEEP = 4: WIDE = 3
- 2520 Y = INT(RND(1) * DEEP) + 1: PC = 0: LX = 0
- 2530 FOR I = 1 TO COLS
- 2540 OY = Y
- 2550 IF PC = 0 THEN Y = Y + SGN(INT(RND(1) * 7) - 3)
- 2560 IF Y < 1 THEN Y = 1
- 2570 IF Y > DEEP THEN Y = DEEP
- 2580 IF LI + 1 = I AND Y = OY THEN GOTO 2550
- 2590 IF Y > OY THEN LOCATE ROWS - Y + 1: PRINT "/"; ELSE LOCATE ROWS - Y
- 2600 IF Y < OY THEN PRINT "\";
- 2610 IF Y = OY THEN PRINT "_"; : PC = PC + 1: IF PC >= WIDE THEN PC = 0: LI = I: IF LX = 0 OR RND(1) > .8 THEN LX = I - INT(WIDE / 2 + .5): LY = ROWS - Y - 1
- 2615 J = TIMER: WHILE TIMER - J < .05: WEND
- 2620 NEXT
- 2630 RETURN
- 9000 DATA SP,"(I)"
- 9010 DATA SE,"/T\"
- 9020 DATA SP,"(I)"
- 9030 DATA SP,"/T\"
- 9040 DATA SE," V "
- 9050 DATA SP," "
- 9060 DATA SP," "
- 9070 DATA SE," "
Add Comment
Please, Sign In to add comment