EkriirkE

ESLANDER.BAS

Jul 12th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 100 REM BASIC Month 4: Lunar Corps
  2. 110 REM http://reddit.com/r/RetroBattlestations
  3. 120 REM written by FozzTexx
  4. 130 REM modified by EkriirkE
  5.  
  6. 200 REM Clear screen and setup variables
  7. 210 CLS : RANDOMIZE TIMER
  8. 220 COLS = 80: ROWS = 24
  9. 230 ITER = 10
  10.  
  11. 300 GOSUB 2510
  12. 310 YS = SQR(2) * SQR(LY) * ITER - 1
  13. 320 XV = LX / YS: YV = 0
  14. 330 X = 1: Y = 1
  15.  
  16. 400 LE$ = SPACE$(9)
  17. 410 LM$ = "(I)/T\": ML$ = "(I)/T\ V "
  18. 420 FOR I = 1 TO YS
  19. 430 SP$ = LE$: GOSUB 1510
  20. 440 YV = YV + .9 / (ITER * ITER)
  21. 450 X = X + XV: Y = Y + YV
  22. 460 IF Y >= ROWS / 2.5 THEN SP$ = ML$ ELSE SP$ = LM$
  23. 470 GOSUB 1510
  24. 480 J = TIMER: WHILE TIMER - J < 1 / ITER: WEND
  25. 490 NEXT I
  26. 500 SP$ = LE$: GOSUB 1510
  27. 510 X = LX: Y = LY
  28. 520 SP$ = LM$: GOSUB 1510
  29. 530 SP$ = "The Eagle has landed": LOCATE ROWS / 2, (COLS - LEN(SP$)) / 2: PRINT SP$
  30.  
  31. 999 END
  32.  
  33. 1500 REM EkriirkE's Draw sprite in SP$ at X, Y
  34. 1510 IF Y < 1 OR Y >= ROWS OR X < 1 OR X >= COLS THEN RETURN
  35. 1520 FOR J = 1 TO LEN(SP$) STEP 3
  36. 1530 LOCATE Y + J / 3, INT(X): PRINT MID$(SP$, J, 3)
  37. 1540 NEXT
  38. 1550 RETURN
  39.  
  40. 2500 REM EkriirkE's Draw lunar surface
  41. 2510 DEEP = 4: WIDE = 3
  42. 2520 Y = INT(RND(1) * DEEP) + 1: PC = 0: LX = 0
  43. 2530 FOR I = 1 TO COLS
  44. 2540 OY = Y
  45. 2550 IF PC = 0 THEN Y = Y + SGN(INT(RND(1) * 7) - 3)
  46. 2560 IF Y < 1 THEN Y = 1
  47. 2570 IF Y > DEEP THEN Y = DEEP
  48. 2580 IF LI + 1 = I AND Y = OY THEN GOTO 2550
  49. 2590 IF Y > OY THEN LOCATE ROWS - Y + 1: PRINT "/";  ELSE LOCATE ROWS - Y
  50. 2600 IF Y < OY THEN PRINT "\";
  51. 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
  52. 2615 J = TIMER: WHILE TIMER - J < .05: WEND
  53. 2620 NEXT
  54. 2630 RETURN
Add Comment
Please, Sign In to add comment