home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 37 / Commodore_Free_Issue_37_2010_Commodore_Computer_Club.d64 / listing < prev    next >
Text File  |  2023-02-26  |  3KB  |  111 lines

  1.  
  2.  
  3.  
  4.        ASTEROID BELT LISTING
  5.  
  6. 5 REM A SIMPLE ASTERIODS GAME BY
  7.  NIGEL PARKER FOR COMMODORE FREE
  8. 7 REM WE'LL DECLARE ALL OF THE
  9.  GLOBAL VARIABLES AND STRINGS USED
  10. LATER
  11. 8 REM IN THE PROGRAMME FIRST AS THIS
  12.  IS GOOD PRACTISE AND
  13. 9 REM ALSO MAKES THINGS JUST A
  14.  LITTLE QUICKER FOR BASIC LATER ON
  15. 10 A=0: B=A: C=A: I=A: S=A: A$=""
  16. 15 REM YOU CAN CREATE YOUR OWN TITLE
  17.  SCREEN FROM LINE 11
  18. 16 REM THROUGH TO 89 IF YOU WANT TO
  19. 88 REM RIGHT, LET'S CLEAR THE SCREEN
  20.  AND SET THE BORDER
  21. 89 REM AND BACKGROUND COLOUR TO
  22.  BLACK AND THE CHARACTERS WHITE
  23. 90 PRINT CHR$(147);:POKE 53280,0:
  24.  POKE 53281,0:POKE 646,1
  25. 99 REM NOW LETS SCROLL THE SCREEN
  26.  UPWARDS TO GET EVERYTHING READY TO
  27.   PLAY
  28. 100 FORI=0 TO 23:PRINT:NEXTI
  29. 109 REM HERE ARE THE FIRST OF THE
  30.  GLOBAL VARIABLES WE SET UP EARLIER
  31. 110 B=1504:C=20
  32. 111 REM THE VARIABLE B IS THE SHIP'S
  33.  ROW ON THE SCREEN
  34. 112 REM AND C IS FOR WHICH COLUMN IT
  35.  APPEARS IN (0 THROUGH TO 39)
  36. 120 A=INT(40*RND(1))
  37. 121 REM THE VARIABLE A IS A RANDOMLY
  38.  GENERATED NUMBER BETWEEN 0 AND 39
  39. 122 REM THIS IS USED IN THE POKE
  40.  BELOW TO RANDOMLY GENERATE WHERE THE
  41. 123 REM COLLECTIBLE DOTS WILL APPEAR
  42. 130 POKE 1984+A,46
  43. 131 REM LINE 140 WILL CREATE A
  44.  RANDOMLY GENERATED FLOATING POINT
  45.   NUMBER
  46. 132 REM GREATER THAN ZERO & NO MORE
  47.  THAN ONE, IF THIS IS GREATER THAT
  48. 133 REM 0.1 THEN IT POKES A STAR
  49.  ONTO THE SCREEN IN A RANDOM COLUMN
  50. 134 REM THE STARS MUST BE AVOIDED!
  51. 140 IF RND(1)>.1 THEN
  52.  P=INT(RND(1)*40):POKE P+1984,42
  53. 141 REM GET A$ WILL INPUT THE KEY
  54.  PRESS INTO THE STRING A$
  55. 142 REM THERE IS THEN A CONDITION TO
  56.  CHECK IF THE CONTENTS OF A$
  57. 143 REM ARE Z (WHICH MOVES THE CRAFT
  58.  LEFT) OR M (WHICH MOVES IT RIGHT)
  59. 144 REM THERE IS ALSO A SECOND
  60.  CONDITION: C MUST BE GREATER THAN
  61.   ZERO
  62. 145 REM TO MOVE LEFT AND LESS THAN
  63. 40 TO MOVE RIGHT, OBVIOUSLY BECAUSE
  64. 146 REM THE C64 HAS A 40-COLUMNS
  65.  DISPLAY
  66. 147 REM IF THERE HAS BEEN A KEY PRESS
  67.  OF LEFT OR RIGHT, & C IS GREATER
  68. 148 REM THAN ZERO AND LESS THAN 40,
  69.  THE OLD SCREEN POSITION OF THE SHIP
  70. 149 REM IS CLEARED BY POKING IT WITH
  71.  32 BEFORE CHANGING THE VALUE OF C
  72. 150 GET A$:IF A$="Z" AND C>0 THEN
  73.  POKEB+C,32:C=C-1
  74. 160 IF A$="M" AND C<40 THEN POKE
  75.  B+C,32:C=C+1
  76. 161 REM THIS BIT CLEARS POKES A SPACE
  77.  ONTO THE SCREEN AT THE PLAYER'S
  78. 162 REM LAST LOCATION DENOTED BY C
  79.  BEFORE SCROLLING IT ONE LINE-FEED
  80.   UPWARDS
  81. 170 POKE B+C,32
  82. 175 PRINT
  83. 178 REM THIS NOW PEEKS AT THE
  84.  LOCATION OF THE SHIP TO SEE IF AN
  85. 179 REM ASTERIOD IS PRESENT - IF SO,
  86.  IT JUMPS TO LINE 310
  87. 180 IF PEEK(B+C)=42 THEN GOTO 310
  88. 189 REM AND IF THERE IS A DOT
  89.  PRESENT, IT JUMPS TO A SUBROUTINE
  90.   AT LINE 400
  91. 190 IF PEEK(B+C)=46 THEN GOSUB 400
  92. 193 REM AND NOW WE POKE THE SHIP
  93. DENOTED BY A V ONTO THE SCREEN,
  94. JUMPING BACK
  95. 194 REM TO LINE 120 UNTIL THE
  96.  CONDITION AT LINE 180 IS MET (YOU
  97.   HIT AN ASTERIOD)
  98. 195 POKE B+C,22
  99. 300 GOTO120
  100. 309 REM LOOKS LIKE GAME IS OVER :-(
  101. 310 PRINT CHR$(147);
  102. 320 PRINT "SORRY YOU HIT AN ASTEROID"
  103. 330 PRINT "YOU SCORED ";S;"POINTS"
  104. 331 PRINT
  105. 332 END
  106. 399 REM WELL, YOU SCORE 10 POINTS
  107.  FOR COLLECTING A DOT
  108. 400 FOR I=0 TO 16:POKE 53280,I:
  109.  NEXTI:S=S+10:RETURN
  110.  
  111.