Author Topic: QB games collection ...  (Read 4307 times)

0 Members and 1 Guest are viewing this topic.

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
QB games collection ...
« on: October 24, 2020, 09:46:27 am »
Hello
I have some sort of game collection which i never tried before
well i don't know from where I have it or i simply cannot remember where i found it
name of folder is QBGames  ..so i think that are for QBasic...but i decide to compile it with QB64 to see
do work or not
and on my surprise some works ...because i cannot post it under games board of this forum i will post one
here ...i hope that i will not disturb anyone with that .
This game is let say funny it looks like invaders arrow keys and voila..
I compiled it on my win7_32bit ..game is by Andre ? who is that i don't know ..
here is a code:

Code: QB64: [Select]
  1. DECLARE SUB TITLE ()
  2. DECLARE SUB SHOW.SCORES (L%, H%)
  3. DECLARE SUB MIDDLE2 (row%, Text$)
  4. DECLARE SUB SORT.SCORES ()
  5. DECLARE SUB SAVE.SCORES ()
  6. DECLARE SUB WORD (PROMPT$, VAR$)
  7. DECLARE SUB CHECK.SCORES ()
  8. DECLARE SUB MIDDLE (row%, Text$)
  9. DECLARE SUB FORWARD ()
  10. DECLARE SUB MESSAGE (M$, OK$)
  11. DECLARE SUB SHOW.LEVEL ()
  12. DECLARE SUB SHOW (A%, TX%, TY%)
  13. DECLARE SUB GET.PIC (ARRAY%())
  14. DECLARE SUB MILLIDELAY (msecs%)
  15. DECLARE FUNCTION GET.SIZE% (X1%, Y1%, X2%, Y2%)
  16. DECLARE SUB BOX.BAR (X1%, Y1%, X2%, Y2%, COL1%, COL2%, CS%, WIDE%)
  17. DECLARE SUB WIDE.BAR (X1%, Y1%, MIN.COL%, COLOURS%, H.OR.V%, W%, CS%)
  18. DECLARE FUNCTION MENU% (OPT$(), VALID%())
  19. DECLARE SUB BAR (X1%, Y1%, MIN.COL%, COLOURS%, H.OR.V%, W%, CS%)
  20. DEFINT A-Z
  21.  
  22. SCREEN 12: WIDTH 80, 60: CLS
  23. DIM SHARED P1(202): GET.PIC P1()
  24. DIM SHARED P2(202): GET.PIC P2()
  25. DIM SHARED P3(202): GET.PIC P3()
  26. DIM SHARED P4(202): GET.PIC P4()
  27. DIM SHARED P5(202): GET.PIC P5()
  28. 'DIM SHARED P6(202): GET.PIC P6()
  29.  
  30. DIM SHARED LEVEL(32, 23)
  31. DIM SHARED PX(2), PA(2), PS(2) AS LONG, N(2) AS STRING
  32. MILLIDELAY 0
  33. DIM SHARED LEVEL: LEVEL = 1
  34. DIM SHARED BLOCKS: BLOCKS = 16
  35. DIM SHARED SPEED: SPEED = 20
  36. DIM SHARED TIMES: TIMES = 100
  37. DIM SHARED PLAYERS: PLAYERS = 1
  38. DIM SHARED COUNT: COUNT = 0
  39. DIM SHARED DIST: DIST = 0
  40. DIM MAIN$(4), MAINV(4)
  41. FOR A = 1 TO 4: MAINV(A) = 1: NEXT A
  42. MAIN$(1) = "One Player"
  43. MAIN$(2) = "Two Players"
  44. MAIN$(3) = "High Scores"
  45. MAIN$(4) = "Exit"
  46.  
  47. DIM LEV$(11), LEVV(11)
  48. LEVV(1) = 1
  49. LEVV(11) = 1
  50. LEV$(1) = "Level One"
  51. LEV$(2) = "Level Two"
  52. LEV$(3) = "Level Three"
  53. LEV$(4) = "Level Four"
  54. LEV$(5) = "Level Five"
  55. LEV$(6) = "Level Six"
  56. LEV$(7) = "Level Seven"
  57. LEV$(8) = "Level Eight"
  58. LEV$(9) = "Level Nine"
  59. LEV$(10) = "Level Ten"
  60. LEV$(11) = "Main Menu"
  61.  
  62. DIM SHARED PERSON(10, 10) AS STRING
  63. DIM SHARED SCORE(10, 10)
  64. FOR A = 1 TO 10
  65. FOR B = 1 TO 10
  66. PERSON(A, B) = "Mr. Nobody": SCORE(A, B) = 0
  67. ON ERROR GOTO MAKE.FILE
  68. OPEN "DROIDS.DAT" FOR INPUT AS #F
  69. FOR A = 1 TO 10
  70. FOR B = 1 TO 10
  71. INPUT #F, PERSON(A, B), SCORE(A, B)
  72.  
  73. STARTUP:
  74. TITLE
  75. MESSAGE "DROIDS - By Andre'", "OK"
  76. ST2:
  77. A = MENU(MAIN$(), MAINV())
  78. CASE 1 TO 2: PLAYERS = A
  79. FOR A = 1 TO 10
  80. SHOW.SCORES A, 0
  81. GOTO ST2
  82. MESSAGE "End Program?", "OK"
  83.  
  84. A = MENU(LEV$(), LEVV())
  85. CASE 1 TO 10: LEVEL = A
  86.  
  87. START:
  88. IF LEVEL > 10 THEN MESSAGE "Game is Done - You won!", "OK": GOTO STARTUP
  89. SELECT CASE LEVEL
  90. CASE 1: TIMES = 50: BLOCKS = 20
  91. CASE 2: TIMES = 45: BLOCKS = 22
  92. CASE 3: TIMES = 41: BLOCKS = 24
  93. CASE 4: TIMES = 37: BLOCKS = 26
  94. CASE 5: TIMES = 34: BLOCKS = 28
  95. CASE 6: TIMES = 30: BLOCKS = 30
  96. CASE 7: TIMES = 27: BLOCKS = 30
  97. CASE 8: TIMES = 25: BLOCKS = 30
  98. CASE 9: TIMES = 23: BLOCKS = 30
  99. CASE 10: TIMES = 15: BLOCKS = 32
  100. LEVV(LEVEL) = 1
  101. FOR Y = 1 TO 23
  102. FOR X = 1 TO 32
  103. LEVEL(X, Y) = 0
  104. COUNT = 0
  105. FOR A = 1 TO PLAYERS
  106. PX(A) = INT(RND * 32) + 1
  107. PA(A) = 1
  108. PS(A) = 0
  109. DIST = 0
  110.  
  111. FOR A = 1 TO 15: FORWARD: NEXT A
  112. SHOW.LEVEL
  113. MESSAGE "Level" + STR$(LEVEL) + "!", "GO"
  114. C = 0
  115. FOR A = 1 TO PLAYERS
  116. IF PA(A) THEN
  117. IF PX(A) < 8 THEN PX(A) = 24
  118. IF PX(A) > 24 THEN PX(A) = 8
  119. SHOW A, PX(A), 24
  120. C = C + 1
  121. SHOW 5, PX(A), 24
  122. IF C = PLAYERS THEN
  123. MESSAGE "GAME OVER!", "No"
  124. IF PLAYERS = 2 THEN
  125. IF PS(1) > PS(2) THEN MESSAGE "Player One Won! Score -" + STR$(PS(1)), "OK"
  126. IF PS(2) > PS(1) THEN MESSAGE "Player Two Won! Score -" + STR$(PS(2)), "OK"
  127. IF PS(1) = PS(2) THEN MESSAGE "It's a draw! Score -" + STR$(PS(1)), "OK"
  128. MESSAGE "Your Score -" + STR$(PS(1)), "OK"
  129. CHECK.SCORES
  130. GOTO STARTUP
  131. MILLIDELAY SPEED
  132. COUNT = COUNT + 1
  133. IF COUNT > TIMES THEN FORWARD: COUNT = 0: DIST = DIST + 1: SHOW.LEVEL
  134. IF DIST = 20 AND COUNT = 1 THEN MESSAGE "You're halfway there!", "OK"
  135. IF DIST = 35 AND COUNT = 1 THEN MESSAGE "Almost done it!", "OK"
  136. IF DIST > 40 THEN
  137. MESSAGE "You did it!", "OK"
  138. IF PLAYERS = 2 THEN
  139. IF PS(1) > PS(2) THEN MESSAGE "Player One Won! Score -" + STR$(PS(1)), "OK"
  140. IF PS(2) > PS(1) THEN MESSAGE "Player Two Won! Score -" + STR$(PS(2)), "OK"
  141. IF PS(1) = PS(2) THEN MESSAGE "It's a draw! Score -" + STR$(PS(1)), "OK"
  142. MESSAGE "Your Score -" + STR$(PS(1)), "OK"
  143. CHECK.SCORES
  144. LEVEL = LEVEL + 1: GOTO START
  145. FOR A = 1 TO PLAYERS
  146. SHOW 0, PX(A), 24
  147. LOOP WHILE KP = ""
  148. CASE "P": MESSAGE "Game is Paused", "OK"
  149. CASE CHR$(27): MESSAGE "Exit Now?", "OK": GOTO STARTUP
  150. CASE CHR$(0) + "K": IF PA(1) THEN PX(1) = PX(1) - 1
  151. CASE CHR$(0) + "M": IF PA(1) THEN PX(1) = PX(1) + 1
  152. CASE "A": IF PA(2) THEN PX(2) = PX(2) - 1
  153. CASE "D": IF PA(2) THEN PX(2) = PX(2) + 1
  154. CASE "~": LEVEL = LEVEL + 1: MESSAGE "Cheat!!? ---> Yes", "OK": GOTO START
  155. CASE CHR$(0) + "H"
  156. IF PA(1) THEN
  157. FOR Y = 23 TO 10 STEP -1
  158. X = PX(1)
  159. SELECT CASE LEVEL(X, Y)
  160. PS(1) = PS(1) + 1
  161. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 9, BF
  162. SHOW 5, X, Y
  163. PLAY "O5MBT255L64ABCDEFGABCDEFG"
  164. MILLIDELAY 50
  165. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 0, BF
  166. SHOW 0, X, Y
  167. LEVEL(X, Y) = 0
  168. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 12, BF
  169. PLAY "O3MBT255L64ABCDEFGABCDEFG"
  170. MILLIDELAY 50
  171. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 0, BF
  172. CASE "W"
  173. IF PA(2) THEN
  174. FOR Y = 23 TO 10 STEP -1
  175. X = PX(2)
  176. SELECT CASE LEVEL(X, Y)
  177. PS(2) = PS(2) + 1
  178. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 9, BF
  179. SHOW 5, X, Y
  180. PLAY "O5MBT255L64ABCDEFGABCDEFG"
  181. MILLIDELAY 100
  182. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 0, BF
  183. SHOW 0, X, Y
  184. LEVEL(X, Y) = 0
  185. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 12, BF
  186. PLAY "O3MBT255L64ABCDEFGABCDEFG"
  187. MILLIDELAY 100
  188. LINE (((X - 1) * 20) + 4, 460)-((X * 20) - 4, (Y * 20)), 0, BF
  189.  
  190.  
  191. BAD:
  192. MESSAGE "Whoops! An error has come up!", "OK"
  193. RESUME STARTUP
  194.  
  195. MAKE.FILE:
  196. OPEN "DROIDS.DAT" FOR OUTPUT AS #F
  197. FOR A = 1 TO 10
  198. FOR B = 1 TO 10
  199. WRITE #F, PERSON(A, B), SCORE(A, B)
  200. RESUME STARTUP
  201.  
  202. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  203. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  204. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,15,15,  ,  ,  ,  ,  ,  ,  ,  ,
  205. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,15,15,  ,  ,  ,  ,  ,  ,  ,  ,
  206. DATA   ,  ,  ,  ,12,12,12,  ,  ,15,15,  ,  ,12,12,12,  ,  ,  ,
  207. DATA   ,  ,  ,  ,12,14,12,  ,  ,15,15,  ,  ,12,14,12,  ,  ,  ,
  208. DATA   ,  ,  ,  ,12,12,12,  ,  ,15,15,  ,  ,12,12,12,  ,  ,  ,
  209. DATA   ,  ,  ,  ,12,12,12,12,  ,15,15,  ,12,12,12,12,  ,  ,  ,
  210. DATA   ,  ,  ,  ,  ,12,12,12,12,12,12,12,12,12,12,  ,  ,  ,  ,
  211. DATA   ,  ,12,  ,  ,  ,12,12,12,13,13,12,12,12,  ,  ,  ,12,  ,
  212. DATA   ,12,14,12,  ,  ,12,10,10,13,13,10,10,12,  ,  ,12,14,12,
  213. DATA   ,12,12,12,  ,  ,12,10,10, 7, 7,10,10,12,  ,  ,12,12,12,
  214. DATA   ,12,12,12,  ,  ,12,10,10,13,13,10,10,12,  ,  ,12,12,12,
  215. DATA   ,12,12,12,  ,  ,12,12,12, 7, 7,12,12,12,  ,  ,12,12,12,
  216. DATA   ,12,12,12,12,12,12,12,12,13,13,12,12,12,12,12,12,12,12,
  217. DATA   ,  ,12,12,12,12,12,12,12, 7, 7,12,12,12,12,12,12,12,  ,
  218. DATA   ,  ,  ,12,12,12,12,12,12,12,12,12,12,12,12,12,12,  ,  ,
  219. DATA   ,  ,15,  ,  ,12,12,12,12,  ,  ,12,12,12,12,  ,  ,15,  ,
  220. DATA   ,  ,15,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,15,  ,
  221. DATA   ,  ,15,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,15,  ,
  222.  
  223. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  224. DATA   ,  ,15,15,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,15,15,  ,
  225. DATA   ,  ,15,15,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,15,15,  ,
  226. DATA   ,  ,15,15,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,15,15,  ,
  227. DATA   ,  ,15,15,  ,  ,  ,10,  ,  ,  ,  ,10,  ,  ,  ,15,15,  ,
  228. DATA   ,  ,12,12,  ,  ,  ,10,10,10,10,10,10,  ,  ,  ,12,12,  ,
  229. DATA   ,  ,12,12,12,  ,  ,10,13,10,10,13,10,  ,  ,12,12,12,  ,
  230. DATA   ,  ,  ,12,12,12,  ,10,13,10,10,13,10,  ,12,12,12,  ,  ,
  231. DATA   ,  ,  ,  ,12,12,12,12,12,12,12,12,12,12,12,12,  ,  ,  ,
  232. DATA   ,  ,  ,  ,  ,12,12,12,12,12,12,12,12,12,12,  ,  ,  ,  ,
  233. DATA   ,  ,  ,  ,12,12,14,14,12,12,12,12,14,14,12,12,  ,  ,  ,
  234. DATA   ,  ,  ,12,12,14,  ,  ,14,12,12,14,  ,  ,14,12,12,  ,  ,
  235. DATA   ,  ,  ,12,12,14,  ,  ,14,12,12,14,  ,  ,14,12,12,  ,  ,
  236. DATA   ,  ,12,12,12,12,14,14,12,12,12,12,14,14,12,12,12,12,  ,
  237. DATA   ,  ,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,  ,
  238. DATA   ,  ,  ,12,12,12,12,12,12,  ,  ,12,12,12,12,12,12,  ,  ,
  239. DATA   ,  ,  ,12,12,12,12,12,  ,  ,  ,  ,12,12,12,12,12,  ,  ,
  240. DATA   ,  ,15,  ,12,12,12,12,  ,  ,  ,  ,12,12,12,12,  ,15,  ,
  241. DATA   ,  ,15,  ,  ,12,12,  ,  ,  ,  ,  ,  ,12,12,  ,  ,15,  ,
  242. DATA   ,  ,15,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,15,  ,
  243.  
  244. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  245. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  246. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  247. DATA   ,  ,  ,10,10,10,10,10,  ,  ,  ,  ,10,10,10,10,10,  ,  ,
  248. DATA   ,  ,10,10,10,  ,10,10,10,  ,  ,10,10,10,  ,10,10,10,  ,
  249. DATA   ,10,10,10,10,10,  ,10,10,10,10,10,10,  ,10,10,10,10,10,
  250. DATA   ,10,10,10,10,12,10,  ,10,10,1 ,10,  ,10,12,10,10,10,10,
  251. DATA   ,10,10,10,12,  ,12,10,  ,10,10,  ,10,12,  ,12,10,10,10,
  252. DATA   ,  ,10,10,10,12,10,10,10,10,10,10,10,10,12,10,10,10,  ,
  253. DATA   ,  ,  ,10,10,10,10,10,10,10,10,10,10,10,10,10,10,  ,  ,
  254. DATA   ,  ,  ,10,10,10,10,10,12,12,12,12,10,10,10,10,10,  ,  ,
  255. DATA   ,  ,  ,10,10,10,10,12,10,10,10,10,12,10,10,10,10,  ,  ,
  256. DATA   ,  ,10,10,10,10,12,10,10,  ,  ,10,10,12,10,10,10,10,  ,
  257. DATA   ,  ,10,  ,10,10,10,10,  ,  ,  ,  ,10,10,10,10,  ,10,  ,
  258. DATA   ,  ,10,  ,10,  ,  ,10,  ,  ,  ,  ,10,  ,  ,10,  ,10,  ,
  259. DATA   ,  ,10,  ,10,  ,  ,10,  ,  ,  ,  ,10,  ,  ,10,  ,10,  ,
  260. DATA   ,  ,10,  ,10,  ,  ,  ,10,  ,  ,10,  ,  ,  ,10,  ,10,  ,
  261. DATA   ,10,  ,  ,  ,10,  ,  ,10,  ,  ,10,  ,  ,10,  ,  ,  ,10,
  262. DATA   ,10,  ,  ,  ,10,  ,10,  ,  ,  ,  ,10,  ,10,  ,  ,  ,10,
  263. DATA   ,10,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,10,
  264.  
  265. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  266. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  267. DATA   ,  ,  , 7, 7, 7,  ,  ,  ,  , 7, 7,  ,  ,  ,  ,  ,  ,  ,
  268. DATA   ,  , 7, 8, 7, 8, 7,  , 7, 7, 7, 8, 7,  , 7, 7,  ,  ,  ,
  269. DATA   , 7, 8, 7, 7, 8, 7, 7, 8, 7, 7, 7, 8, 7, 7, 8, 7, 7,  ,
  270. DATA   , 7, 7, 8, 7, 7, 7, 8, 7, 7, 7, 8, 7, 7, 8, 7, 8, 7, 7,
  271. DATA   ,  , 7, 7, 7, 8, 7, 7, 7, 8, 7, 7, 7, 8, 7, 7, 7, 8, 7,
  272. DATA   ,  , 7, 7, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 8, 7, 7, 7,
  273. DATA   ,  ,  , 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7,
  274. DATA   ,  ,  ,  , 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7,  ,
  275. DATA   ,  ,  ,  , 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7,  ,  ,
  276. DATA   ,  ,  ,  , 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 8, 7,  ,  ,
  277. DATA   ,  ,  , 7, 7, 7, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7,  ,  ,  ,
  278. DATA   ,  ,  , 7, 8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 8, 7, 7,  ,  ,
  279. DATA   ,  , 7, 8, 7, 8, 7, 7, 7, 7, 8, 7, 7, 7, 8, 7, 7,  ,  ,
  280. DATA   ,  , 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 8, 7,  ,  ,
  281. DATA   ,  , 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 7, 7, 7, 7,  ,  ,  ,
  282. DATA   ,  ,  , 7, 7, 7, 7,  ,  ,  , 7, 7, 7, 7, 8, 7,  ,  ,  ,
  283. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 7, 7, 7,  ,  ,  ,  ,
  284. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  285.  
  286. DATA   ,  ,  ,  ,  ,15,15,  ,  ,15,15,  ,15,15,15,  ,15,15,  ,
  287. DATA   ,  ,  ,  ,  ,15,  ,15,  ,15,  ,  ,15,  ,15,  ,15,  ,15,
  288. DATA   ,  ,  ,  ,  ,15,  ,15,  ,15,15,  ,15,15,15,  ,15,  ,15,
  289. DATA   ,  ,  ,  ,  ,15,  ,15,  ,15,  ,  ,15,  ,15,  ,15,  ,15,
  290. DATA   ,  ,  ,  ,  ,15,15,  ,  ,15,15,  ,15,  ,15,  ,15,15,  ,
  291. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,
  292. DATA   ,  ,  ,  ,  ,  ,  ,  ,12,12,  ,12,12,  ,  ,  ,  ,  ,  ,
  293. DATA   ,  ,  ,  ,  ,  ,12,12,12,12,12,12,12,12,  ,  ,  ,  ,  ,
  294. DATA   ,  ,  ,  ,  ,12,12,12,12,12,12,12,12,12,12,  ,  ,  ,  ,
  295. DATA   ,  ,  ,  ,12,12,12,12,12, 4,12,12,12,12,12,12,12,  ,  ,
  296. DATA   ,  ,  ,12,12,12,12,12,12, 4,12,12,12,12, 4,12,12,12,  ,
  297. DATA   ,  ,12,12, 4,12, 4,12,12, 4,12,12,12,12, 4,12, 4,12,12,
  298. DATA   ,  ,12,12, 4,12, 4,12,12, 4,12,12,12,12, 4,12, 4,12,12,
  299. DATA   ,  ,  ,12, 4,12, 4,12,12, 4,12,12,12,12, 4,12, 4,12,12,
  300. DATA   ,  ,  ,12, 4,12, 4,12,12, 4,12, 4,12,12,  ,12, 4,12, 4,
  301. DATA   ,  ,  ,  , 4,  , 4,12,12, 4,12, 4,12,12,  ,  , 4,12, 4,
  302. DATA   ,  ,  ,  ,  ,  , 4,12,12,12,12, 4,12,12,  ,  , 4,12, 4,
  303. DATA   ,  ,  ,  ,  ,  ,  ,12,  ,12,12, 4,12,  ,  ,  ,  ,12,  ,
  304. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,12, 4,  ,  ,  ,  ,  ,  ,  ,
  305. DATA   ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 4,  ,  ,  ,  ,  ,  ,  ,
  306.  
  307. TS:
  308. DATA  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  309. DATA  1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  310. DATA  1,  ,  , 1, 1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  311. DATA  1,  ,  , 1,  , 1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,  ,  ,  ,  ,  , 1
  312. DATA  1,  ,  , 1,  , 1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,  ,  ,  ,  ,  , 1
  313. DATA  1,  ,  , 1,  , 1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,1 ,1 ,  ,1 ,  ,  ,  ,  ,  , 1
  314. DATA  1,  ,  , 1,  , 1,  , 1, 1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,  ,  ,  ,1 ,  ,  ,  ,  ,  , 1
  315. DATA  1,  ,  , 1, 1,  ,  , 1,  , 1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,1 ,1 ,  ,  ,  ,  ,  ,  ,  , 1
  316. DATA  1,  ,  ,  ,  ,  ,  , 1, 1,  ,  ,1 ,1 ,1 ,  , 1,  ,1 ,1 ,  ,  ,  ,  ,1 ,  ,1 ,  ,  ,  ,  ,  , 1
  317. DATA  1,  ,  ,  ,  ,  ,  , 1,  , 1,  ,1 ,  ,1 ,  , 1,  ,1 ,  ,1 ,  ,1 ,1 ,1 ,  ,  ,  ,  ,  ,  ,  , 1
  318. DATA  1,  ,  ,  ,  ,  ,  , 1,  , 1,  ,1 ,  ,1 ,  , 1,  ,1 ,  ,1 ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  319. DATA  1,  ,  ,  ,  ,  ,  , 1,  , 1,  ,1 ,  ,1 ,  , 1,  ,1 ,  ,1 ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  320. DATA  1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,  ,1 ,  , 1,  ,1 ,  ,1 ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  321. DATA  1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,1 ,1 ,1 ,  , 1,  ,1 ,1 ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  322. DATA  1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  323. DATA  1,  ,1 ,1 ,  ,  ,  ,  ,  ,  ,  ,1 ,1 ,1 ,  ,  ,  ,  ,  ,  ,  ,1 ,  ,  ,  ,  ,  ,1 , 1,1 ,  , 1
  324. DATA  1,  ,1 ,  ,1 ,  ,  ,  ,  ,  ,  ,1 ,  ,1 ,  ,  ,  ,  ,  ,  ,  ,1 ,  ,  ,  ,  ,  ,1 ,  ,1 ,  , 1
  325. DATA  1,  ,1 ,1 ,  ,  ,1 ,  ,1 ,  ,  ,1 , 1,1 ,  ,1 ,1 ,1 ,  ,1 ,1 ,1 ,  ,1 ,1 ,1 ,  ,1 ,1 ,1 ,  , 1
  326. DATA  1,  ,1 ,  ,1 ,  ,1 ,  ,1 ,  ,  ,1 ,  ,1 ,  ,1 ,  ,1 ,  ,1 ,  ,1 ,  ,1 ,  ,  ,  ,1 ,  ,  ,  , 1
  327. DATA  1,  ,1 ,1 ,  ,  ,  ,1 ,1 ,  ,  ,1 ,  ,1 ,  ,1 ,  ,1 ,  ,1 ,1 ,1 ,  ,1 ,  ,  ,  ,1 , 1,1 ,  , 1
  328. DATA  1,  ,  ,  ,  ,  ,  ,  ,1 ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  329. DATA  1,  ,  ,  ,  ,  ,1 ,1 ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  330. DATA  1,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 1
  331. DATA  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  332.  
  333. SUB BAR (X1, Y1, MIN.COL, COLOURS, H.OR.V, W, CS)
  334.  
  335. H = 0
  336. V = 1
  337.  
  338. X = X1: Y = Y1
  339.  
  340. FOR Col = MIN.COL TO COLOURS STEP CS
  341. LINE (X, Y)-(X + (W - 1), Y), Col
  342. Y = Y + 1
  343. LINE (X, Y)-(X, Y + (W - 1)), Col
  344. X = X + 1
  345.  
  346. NEXT Col
  347.  
  348. SUB BOX.BAR (X1, Y1, X2, Y2, COL1, COL2, CS, WIDE)
  349.  
  350. IF WIDE THEN
  351. SELECT CASE SGN(COL2 - COL1)
  352. CASE -1: WID = (COL1 - COL2) - -1
  353. CASE 1: WID = (COL2 - COL1) - -1
  354.  
  355. WIDE.BAR X1, Y1, COL1, COL2, 1, Y2 - Y1, CS
  356. WIDE.BAR X1, Y2 - (WID * 2), COL1, COL2, 0, X2 - X1, CS
  357. WIDE.BAR X1, Y1, COL1, COL2, 0, X2 - X1, CS
  358. WIDE.BAR X2 - (WID * 2), Y1, COL1, COL2, 1, Y2 - Y1, CS
  359. SELECT CASE SGN(COL2 - COL1)
  360. CASE -1: WID = (COL1 - COL2) - -1
  361. CASE 1: WID = (COL2 - COL1) - -1
  362. BAR X1, Y1, COL1, COL2, 1, Y2 - Y1, CS
  363. BAR X1, Y2 - WID, COL1, COL2, 0, X2 - X1, CS
  364. BAR X1, Y1, COL1, COL2, 0, X2 - X1, CS
  365. BAR X2 - WID, Y1, COL1, COL2, 1, Y2 - Y1, CS
  366.  
  367. SUB CHECK.SCORES
  368. IF PLAYERS = 2 THEN
  369.  
  370. IF PS(1) > SCORE(LEVEL, 10) AND PS(1) > PS(2) THEN
  371. MESSAGE "Player One has a high score!", "OK"
  372. WORD "Name of Player One: ", N(1)
  373. N(1) = RTRIM$(LEFT$(N(1), 15))
  374. SCORE(LEVEL, 10) = PS(1): PERSON(LEVEL, 10) = N(1)
  375. SORT.SCORES
  376. IF PS(2) > SCORE(LEVEL, 10) THEN
  377. MESSAGE "Player Two has a high score!", "OK"
  378. WORD "Name of Player Two: ", N(2)
  379. N(2) = RTRIM$(LEFT$(N(2), 15))
  380. SCORE(LEVEL, 10) = PS(2): PERSON(LEVEL, 10) = N(2)
  381. SORT.SCORES
  382.  
  383. IF PS(2) > SCORE(LEVEL, 10) AND PS(2) > PS(1) THEN
  384. MESSAGE "Player Two has a high score!", "OK"
  385. WORD "Name of Player Two: ", N(2)
  386. N(2) = RTRIM$(LEFT$(N(2), 15))
  387. SCORE(LEVEL, 10) = PS(2): PERSON(LEVEL, 10) = N(2)
  388. SORT.SCORES
  389. IF PS(1) > SCORE(LEVEL, 10) THEN
  390. MESSAGE "Player One has a high score!", "OK"
  391. WORD "Name of Player One: ", N(1)
  392. N(1) = RTRIM$(LEFT$(N(1), 15))
  393. SCORE(LEVEL, 10) = PS(1): PERSON(LEVEL, 10) = N(1)
  394. SORT.SCORES
  395.  
  396. IF PS(1) > SCORE(LEVEL, 10) AND PS(2) = PS(1) THEN
  397. MESSAGE "You both have a high score!", "OK"
  398. WORD "Combined Name: ", N(1)
  399. N(1) = RTRIM$(LEFT$(N(1), 15))
  400. SCORE(LEVEL, 10) = PS(1): PERSON(LEVEL, 10) = N(1)
  401. SORT.SCORES
  402. IF PS(1) > SCORE(LEVEL, 10) THEN
  403. MESSAGE "You have a high score!", "OK"
  404. WORD "Your name: ", N(1)
  405. N(1) = RTRIM$(LEFT$(N(1), 15))
  406. SCORE(LEVEL, 10) = PS(1): PERSON(LEVEL, 10) = N(1)
  407. SORT.SCORES
  408. SORT.SCORES
  409. SAVE.SCORES
  410. SHOW.SCORES LEVEL, 1
  411.  
  412. SUB FORWARD
  413.  
  414. FOR A = 1 TO PLAYERS
  415. IF LEVEL(PX(A), 23) = 4 OR LEVEL(PX(A), 23) = 3 THEN PA(A) = 0: PLAY "O3MBT255L64ABCDEFGABCDEFG"
  416. FOR Y = 22 TO 1 STEP -1
  417. FOR X = 1 TO 32
  418. LEVEL(X, Y + 1) = LEVEL(X, Y)
  419. FOR X = 1 TO 32
  420. LEVEL(X, 1) = 0
  421. FOR A = 1 TO BLOCKS
  422. X = INT(RND * 32) + 1
  423. IF LEVEL(X, 1) = 0 THEN LEVEL(X, 1) = 2 + (INT(RND * 2) + 1): EXIT DO
  424.  
  425. SUB GET.PIC (ARRAY())
  426. FOR Y = 1 TO 20
  427. FOR X = 1 TO 20
  428. READ A: PSET (X - 1, Y - 1), A
  429. GET (0, 0)-(19, 19), ARRAY
  430.  
  431. FUNCTION GET.SIZE (X1, Y1, X2, Y2)
  432. GET.SIZE = 4 + INT(((PMAP(X2, 0) - PMAP(X1, 0) + 1) * (8) + 7) / 8) * 1 * (PMAP(Y2, 1) - PMAP(Y1, 1) + 1)
  433.  
  434. FUNCTION MENU (OPT$(), VALID())
  435.  
  436. VCOL = 14
  437. NCOL = 12
  438. BCOL = 4
  439. SBARCOL = 9
  440.  
  441. OPTIONS = UBOUND(OPT$)
  442.  
  443. MAX.LEN = 0
  444.  
  445. FOR A = 1 TO OPTIONS
  446. IF LEN(OPT$(A)) > MAX.LEN THEN MAX.LEN = LEN(OPT$(A))
  447.  
  448. XWIDTH = (MAX.LEN + 2) * 8
  449. YWIDTH = (OPTIONS + 2) * 8
  450.  
  451. DIM TMP(GET.SIZE(0, 0, XWIDTH, YWIDTH))
  452. DIM SBAR(GET.SIZE(0, 0, MAX.LEN * 8, 7))
  453. GET (0, 0)-(XWIDTH, YWIDTH), TMP
  454. LINE (0, 0)-(MAX.LEN * 8, 7), SBARCOL, BF
  455. GET (0, 0)-(MAX.LEN * 8, 7), SBAR
  456.  
  457. LINE (0, 0)-(XWIDTH, YWIDTH), 0, BF
  458. BOX.BAR 0, 0, XWIDTH, YWIDTH, 4, 6, 1, 1
  459. LINE (6, 6)-(XWIDTH - 7, YWIDTH - 7), BCOL, B
  460. LINE (0, 0)-(XWIDTH, YWIDTH), BCOL, B
  461.  
  462. FOR A = 1 TO OPTIONS
  463. IF VALID(A) THEN COLOR VCOL ELSE COLOR NCOL
  464. LOCATE A + 1, 2: PRINT OPT$(A)
  465.  
  466. row = 1
  467.  
  468. IF row < 1 THEN row = OPTIONS
  469. IF row > OPTIONS THEN row = 1
  470. PUT (8, (row * 8)), SBAR
  471.  
  472.  
  473. LOOP WHILE KP = ""
  474.  
  475. PUT (8, (row * 8)), SBAR:
  476. CASE CHR$(27): row = 0: EXIT DO
  477. CASE CHR$(13), "5", " ": IF VALID(row) THEN EXIT DO
  478. CASE CHR$(0) + "H", "8": row = row - 1
  479. CASE CHR$(0) + "P", "2": row = row + 1
  480. CASE CHR$(0) + "K", "4": row = row - 1
  481. CASE CHR$(0) + "M", "6": row = row + 1
  482.  
  483.  
  484. PUT (0, 0), TMP, PSET
  485. MENU = row
  486.  
  487. SUB MESSAGE (M$, OK$)
  488.  
  489. L = LEN(M$)
  490. MaxCol = 80
  491. Col = MaxCol \ 2
  492.  
  493. C1 = ((Col - L / 2) - 2) + .5: C2 = C1 + (L + 3)
  494.  
  495. DIM TMP(1 TO GET.SIZE(((C1 - 1) * 8), (28 - 1) * 8, (C2 * 8), (34 - 1) * 8))
  496. GET (((C1 - 1) * 8), (28 - 1) * 8)-((C2 * 8), (34 - 1) * 8), TMP
  497. LINE (((C1 - 1) * 8), (28 - 1) * 8)-((C2 * 8) - 1, (34 - 1) * 8 - 1), 0, BF
  498. BOX.BAR ((C1 - 1) * 8), (28 - 1) * 8, (C2 * 8), (34 - 1) * 8, 4, 6, 1, 1
  499. LOCATE 29, Col - L / 2 + .5: PRINT M$
  500.  
  501. LINE (((39 - 1) * 8), (30 - 1) * 8)-((43 - 1) * 8 - 1, 32 * 8 - 1), 2, BF
  502. BOX.BAR ((39 - 1) * 8), (30 - 1) * 8, (43 - 1) * 8, 32 * 8, 6, 8, 1, 1
  503. COLOR 14: LOCATE 31, 40: PRINT OK$
  504.  
  505. LOOP UNTIL KP = CHR$(13)
  506.  
  507. BOX.BAR ((39 - 1) * 8), (30 - 1) * 8, (43 - 1) * 8, 32 * 8, 12, 14, 1, 1
  508. COLOR 10: LOCATE 31, 40: PRINT OK$
  509.  
  510. MILLIDELAY 1000 / 4
  511. PUT (((C1 - 1) * 8), (28 - 1) * 8), TMP, PSET
  512.  
  513.  
  514. SUB MIDDLE (row, Text$)
  515.   MaxCol = 80
  516.   Col = MaxCol \ 2
  517.   LOCATE row, Col - (LEN(Text$) / 2 + .5)
  518.   PRINT Text$;
  519.  
  520. SUB MIDDLE2 (row, Text$)
  521.   MaxCol = 40
  522.   Col = MaxCol \ 2
  523.   LOCATE row, Col - (LEN(Text$) / 2 + .5)
  524.   PRINT Text$;
  525.  
  526. SUB MILLIDELAY (msecs) STATIC
  527.  
  528.     IF sysfact& THEN                             'calc- system speed yet?
  529.         IF msecs THEN                            'have to want a delay
  530.             COUNT& = (sysfact& * msecs) \ -54    'calc- # of loops needed
  531.             DO
  532.                 COUNT& = COUNT& + 1              'negative - add to get to 0
  533.                 IF COUNT& = z THEN EXIT DO       'when its 0 we're done
  534.             LOOP UNTIL t2 = PEEK(&H6C)           'make it the same as below
  535.         END IF
  536.     ELSE                                         'calc- system speed
  537.         DEF SEG = &H40                           'point to low memory
  538.         t1 = PEEK(&H6C)                          'get tick count
  539.         DO
  540.             t2 = PEEK(&H6C)                      'get tick count
  541.         LOOP UNTIL t2 <> t1                      'wait 'til its a new tick
  542.         DO
  543.             sysfact& = sysfact& + 1              'count number of loops
  544.             IF sysfact& = z THEN EXIT DO         'make it the same as above
  545.         LOOP UNTIL t2 <> PEEK(&H6C)              'wait 'til its a new tick
  546.         t2 = 256                                 'prevent the above UNTIL
  547.     END IF
  548.  
  549. SUB SAVE.SCORES
  550. OPEN "DROIDS.DAT" FOR OUTPUT AS #F
  551. FOR A = 1 TO 10
  552. FOR B = 1 TO 10
  553. WRITE #F, PERSON(A, B), SCORE(A, B)
  554.  
  555. SUB SHOW (A, TX, TY)
  556. X = (TX - 1) * 20: Y = (TY - 1) * 20
  557. CASE 0: LINE (X, Y)-(X + 19, Y + 19), 0, BF
  558. CASE 1: PUT (X, Y), P1, PSET
  559. CASE 2: PUT (X, Y), P2, PSET
  560. CASE 3: PUT (X, Y), P3, PSET
  561. CASE 4: PUT (X, Y), P4, PSET
  562. CASE 5: PUT (X, Y), P5, PSET
  563. 'CASE 6: PUT (X, Y), P6, PSET
  564. 'CASE 7: PUT (X, Y), P7, PSET
  565. 'CASE 8: PUT (X, Y), P8, PSET
  566. 'CASE 9: PUT (X, Y), P9, PSET
  567. CASE ELSE: LINE (X, Y)-(X + 19, Y + 19), 3, BF
  568.  
  569. SUB SHOW.LEVEL
  570. FOR Y = 10 TO 23
  571. FOR X = 8 TO 24
  572. SHOW LEVEL(X, Y), X, Y
  573. LINE (140, 179)-(480, 175), 12, BF
  574. LINE (0, 0)-(139, 480), LEVEL, BF
  575. LINE (481, 0)-(640, 480), LEVEL, BF
  576. COLOR 10: MIDDLE 9, "Level" + STR$(LEVEL)
  577. COLOR 9: MIDDLE 12, " Avoid the rocks and shoot the enemies!"
  578. COLOR 11: MIDDLE 14, "Player 1: Arrow Keys move left & right"
  579. COLOR 11: MIDDLE 15, "`Up' to Shoot"
  580. IF PLAYERS > 1 THEN
  581. COLOR 5: MIDDLE 17, "Player 2: `A' moves left, `D' moves right"
  582. COLOR 5: MIDDLE 18, "`W' to Shoot"
  583.  
  584. SUB SHOW.SCORES (L, H)
  585. LINE (4.5 * 8, 4.5 * 8)-(34.5 * 8, 19.5 * 8), 0, BF
  586. LINE (4.5 * 8, 4.5 * 8)-(34.5 * 8, 19.5 * 8), 14, B
  587. COLOR 10: MIDDLE2 6, "   High Scores"
  588. COLOR 11: MIDDLE2 7, "   Level" + STR$(L)
  589. FOR A = 1 TO 10
  590. FOR B = 1 TO PLAYERS
  591. IF PERSON(L, A) = N(B) AND SCORE(L, A) = PS(B) THEN COLOR 12
  592. SPACES = 29 - (LEN(PERSON(L, A)) + LEN(LTRIM$(STR$(SCORE(L, A)))))
  593. LOCATE A + 8, 6: PRINT PERSON(L, A) + SPACE$(SPACES) + LTRIM$(STR$(SCORE(L, A)))
  594. KP = INPUT$(1)
  595.  
  596. SUB SORT.SCORES
  597. FOR A = 1 TO 10
  598. FOR B = 1 TO 9
  599. FOR C = B + 1 TO 10
  600. IF SCORE(A, B) < SCORE(A, C) THEN SWAP SCORE(A, B), SCORE(A, C): SWAP PERSON(A, B), PERSON(A, C)
  601.  
  602. SUB TITLE
  603. DIM TISC(32, 24)
  604. FOR Y = 1 TO 24
  605. FOR X = 1 TO 32
  606. READ TISC(X, Y)
  607. X = INT(RND * 32) + 1
  608. Y = INT(RND * 24) + 1
  609. IF TISC(X, Y) THEN SHOW INT(RND * 5) + 1, X, Y ELSE SHOW 6, X, Y
  610. MILLIDELAY 5
  611. LOOP WHILE KP = ""
  612. FOR Y = 1 TO 24
  613. FOR X = 1 TO 32
  614. IF TISC(X, Y) THEN SHOW 6, X, Y ELSE SHOW INT(RND * 5) + 1, X, Y
  615.  
  616. SUB WIDE.BAR (X1, Y1, MIN.COL, COLOURS, H.OR.V, W, CS)
  617.  
  618. XP = X1: YP = Y1
  619.  
  620. SELECT CASE SGN(COLOURS - MIN.COL)
  621. CASE -1
  622. CSTEP1 = ((ABS(CS)) - (ABS(CS) * 2))
  623. CSTEP2 = ABS(CS)
  624. IF H.OR.V = 1 THEN XP = X1 + ((MIN.COL - COLOURS) + 1) ELSE YP = Y1 + ((MIN.COL - COLOURS) + 1)
  625. CSTEP2 = ((ABS(CS)) - (ABS(CS) * 2))
  626. CSTEP1 = ABS(CS)
  627. IF H.OR.V = 1 THEN XP = X1 + ((COLOURS - MIN.COL) + 1) ELSE YP = Y1 + ((COLOURS - MIN.COL) + 1)
  628.  
  629. BAR X1, Y1, MIN.COL, COLOURS, H.OR.V, W, CSTEP1
  630. BAR XP, YP, COLOURS, MIN.COL, H.OR.V, W, CSTEP2
  631.  
  632.  
  633. SUB WORD (PROMPT$, VAR$)
  634. DIM TMP(GET.SIZE(0, 11 * 8, 39 * 8, 14 * 8))
  635. GET (0, 11 * 8)-(39 * 8, 14 * 8), TMP
  636. LINE (0, 11 * 8)-(39 * 8, 14 * 8), 0, BF
  637. BOX.BAR 0, 11 * 8, 39 * 8, 14 * 8, 24, 26, 1, 1
  638. COLOR 12: LOCATE 13, 2: PRINT PROMPT$; : COLOR 11: LINE INPUT VAR$
  639. PUT (0, 11 * 8), TMP, PSET
  640.  
  641.  
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
Re: QB games collection ...
« Reply #1 on: October 24, 2020, 01:46:38 pm »
Some of games not work due different way of mousemove and i am not good enough in QB64 to
figure why ?
Some of them work but are after 1 second of execution you loose..
strange to me ...
if there is a interest i can post it in zip or add a link for download.
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
Re: QB games collection ...
« Reply #2 on: October 25, 2020, 02:08:28 pm »
Here is the one called Robot Arm
Code: QB64: [Select]
  1. REM **********************************************
  2. REM   More Qbasic Software at the Software Page.
  3. REM       http://www.euronet.nl/users/rkohm/
  4. REM          Any Questions? E-mail to:
  5. REM              rkohm@euronet.nl
  6. REM **********************************************
  7.  
  8. DECLARE SUB menu ()
  9. DECLARE SUB movements ()
  10. DECLARE SUB getlevel (whichone!)
  11. DECLARE SUB win ()
  12. DECLARE SUB waitawhile (howlong!)
  13. DECLARE SUB dead ()
  14. DECLARE SUB maze ()
  15. DECLARE SUB move (whereto!)
  16. DECLARE SUB entercomm ()
  17. DECLARE SUB background ()
  18.  
  19. COMMON SHARED handloca, luggage$, level, line$, times, try, comm, test$
  20. DIM SHARED te$(1001), commands$(1000), location$(99) '88 + 11
  21.  
  22. CONST PI = 3.141592654#
  23.  
  24. ON KEY(10) GOSUB endofgame
  25. ON KEY(1) GOSUB newlist
  26. KEY(10) ON
  27.  
  28. CLS : SCREEN 12
  29.  
  30. level = level + 1
  31. try = 1
  32.  
  33. menu
  34.  
  35.  ERASE location$
  36.  luggage$ = "": line$ = "": handloca = 0: times = 0
  37.  CLS
  38.  
  39.  background
  40.  getlevel level
  41.  maze
  42.  entercomm
  43.  movements
  44.  
  45. PRINT "ERROR, PROGRAMME ENDED!!!!" 'You're not supposed to come here!!
  46.  
  47. endofgame:
  48.  
  49. newlist:
  50. ERASE commands$
  51. comm = 1
  52.  FOR yht = 24 TO 28
  53.   LOCATE yht, 4: PRINT SPACE$(5): LOCATE yht, 16: PRINT SPACE$(7)
  54.  IF comm - 3 > 0 THEN
  55.   LOCATE 24, 5: PRINT comm - 3: LOCATE 24, 16: PRINT commands$(comm - 3)
  56.  IF comm - 2 > 0 THEN
  57.   LOCATE 25, 5: PRINT comm - 2: LOCATE 25, 16: PRINT commands$(comm - 2)
  58.  IF comm - 1 > 0 THEN
  59.   LOCATE 26, 5: PRINT comm - 1: LOCATE 26, 16: PRINT commands$(comm - 1)
  60.  LOCATE 27, 5: PRINT comm: LOCATE 27, 15: PRINT "*" + commands$(comm)
  61.  LOCATE 28, 5: PRINT comm + 1: LOCATE 28, 16: PRINT commands$(comm + 1)
  62.  
  63. SUB background
  64. DRAW "c15bm10,20d320r40u320r40d320r40u320r40"
  65. DRAW "d320r40u320r40d320r40u320r40d320r40u320r40d320r40u320l440d320r440"
  66. DRAW "u40l440u40r440u40l440u40r440u40l440u40r440u40l440u40"
  67. DRAW "h10d340r460u340l460r5bdp15,15"
  68. DRAW "bm550,40"
  69. DRAW "c4br50bd20l100u40r100d40bh20bl3bu5p4,4c14l40u10g15f15u10r40u10bgp14,14"
  70. DRAW "bm550,90a2"
  71. DRAW "c4br50bd20l100u40r100d40bh20bl3bu5p4,4c14l40u10g15f15u10r40u10bgp14,14"
  72. DRAW "bm525,170a3"
  73. DRAW "c4br50bd20l100u40r100d40bh20bl3bu5p4,4c14l40u10g15f15u10r40u10bgp14,14"
  74. DRAW "bm575,170a1"
  75. DRAW "c4br50bd20l100u40r100d40bh20bl3bu5p4,4c14l40u10g15f15u10r40u10bgp14,14"
  76. DRAW "a0bm550,250c4br50bd20l100u40r100d40bh20bl60bd11p4,4c14"
  77. DRAW "u15r7u7l21d7r7d15r7bhp14,14f"
  78. DRAW "br32u22l21d22r7u7r7d7r7u11bl7u7l7d7r7bfp14,14h"
  79. DRAW "br11bd11u22r7d7e7r7g11f11l7h7d7l7bep14,14g"
  80. DRAW "br24 u22r15d5l8d4r6d5l6d4r8d5l15bep14,14"
  81. DRAW "a0bm550,300c4br50bd20l100u40r100d40bh20bl60bd11p4,4c14"
  82. DRAW "bl13 u22r7d15r8d7l15bep14,14g"
  83. DRAW "br33 u22l15d22r15bh4bu2 u10l7d10r7bfp14,14f3"
  84. DRAW "bd2br18 u22l15d22r15bh4bu2 u10l7d10r7bfp14,14f3"
  85. DRAW "br3bd2 u5r10u4l10u13r15d5l10d4r10d13l15bep14,14g"
  86. DRAW "br18 u22r15d4l8d4r6d5l6d4r8d5l15bep14,14"
  87.  
  88. DRAW "c15 bm530,350 r40d40l40u40"
  89. DRAW "bm480,5c4r140d330l140u330bfp1,4 bm480,5c15r140d330l140u330"
  90. DRAW "c15bm220,363d90r270u90l270"
  91. DRAW "c15bm500,411d40r120u40l120"
  92.  
  93. LOCATE 27, 65: COLOR 4: PRINT "Level:": LOCATE 27, 74: PRINT level
  94. LOCATE 28, 65: COLOR 4: PRINT "Attempt:": LOCATE 28, 74: PRINT try
  95.  
  96. LOCATE 24, 30: COLOR 14: PRINT "F10"; : COLOR 15: PRINT " Exit"
  97. LOCATE 25, 30: COLOR 14: PRINT "Page Up"; : COLOR 15: PRINT " Move up one command"
  98. LOCATE 26, 30: COLOR 14: PRINT "Page Down"; : COLOR 15: PRINT " Move down one command"
  99. LOCATE 27, 30: COLOR 14: PRINT "Insert"; : COLOR 15: PRINT " Insert a command"
  100. LOCATE 28, 30: COLOR 14: PRINT "Delete"; : COLOR 15: PRINT " Delete a command"
  101. LOCATE 24, 41: COLOR 14: PRINT "F1"; : COLOR 15: PRINT " New command list"
  102.  
  103. DRAW "c15bm15,363r175d90l175u90r75dc4d88br4u88"
  104. DRAW "bm600,400p8,15"
  105. DRAW "c14bm15,363r175d90l175u90"
  106. DRAW "bm480,5c14r140d330l140u330"
  107. DRAW "c14bm220,363d90r270u90l270"
  108. DRAW "c14bm500,411d40r120u40l120"
  109.  
  110. SUB dead
  111. LOCATE 1, 1: PRINT "You're dead."
  112. DO: userinput$ = INKEY$: LOOP UNTIL userinput$ <> ""
  113. try = try + 1
  114.  
  115. SUB entercomm
  116. comm = 1
  117.  
  118.  FOR yht = 24 TO 28
  119.   LOCATE yht, 4: PRINT SPACE$(5): LOCATE yht, 16: PRINT SPACE$(7)
  120.  IF comm - 3 > 0 THEN
  121.   LOCATE 24, 5: PRINT comm - 3: LOCATE 24, 16: PRINT commands$(comm - 3)
  122.  IF comm - 2 > 0 THEN
  123.   LOCATE 25, 5: PRINT comm - 2: LOCATE 25, 16: PRINT commands$(comm - 2)
  124.  IF comm - 1 > 0 THEN
  125.   LOCATE 26, 5: PRINT comm - 1: LOCATE 26, 16: PRINT commands$(comm - 1)
  126.  LOCATE 27, 5: PRINT comm: LOCATE 27, 15: PRINT "*" + commands$(comm)
  127.  LOCATE 28, 5: PRINT comm + 1: LOCATE 28, 16: PRINT commands$(comm + 1)
  128.  KEY(1) ON
  129.  DO: user$ = INKEY$: LOOP UNTIL user$ <> ""
  130.  KEY(1) OFF
  131.  SELECT CASE user$
  132.   CASE "4": commands$(comm) = "left": comm = comm + 1
  133.    PAINT (550, 40), 2, 4: PLAY "l30a": waitawhile .1: PAINT (550, 40), 14, 4
  134.   CASE "8": commands$(comm) = "up": comm = comm + 1
  135.    PAINT (525, 185), 2, 4: PLAY "l30a": waitawhile .1: PAINT (525, 185), 14, 4
  136.   CASE "6": commands$(comm) = "right": comm = comm + 1
  137.    PAINT (570, 90), 2, 4: PLAY "l30a": waitawhile .1: PAINT (570, 90), 14, 4
  138.   CASE "2": commands$(comm) = "down": comm = comm + 1
  139.    PAINT (575, 190), 2, 4: PLAY "l30a": waitawhile .1: PAINT (575, 190), 14, 4
  140.   CASE "t": commands$(comm) = "take": comm = comm + 1
  141.    PAINT (515, 250), 2, 4: PAINT (545, 250), 2, 4: PAINT (565, 250), 2, 4
  142.    PAINT (590, 250), 2, 4: PLAY "l64a": waitawhile .1
  143.    PAINT (515, 250), 14, 4: PAINT (545, 250), 14, 4: PAINT (565, 250), 14, 4
  144.    PAINT (590, 250), 14, 4
  145.   CASE "l": commands$(comm) = "loose": comm = comm + 1
  146.    PAINT (510, 300), 2, 4: PAINT (538, 300), 2, 4: PAINT (545, 300), 2, 4
  147.    PAINT (565, 300), 2, 4: PAINT (590, 300), 2, 4: PLAY "l64a": waitawhile .1
  148.    PAINT (510, 300), 14, 4: PAINT (538, 300), 14, 4: PAINT (545, 300), 14, 4
  149.    PAINT (565, 300), 14, 4: PAINT (590, 300), 14, 4
  150.   CASE "9": IF comm > 1 THEN comm = comm - 1
  151.   CASE "3": IF comm < 999 THEN comm = comm + 1
  152.   CASE "0"
  153.    ERASE te$
  154.    FOR pol = comm TO 1000
  155.     te$(pol) = commands$(pol)
  156.    NEXT
  157.    commands$(comm) = "": comm = comm + 1
  158.    FOR pol = comm TO 1000
  159.     commands$(pol) = te$(pol - 1)
  160.    NEXT
  161.   CASE "."
  162.    ERASE te$
  163.    FOR pol = comm + 1 TO 1000
  164.     te$(pol) = commands$(pol)
  165.    NEXT
  166.    FOR pol = comm TO 1000
  167.     commands$(pol) = te$(pol + 1)
  168.    NEXT
  169. LOOP UNTIL user$ = CHR$(13)
  170.  
  171.  
  172. SUB getlevel (whichone)
  173. SELECT CASE whichone
  174. CASE 1: line$ = "h00000000000999000000009j9000000009i909g9000000009k900000000999000000500000000002000000f"
  175. CASE 2: line$ = "0000000k0000000000000j9c999999999000000000000000b000000999999999g9000000000f048000000000"
  176. CASE 3: line$ = "0d00090k00000000e0000j9c999999999000009000h00000bi00000999999999g900000e000f04800d900000"
  177. CASE 4: line$ = "000009j0k0009999999990090h999f0g0090e090i090099b0c0099009000900d900990999999048000900000"
  178. CASE 5: line$ = "k099j990hfb00i00090000009000900000099999000000999900000009000900000090009000500g000c0002"
  179. CASE 6: line$ = "ake0ahafabad000000000dgagaca0a0a000000i00000a000a0agice00000a000000aha0a0000g63a0faf00aj"
  180. CASE 7: line$ = "9k90909d901j0i000e0i079090909090090909090900909000909009090009090h9090h09090090gf0090cb0"
  181. CASE 8: line$ = "1909999b090790h00000c009090000090090999990900900000909i00e0000g09k09000009090d90f999909j"
  182. CASE 9: line$ = "ak948f00g0h00900f00990j0900000090cc900000090000b999009i00099h9009099900099990bgi000e000d"
  183. CASE 10: line$ = "00f000000000999999999009k009c0090g9jih0090900999999909e00000000b90999999999904800000d000"
  184. CASE 11: line$ = "c0000k0f00g09099j9909009099i99090b9999h999900999909999009999c9999d5999909999029999bb000e"
  185. CASE 12: line$ = "jc00090bfikc000090000g00000g00000090909090909h909990i090000090000050000g0000020f0090h000"
  186. CASE 13: line$ = "999480999999999909999999999d9999999999099999kdce0000igj99999f9999999999b9999999999h99999"
  187. CASE 14: line$ = "000900090d009h909b909009090909f90i9090909090090cd90g00009090909090k9090909095j9000900092"
  188. CASE 15: line$ = "99999f900ak91on900g00e9p7p90900009lqm90900009d9e909090099909090j00i000a0909009a00i09d90h"
  189.  luggage$ = "h": DRAW "bm550,370 ": DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3"' key green
  190. CASE 16: LOCATE 12, 14: PRINT "You have won all the levels!!!!!": END
  191.  
  192. SUB hlptext
  193. '
  194. '                             R O B O T 3.2
  195. '                            ---------------
  196. '                             by Robin Ohm
  197. 'RULES:
  198. '
  199. 'Maybe It's wise to print this information!!!
  200. '
  201. 'In this game there are 15 levels. (Maybe a few more or less) If you have
  202. 'won all the levels, you win the game.
  203. 'To win a level you only have to bring the CROSS to the END using the
  204. 'robotarm. To control the robotarm you'll have to write a program.
  205. 'If you have won all the levels you win the game.
  206. '
  207. '
  208. 'THE COMMANDS YOU CAN GIVE TO THE ROBOTARM:
  209. '
  210. 'To give a command to the robotarm you have to press a key. These are the
  211. 'keys on the number pad. (The block of numbers on your right)
  212. '
  213. 'ALWAYS MAKE SURE NUMLOCK IS ON!!!!!
  214. '-----------------------------------
  215. '
  216. '(arrow keys on the number pad)
  217. '-up: the robotarm moves up one square.
  218. '-down: the robotarm moves down one square.
  219. '-left: the robotarm move one square to the left.
  220. '-right: (guess what) the robotarm moves one square to the right.
  221. '
  222. '(the keys 't' and 'l')
  223. '-take: the robotarm takes what is in front of him. For example a key
  224. 'or the cross.
  225. '-loose: the robotarm puts whatever he's carrying in front of him.
  226. ' You can also use this to unlock doors and bring the CROSS to END.
  227. '
  228. 'First you have to write the programme using the commands above. The robot-
  229. 'arm won't immediatly react if you press a key. If you think you're ready
  230. 'you just press ENTER and the robotarm starts executing the programme you
  231. 'have written.
  232. '
  233. '
  234. 'OBJECTS IN THE MAZE:
  235. '
  236. 'Wall: A grey square. If you hit a wall you're dead immediatly.
  237. 'Mine: If you hit a mine, you're dead too.
  238. 'Robotarm: The robotarm you can control. It has light- and dark-blue colors.
  239. 'Keys: There are red, yellow, green and blue keys. Keys are used to open
  240. ' doors. With a red key you can open red doors, etc... But be careful!!
  241. ' You can only use keys one time!!!
  242. ' To pick up a key you have to point the hand of the robotarm to the key and
  243. ' give the command "take". The arm will now take the key. In the
  244. ' bottom-right corner of the screen in the black square you will see a
  245. ' key appear. In that square you can see what you are carrying. You can only
  246. ' carry one thing at a time.
  247. 'Doors: There are red, yellow, green and blue doors and can be opened by a
  248. ' key of the same color. To open a door you have to point the hand of the
  249. ' robotarm to the door and give te command "loose". The door and the key
  250. ' you were carrying are gone and you have returned to the same position.
  251. 'Cross: If you want to win the level you'll have to bring the cross to
  252. ' the square which says END. You can pick up the cross the same way as you do
  253. ' with keys.
  254. 'END: This is the point you have to deliver the cross to. To deliver the
  255. ' cross you only have to this:
  256. ' - pick up the cross (see: Cross)
  257. ' - point the hand of the robotarm to END and give the command: "loose". If
  258. '   all goes well you have now won the level and can start with the next
  259. '   one.
  260. '
  261. '
  262. 'TESTLEVEL:
  263. '
  264. 'Maybe you don't understand the rules totally, so I'll give you the solution
  265. 'to the first level.
  266. 'If you still have questions, just send an e-mail to rkohm@euronet.nl
  267. '
  268. '- Start Qbasic and load robotv32.bas
  269. '- Press SHIFT + F5
  270. '- Select "1" from the menu.
  271. '- Give the following commands:
  272. '
  273. '  l,l,l,u,u,u,u,u,t,d,d,d,d,r,r,u,lo,d,r,r,d,d,r,r,r,r,r,t,u,u,u,u,u,u,l
  274. '  l,l,d,lo,d,t,u,l,l,d,d,l,l,u,lo
  275. '
  276. '(l = arrow left on the number pad)
  277. '(r = arrow right on the number pad)
  278. '(u = arrow up on the number pad)
  279. '(d = arrow down on the number pad)
  280. '
  281. '(t = press the 't' (from 'take') )
  282. '(lo = press the 'l' (from 'loose') )
  283. '                                      
  284. '
  285. 'CORRECTING MISTAKES:
  286. '
  287. 'If you make a mistake while you are writing the program for the robot-arm,
  288. 'you can correct them with the following keys:
  289. '
  290. 'ALWAYS USE THE KEYS ON THE NUMBER PAD AND MAKE SURE NUMLOCK IS ON!!!
  291. '--------------------------------------------------------------------
  292. '
  293. 'PageUp: Move up one command in the list.
  294. 'PageDown: Move down one command in the list.
  295. 'Insert: Insert a blank line.
  296. 'Delete: Delete the line.
  297. 'F1: Forget the old list and start a new one.
  298. '
  299. 'NOTE: Deleting and inserting a line takes a few moments, especially on slow
  300. 'computers. So only press Insert or Delete once if you want to delete or
  301. 'insert only one line!!
  302.  
  303. SUB maze
  304. 'OPEN "c:\qbasic\robot\levels.dat" FOR INPUT AS #1
  305. 'LINE INPUT #1, line$
  306. 'CLOSE #1
  307.  
  308. FOR tempor = 1 TO 88
  309.  location$(tempor) = MID$(line$, tempor, 1)
  310.  
  311. FOR tempor = 1 TO 88
  312. SELECT CASE location$(tempor)
  313. CASE "0": move tempor: DRAW "bh19p0,15bf19"
  314. CASE "1": move tempor: DRAW "bh19p0,15bf19"
  315.  DRAW "a2p3,15 c1bl5u19r10d19l10bep1,1a0"'end 1
  316. CASE "2": move tempor: DRAW "bh19p0,15bf19"
  317.  DRAW "a0p3,15 c1bl5u19r10d19l10bep1,1a0"'end 2
  318. CASE "3": move tempor: DRAW "bh19p0,15bf19"
  319.  DRAW "a1p3,15 c1bl5u19r10d19l10bep1,1a0"'end 3
  320. CASE "4": move tempor: DRAW "bh19p0,15bf19"
  321.  DRAW "a3p3,15 c1bl5u19r10d19l10bep1,1a0"'end 4
  322. CASE "5": move tempor: DRAW "bh19p0,15bf19": handloca = tempor
  323.  DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  324. CASE "6": move tempor: DRAW "bh19p0,15bf19": handloca = tempor
  325.  DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  326. CASE "7": move tempor: DRAW "bh19p0,15bf19": handloca = tempor
  327.  DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  328. CASE "8": move tempor: DRAW "bh19p0,15bf19": handloca = tempor
  329.  DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  330. CASE "9": move tempor: DRAW "bh19p0,15bf19": DRAW "p8,15"'wall
  331. CASE "a": move tempor: DRAW "bh19p0,15bf19"
  332.  DRAW "p4,15d4": CIRCLE STEP(0, 0), 10, 0     'bomb
  333.  DRAW "p0,0r3u12l6d5r3bu4p0,0uc7u2er2erfrf2r3fc14bu3u2ebf3bleerbg3bd2ffdbh3blddg"
  334. CASE "b": move tempor: DRAW "bh19p0,15bf19"
  335.  DRAW "p8,15c4bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3" ' key red
  336. CASE "c": move tempor: DRAW "bh19p0,15bf19"                  'door red
  337.  DRAW "p8,15c7bd19l10u30r20d30nl10bh3u10l14d10r14bu24l14d10r14u10bup4,7bg5p7,7bd15p7,7c8bh6uld"
  338. CASE "d": move tempor: DRAW "bh19p0,15bf19"
  339.  DRAW "p8,15c1bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3" ' key blue
  340. CASE "e": move tempor: DRAW "bh19p0,15bf19"                  'door blue
  341.  DRAW "p8,15c7bd19l10u30r20d30nl10bh3u10l14d10r14bu24l14d10r14u10bup1,7bg5p7,7bd15p7,7c8bh6uld"
  342. CASE "f": move tempor: DRAW "bh19p0,15bf19"
  343.  DRAW "p8,15c14bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3" ' key yellow
  344. CASE "g": move tempor: DRAW "bh19p0,15bf19"                   'door yellow
  345.  DRAW "p8,15c7bd19l10u30r20d30nl10bh3u10l14d10r14bu24l14d10r14u10bup14,7bg5p7,7bd15p7,7c8bh6uld"
  346. CASE "h": move tempor: DRAW "bh19p0,15bf19"
  347.  DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3" ' key green
  348. CASE "i": move tempor: DRAW "bh19p0,15bf19"                  'door green
  349.  DRAW "p8,15c7bd19l10u30r20d30nl10bh3u10l14d10r14bu24l14d10r14u10bup2,7bg5p7,7bd15p7,7c8bh6uld"
  350. CASE "j": move tempor: DRAW "bh19p0,15bf19"     'endpoint
  351.  DRAW "p8,15c4bd10bl18u20r10d4l5d4r4d4l4d4r5d4l10bep4,4gbr13u20r10d20l4u15l2d15l4bep4,4gbr13u20r6f4d12g4l6be4buu10r3d10l3bgp4,4"
  352. CASE "k": move tempor: DRAW "bh19p0,15bf19"     'cross
  353.  DRAW "p8,15c4bl5g10f5e10f10e5h10e10h5g10h10g5f10brp4,4"
  354. CASE "l": move tempor: DRAW "bh19p0,15bf19"
  355.  DRAW "a0p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 1
  356. CASE "m": move tempor: DRAW "bh19p0,15bf19"
  357.  DRAW "a1p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 2
  358. CASE "n": move tempor: DRAW "bh19p0,15bf19"
  359.  DRAW "a2p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 3
  360. CASE "o": move tempor: DRAW "bh19p0,15bf19"
  361.  DRAW "a3p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 4
  362. CASE "p": move tempor: DRAW "bh19p0,15bf19"
  363.  DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 1
  364. CASE "q": move tempor: DRAW "bh19p0,15bf19"
  365.  DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  366.  
  367. SUB menu
  368. again:
  369. COLOR 1: LOCATE 12, 33: PRINT "Your choice? (1-4)"
  370. COLOR 2: LOCATE 13, 33: PRINT "1. Play a game"
  371. COLOR 4: LOCATE 14, 33: PRINT "2. Instructions"
  372. COLOR 14: LOCATE 15, 33: PRINT "3. About this game"
  373. COLOR 6: LOCATE 16, 33: PRINT "4. Enter a password for a level."
  374. COLOR 10: LOCATE 17, 33: PRINT "5. Exit"
  375.  
  376. DO: choice$ = INKEY$: LOOP UNTIL choice$ <> ""
  377.  
  378. SELECT CASE VAL(choice$)
  379. CASE 2:
  380.  CLS
  381.  COLOR 2: LOCATE 12, 20: PRINT "I put the rules in a Sub called hlptext. If you want to"
  382.  COLOR 2: LOCATE 13, 20: PRINT "read the rules, you have to do this:"
  383.  COLOR 4: LOCATE 15, 20: PRINT "- Press F10 and Enter (You will return to QBASIC)"
  384.  COLOR 14: LOCATE 16, 20: PRINT "- Press F2"
  385.  COLOR 1: LOCATE 17, 20: PRINT "- Select 'hlptext' and press Enter."
  386.  DO: LOOP UNTIL INKEY$ <> ""
  387.  GOTO again
  388.  CLS
  389.  COLOR 1: LOCATE 3, 30: PRINT " Robot Version 3.2"
  390.  COLOR 2: LOCATE 4, 30: PRINT "Created by Robin Ohm"
  391.  COLOR 4: LOCATE 5, 30: PRINT "Completed: 14-9-1996"
  392.  COLOR 14: LOCATE 7, 1
  393.  PRINT "If you have a question about this game, just send an e-mail to rkohm@euronet.nl"
  394.  LOCATE 8, 1: PRINT "More BASIC Software at:"
  395.  LOCATE 9, 1: PRINT "http://www.euronet.nl/users/rkohm/"
  396.  DO: LOOP UNTIL INKEY$ <> ""
  397.  COLOR 15
  398.  GOTO again
  399.  CLS : INPUT "Enter password: ", password$
  400.  SELECT CASE VAL(password$)
  401.   CASE FIX(ATN(TAN(PI / 2.004312)) * 9954205)
  402.    PRINT "Password for level 2.": level = 2
  403.   CASE FIX(ATN(COS(PI / 5.643)) * 76120967)
  404.    PRINT "Password for level 3.": level = 3
  405.   CASE FIX(ATN(SIN(PI / 38.7743)) * 1116528679)
  406.    PRINT "Password for level 4.": level = 4
  407.   CASE FIX(ATN(ATN(PI / 42.8664)) * 1105218562)
  408.    PRINT "Password for level 5.": level = 5
  409.   CASE FIX(TAN(PI / 39.954) * 999421075)
  410.    PRINT "Password for level 6.": level = 6
  411.   CASE FIX(ATN(PI / 45.87) * 894321765)
  412.    PRINT "Password for level 7.": level = 7
  413.   CASE FIX(COS(PI / 40) * 34569247)
  414.    PRINT "Password for level 8.": level = 8
  415.   CASE FIX(SIN(COS(PI / 40)) * 85431858)
  416.    PRINT "Password for level 9.": level = 9
  417.   CASE FIX(COS(SIN(PI / 40)) * 63628747)
  418.    PRINT "Password for level 10.": level = 10
  419.   CASE FIX(COS(TAN(PI / 35.9855)) * 63628747)
  420.    PRINT "Password for level 11.": level = 11
  421.   CASE FIX(TAN(COS(PI / 5.643)) * 76120967)
  422.    PRINT "Password for level 12.": level = 12
  423.   CASE FIX(COS(COS(PI / 5.643)) * 76120967)
  424.    PRINT "Password for level 13.": level = 13
  425.   CASE FIX(SIN(SIN(PI / 5.643)) * 76120967)
  426.    PRINT "Password for level 14.": level = 14
  427.   CASE FIX(TAN(TAN(PI / 5.643)) * 76120967)
  428.    PRINT "Password for level 15.": level = 15
  429.    PRINT "Wrong password. Acces denied."
  430.    DO: LOOP UNTIL INKEY$ <> "": GOTO again
  431.  DO: LOOP UNTIL INKEY$ <> ""
  432.  END
  433.  GOTO again
  434.  
  435. SUB move (whereto)
  436. SELECT CASE whereto
  437. CASE 1: g$ = "30,40"
  438. CASE 2: g$ = "70,40"
  439. CASE 3: g$ = "110,40"
  440. CASE 4: g$ = "150,40"
  441. CASE 5: g$ = "190,40"
  442. CASE 6: g$ = "230,40"
  443. CASE 7: g$ = "270,40"
  444. CASE 8: g$ = "310,40"
  445. CASE 9: g$ = "350,40"
  446. CASE 10: g$ = "390,40"
  447. CASE 11: g$ = "430,40"
  448. CASE 12: g$ = "30,80"
  449. CASE 13: g$ = "70,80"
  450. CASE 14: g$ = "110,80"
  451. CASE 15: g$ = "150,80"
  452. CASE 16: g$ = "190,80"
  453. CASE 17: g$ = "230,80"
  454. CASE 18: g$ = "270,80"
  455. CASE 19: g$ = "310,80"
  456. CASE 20: g$ = "350,80"
  457. CASE 21: g$ = "390,80"
  458. CASE 22: g$ = "430,80"
  459. CASE 23: g$ = "30,120"
  460. CASE 24: g$ = "70,120"
  461. CASE 25: g$ = "110,120"
  462. CASE 26: g$ = "150,120"
  463. CASE 27: g$ = "190,120"
  464. CASE 28: g$ = "230,120"
  465. CASE 29: g$ = "270,120"
  466. CASE 30: g$ = "310,120"
  467. CASE 31: g$ = "350,120"
  468. CASE 32: g$ = "390,120"
  469. CASE 33: g$ = "430,120"
  470. CASE 34: g$ = "30,160"
  471. CASE 35: g$ = "70,160"
  472. CASE 36: g$ = "110,160"
  473. CASE 37: g$ = "150,160"
  474. CASE 38: g$ = "190,160"
  475. CASE 39: g$ = "230,160"
  476. CASE 40: g$ = "270,160"
  477. CASE 41: g$ = "310,160"
  478. CASE 42: g$ = "350,160"
  479. CASE 43: g$ = "390,160"
  480. CASE 44: g$ = "430,160"
  481. CASE 45: g$ = "30,200"
  482. CASE 46: g$ = "70,200"
  483. CASE 47: g$ = "110,200"
  484. CASE 48: g$ = "150,200"
  485. CASE 49: g$ = "190,200"
  486. CASE 50: g$ = "230,200"
  487. CASE 51: g$ = "270,200"
  488. CASE 52: g$ = "310,200"
  489. CASE 53: g$ = "350,200"
  490. CASE 54: g$ = "390,200"
  491. CASE 55: g$ = "430,200"
  492. CASE 56: g$ = "30,240"
  493. CASE 57: g$ = "70,240"
  494. CASE 58: g$ = "110,240"
  495. CASE 59: g$ = "150,240"
  496. CASE 60: g$ = "190,240"
  497. CASE 61: g$ = "230,240"
  498. CASE 62: g$ = "270,240"
  499. CASE 63: g$ = "310,240"
  500. CASE 64: g$ = "350,240"
  501. CASE 65: g$ = "390,240"
  502. CASE 66: g$ = "430,240"
  503. CASE 67: g$ = "30,280"
  504. CASE 68: g$ = "70,280"
  505. CASE 69: g$ = "110,280"
  506. CASE 70: g$ = "150,280"
  507. CASE 71: g$ = "190,280"
  508. CASE 72: g$ = "230,280"
  509. CASE 73: g$ = "270,280"
  510. CASE 74: g$ = "310,280"
  511. CASE 75: g$ = "350,280"
  512. CASE 76: g$ = "390,280"
  513. CASE 77: g$ = "430,280"
  514. CASE 78: g$ = "30,320"
  515. CASE 79: g$ = "70,320"
  516. CASE 80: g$ = "110,320"
  517. CASE 81: g$ = "150,320"
  518. CASE 82: g$ = "190,320"
  519. CASE 83: g$ = "230,320"
  520. CASE 84: g$ = "270,320"
  521. CASE 85: g$ = "310,320"
  522. CASE 86: g$ = "350,320"
  523. CASE 87: g$ = "390,320"
  524. CASE 88: g$ = "430,320"
  525.  
  526. g$ = "bm" + g$
  527. DRAW "x" + VARPTR$(g$)
  528.  
  529. SUB movements
  530. FOR temp = 1 TO 1000
  531. waitawhile .2
  532.  IF temp > 1000 THEN dead: EXIT SUB
  533.  FOR yht = 24 TO 28
  534.   LOCATE yht, 4: PRINT SPACE$(5): LOCATE yht, 16: PRINT SPACE$(7)
  535.  IF temp - 3 > 0 THEN
  536.   LOCATE 24, 5: PRINT temp - 3: LOCATE 24, 16: PRINT commands$(temp - 3)
  537.  IF temp - 2 > 0 THEN
  538.   LOCATE 25, 5: PRINT temp - 2: LOCATE 25, 16: PRINT commands$(temp - 2)
  539.  IF temp - 1 > 0 THEN
  540.   LOCATE 26, 5: PRINT temp - 1: LOCATE 26, 16: PRINT commands$(temp - 1)
  541.  LOCATE 27, 5: PRINT temp: LOCATE 27, 15: PRINT "*" + commands$(temp)
  542.  LOCATE 28, 5: PRINT temp + 1: LOCATE 28, 16: PRINT commands$(temp + 1)
  543.  
  544.  SELECT CASE commands$(temp)
  545.   CASE "": times = times + 1
  546.    IF times > 10 THEN dead: EXIT SUB
  547.   CASE "up"
  548.    IF handloca - 11 <= 0 THEN dead: EXIT SUB
  549.    IF location$(handloca - 11) <> "0" AND location$(handloca) <> "7" THEN dead: EXIT SUB
  550.    move handloca: DRAW "bh19p0,15bf19"
  551.    handloca = handloca - 11              'new handlocation
  552.     SELECT CASE location$(handloca + 11) 'still the old one
  553.      CASE "5"
  554.       DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0" 'straight 1
  555.       move handloca: DRAW "bh19p0,15bf19"
  556.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  557.       location$(handloca) = "5": location$(handloca + 11) = "p"
  558.      CASE "6"
  559.       DRAW "a0p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 1
  560.       move handloca: DRAW "bh19p0,15bf19"
  561.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  562.       location$(handloca) = "5": location$(handloca + 11) = "l"
  563.      CASE "7"
  564.       move handloca: DRAW "bh19p0,15bf19"
  565.       IF location$(handloca - 1) = "q" OR location$(handloca - 1) = "l" OR location$(handloca - 1) = "o" OR location$(handloca - 1) = "4" THEN
  566.        DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  567.        location$(handloca) = "8": location$(handloca + 11) = "0"
  568.       ELSEIF location$(handloca + 1) = "q" OR location$(handloca + 1) = "n" OR location$(handloca + 1) = "m" OR location$(handloca + 1) = "3" THEN
  569.        DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  570.        location$(handloca) = "6": location$(handloca + 11) = "0"
  571.       ELSE
  572.        DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  573.        location$(handloca) = "7": location$(handloca + 11) = "0"
  574.       END IF
  575.      CASE "8"
  576.       DRAW "a1p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 2
  577.       move handloca: DRAW "bh19p0,15bf19"
  578.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  579.       location$(handloca) = "5": location$(handloca + 11) = "m"
  580.      CASE ELSE: PRINT "ERROR, PROGRAMME TERMINATED!!!": END
  581.     END SELECT
  582.    CASE "left"
  583.     IF handloca = 1 OR handloca = 12 OR handloca = 23 THEN dead: EXIT SUB
  584.     IF handloca = 34 OR handloca = 45 OR handloca = 56 THEN dead: EXIT SUB
  585.     IF handloca = 67 OR handloca = 78 OR handloca = 89 THEN dead: EXIT SUB
  586.     IF location$(handloca - 1) <> "0" AND location$(handloca) <> "8" THEN dead: EXIT SUB
  587.     move handloca: DRAW "bh19p0,15bf19"
  588.     handloca = handloca - 1
  589.     SELECT CASE location$(handloca + 1)
  590.      CASE "5"
  591.       DRAW "a2p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 3
  592.       move handloca: DRAW "bh19p0,15bf19"
  593.       DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  594.       location$(handloca) = "6": location$(handloca + 1) = "n"
  595.      CASE "6"
  596.       DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  597.       move handloca: DRAW "bh19p0,15bf19"
  598.       DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  599.       location$(handloca) = "6": location$(handloca + 1) = "q"
  600.      CASE "7"
  601.       DRAW "a1p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 2
  602.       move handloca: DRAW "bh19p0,15bf19"
  603.       DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  604.       location$(handloca) = "6": location$(handloca + 1) = "m"
  605.      CASE "8"
  606.       move handloca: DRAW "bh19p0,15bf19"
  607.       IF handloca > 11 THEN
  608.        IF location$(handloca - 11) = "p" OR location$(handloca - 11) = "n" OR location$(handloca - 11) = "o" OR location$(handloca - 11) = "1" THEN
  609.         DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  610.         location$(handloca) = "7": location$(handloca + 1) = "0"
  611.        ELSEIF location$(handloca + 11) = "p" OR location$(handloca + 11) = "l" OR location$(handloca + 11) = "m" OR location$(handloca + 11) = "2" THEN
  612.         DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  613.         location$(handloca) = "5": location$(handloca + 1) = "0"
  614.        ELSE
  615.         DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  616.         location$(handloca) = "8": location$(handloca + 1) = "0"
  617.        END IF
  618.       ELSEIF handloca <= 11 THEN
  619.        IF location$(handloca + 11) = "p" OR location$(handloca + 11) = "l" OR location$(handloca + 11) = "m" OR location$(handloca + 11) = "2" THEN
  620.         DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  621.         location$(handloca) = "5": location$(handloca + 1) = "0"
  622.        ELSE
  623.         DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  624.         location$(handloca) = "8": location$(handloca + 1) = "0"
  625.        END IF
  626.       END IF
  627.      CASE ELSE: PRINT "ERROR, PROGRAMME TERMINATED!!!": END
  628.      END SELECT
  629.    CASE "right"
  630.     IF handloca = 11 OR handloca = 22 OR handloca = 33 THEN dead: EXIT SUB
  631.     IF handloca = 44 OR handloca = 55 OR handloca = 66 THEN dead: EXIT SUB
  632.     IF handloca = 77 OR handloca = 88 THEN dead: EXIT SUB
  633.     IF location$(handloca + 1) <> "0" AND location$(handloca) <> "6" THEN dead: EXIT SUB
  634.     move handloca: DRAW "bh19p0,15bf19"
  635.     handloca = handloca + 1
  636.     SELECT CASE location$(handloca - 1)
  637.      CASE "5"
  638.       DRAW "a3p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 4
  639.       move handloca: DRAW "bh19p0,15bf19"
  640.       DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  641.       location$(handloca) = "8": location$(handloca - 1) = "o"
  642.      CASE "6"
  643.       move handloca: DRAW "bh19p0,15bf19"
  644.       IF handloca > 11 THEN
  645.        IF location$(handloca - 11) = "p" OR location$(handloca - 11) = "n" OR location$(handloca - 11) = "o" OR location$(handloca - 11) = "1" THEN
  646.         DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  647.         location$(handloca) = "7": location$(handloca - 1) = "0"
  648.        ELSEIF location$(handloca + 11) = "p" OR location$(handloca + 11) = "l" OR location$(handloca + 11) = "m" OR location$(handloca + 11) = "2" THEN
  649.         DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  650.         location$(handloca) = "5": location$(handloca - 1) = "0"
  651.        ELSE
  652.         DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  653.         location$(handloca) = "6": location$(handloca - 1) = "0"
  654.        END IF
  655.       ELSEIF handloca <= 11 THEN
  656.        IF location$(handloca + 11) = "p" OR location$(handloca + 11) = "l" OR location$(handloca + 11) = "m" OR location$(handloca + 11) = "2" THEN
  657.         DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  658.         location$(handloca) = "5": location$(handloca - 1) = "0"
  659.        ELSE
  660.         DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  661.         location$(handloca) = "6": location$(handloca - 1) = "0"
  662.        END IF
  663.       END IF
  664.      CASE "7"
  665.       DRAW "a0p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 1
  666.       move handloca: DRAW "bh19p0,15bf19"
  667.       DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  668.       location$(handloca) = "8": location$(handloca - 1) = "l"
  669.      CASE "8"
  670.       DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  671.       move handloca: DRAW "bh19p0,15bf19"
  672.       DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  673.       location$(handloca) = "8": location$(handloca - 1) = "q"
  674.      CASE ELSE: PRINT "ERROR, PROGRAMME TERMINATED!!!": END
  675.      END SELECT
  676.    CASE "down"
  677.     IF handloca + 11 > 88 THEN dead: EXIT SUB
  678.     IF location$(handloca + 11) <> "0" AND location$(handloca) <> "5" THEN dead: EXIT SUB
  679.     move handloca: DRAW "bh19p0,15bf19"
  680.     handloca = handloca + 11
  681.     SELECT CASE location$(handloca - 11)
  682.      CASE "5"
  683.       move handloca: DRAW "bh19p0,15bf19"
  684.       IF location$(handloca - 1) = "q" OR location$(handloca - 1) = "l" OR location$(handloca - 1) = "o" OR location$(handloca - 1) = "4" THEN
  685.        DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  686.        location$(handloca) = "8": location$(handloca - 11) = "0"
  687.       ELSEIF location$(handloca + 1) = "q" OR location$(handloca + 1) = "n" OR location$(handloca + 1) = "m" OR location$(handloca + 1) = "3" THEN
  688.        DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  689.        location$(handloca) = "6": location$(handloca - 11) = "0"
  690.       ELSE
  691.        DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  692.        location$(handloca) = "5": location$(handloca - 11) = "0"
  693.       END IF
  694.      CASE "6"
  695.       DRAW "a3p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 4
  696.       move handloca: DRAW "bh19p0,15bf19"
  697.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  698.       location$(handloca) = "7": location$(handloca - 11) = "o"
  699.      CASE "7"
  700.       DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 1
  701.       move handloca: DRAW "bh19p0,15bf19"
  702.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  703.       location$(handloca) = "7": location$(handloca - 11) = "p"
  704.      CASE "8"
  705.       DRAW "a2p3,15 bl5c1bu19d24r24u10l14u14l10bfp1,1a0"'corner 3
  706.       move handloca: DRAW "bh19p0,15bf19"
  707.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  708.       location$(handloca) = "7": location$(handloca - 11) = "n"
  709.      CASE ELSE: PRINT "ERROR, PROGRAMME TERMINATED!!!": END
  710.      END SELECT
  711.    CASE "take"
  712.     IF luggage$ <> "" THEN dead: EXIT SUB
  713.     move handloca: DRAW "bh19p0,15bf19"
  714.     SELECT CASE location$(handloca)
  715.      CASE "5"
  716.       IF handloca <= 11 THEN dead: EXIT SUB
  717.       SELECT CASE location$(handloca - 11)
  718.        CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "c", "e": dead: EXIT SUB
  719.        CASE "g", "i", "j", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  720.       END SELECT
  721.       DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 1
  722.       move handloca - 11: DRAW "bh19p0,15bf19"
  723.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  724.       waitawhile .5
  725.       move handloca - 11: DRAW "bh19p0,15bf19"
  726.       move handloca: DRAW "bh19p0,15bf19"
  727.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  728.       IF location$(handloca - 11) <> "0" THEN
  729.        luggage$ = location$(handloca - 11)
  730.       END IF
  731.       location$(handloca - 11) = "0"
  732.      CASE "6"
  733.       SELECT CASE handloca
  734.        CASE 12, 23, 34, 45, 56, 67, 78: dead: EXIT SUB
  735.        CASE ELSE
  736.         SELECT CASE location$(handloca - 1)
  737.          CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "c", "e": dead: EXIT SUB
  738.          CASE "g", "i", "j", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  739.         END SELECT
  740.         DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  741.         move handloca - 1: DRAW "bh19p0,15bf19"
  742.         DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  743.         waitawhile .5
  744.         move handloca - 1: DRAW "bh19p0,15bf19"
  745.         move handloca: DRAW "bh19p0,15bf19"
  746.         DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  747.         IF location$(handloca - 1) <> "0" THEN
  748.          luggage$ = location$(handloca - 1)
  749.         END IF
  750.         location$(handloca - 1) = "0"
  751.       END SELECT
  752.      CASE "7"
  753.       IF handloca + 11 > 88 THEN dead: EXIT SUB
  754.       SELECT CASE location$(handloca + 11)
  755.        CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "c", "e": dead: EXIT SUB
  756.        CASE "g", "i", "j", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  757.       END SELECT
  758.       DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 1
  759.       move handloca + 11: DRAW "bh19p0,15bf19"
  760.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  761.       waitawhile .5
  762.       move handloca + 11: DRAW "bh19p0,15bf19"
  763.       move handloca: DRAW "bh19p0,15bf19"
  764.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  765.       IF location$(handloca + 11) <> "0" THEN
  766.        luggage$ = location$(handloca + 11)
  767.       END IF
  768.       location$(handloca + 11) = "0"
  769.      CASE "8"
  770.       SELECT CASE handloca
  771.        CASE 11, 22, 33, 44, 55, 66, 77, 88: dead: EXIT SUB
  772.        CASE ELSE
  773.         SELECT CASE location$(handloca + 1)
  774.          CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "c", "e": dead: EXIT SUB
  775.          CASE "g", "i", "j", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  776.         END SELECT
  777.         DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  778.         move handloca + 1: DRAW "bh19p0,15bf19"
  779.         DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  780.         waitawhile .5
  781.         move handloca + 1: DRAW "bh19p0,15bf19"
  782.         move handloca: DRAW "bh19p0,15bf19"
  783.         DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  784.         IF location$(handloca + 1) <> "0" THEN
  785.          luggage$ = location$(handloca + 1)
  786.         END IF
  787.         location$(handloca + 1) = "0"
  788.       END SELECT
  789.      END SELECT
  790.       IF luggage$ <> "" THEN
  791.        DRAW "bm550,370bh19p0,15bf19"
  792.        SELECT CASE luggage$
  793.         CASE "b": DRAW "p8,15c4bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3"' key red
  794.         CASE "d": DRAW "p8,15c1bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3"' key blue
  795.         CASE "f": DRAW "p8,15c14bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3"' key yellow
  796.         CASE "h": DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3"' key green
  797.         CASE "k": DRAW "p8,15c4bl5g10f5e10f10e5h10e10h5g10h10g5f10brp4,4"'cross
  798.         CASE ELSE: PRINT "ERROR, PROGRAMME TERMINATED!!!": END
  799.        END SELECT
  800.       END IF
  801.    CASE "loose"
  802.     IF luggage$ = "" THEN dead: EXIT SUB
  803.     move handloca: DRAW "bh19p0,15bf19"
  804.     SELECT CASE location$(handloca)
  805.      CASE "5"
  806.       IF handloca <= 11 THEN dead: EXIT SUB
  807.       SELECT CASE location$(handloca - 11)
  808.        CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "d": dead: EXIT SUB
  809.        CASE "f", "h", "k", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  810.       END SELECT
  811.       DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 1
  812.       move handloca - 11: DRAW "bh19p0,15bf19"
  813.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  814.       waitawhile .5
  815.       DRAW "bm550,370bh19p0,15bf19"
  816.       move handloca - 11: DRAW "bh19p0,15bf19"
  817.       SELECT CASE location$(handloca - 11)
  818.        CASE "0"
  819.         SELECT CASE luggage$
  820.          CASE "b": DRAW "p8,15c4bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 11) = luggage$ ' key red
  821.          CASE "d": DRAW "p8,15c1bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 11) = luggage$  ' key blue
  822.          CASE "f": DRAW "p8,15c14bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 11) = luggage$ ' key yellow
  823.          CASE "h": DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 11) = luggage$ ' key green
  824.          CASE "k": DRAW "p8,15c4bl5g10f5e10f10e5h10e10h5g10h10g5f10brp4,4": location$(handloca - 11) = luggage$ 'cross
  825.         END SELECT
  826.        CASE "c": location$(handloca - 11) = "0": IF luggage$ <> "b" THEN dead: EXIT SUB
  827.        CASE "e": location$(handloca - 11) = "0": IF luggage$ <> "d" THEN dead: EXIT SUB
  828.        CASE "g": location$(handloca - 11) = "0": IF luggage$ <> "f" THEN dead: EXIT SUB
  829.        CASE "i": location$(handloca - 11) = "0": IF luggage$ <> "h" THEN dead: EXIT SUB
  830.        CASE "j": location$(handloca - 11) = "0": IF luggage$ <> "k" THEN dead: EXIT SUB
  831.         move handloca: DRAW "bh19p0,15bf19"
  832.         DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  833.         win              ' YOU WIN!!!!
  834.         EXIT SUB
  835.       END SELECT
  836.       move handloca: DRAW "bh19p0,15bf19"
  837.       DRAW "a0bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 1
  838.       luggage$ = ""
  839.     CASE "6"
  840.      IF handloca = 1 OR handloca = 12 OR handloca = 23 THEN dead: EXIT SUB
  841.      IF handloca = 34 OR handloca = 45 OR handloca = 56 THEN dead: EXIT SUB
  842.      IF handloca = 67 OR handloca = 78 THEN dead: EXIT SUB
  843.      SELECT CASE location$(handloca - 1)
  844.       CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "d": dead: EXIT SUB
  845.       CASE "f", "h", "k", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  846.      END SELECT
  847.      DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  848.      move handloca - 1: DRAW "bh19p0,15bf19"
  849.      DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  850.      waitawhile .5
  851.      DRAW "bm550,370bh19p0,15bf19"
  852.      move handloca - 1: DRAW "bh19p0,15bf19"
  853.      SELECT CASE location$(handloca - 1)
  854.       CASE "0"
  855.        SELECT CASE luggage$
  856.         CASE "b": DRAW "p8,15c4bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 1) = luggage$ ' key red
  857.         CASE "d": DRAW "p8,15c1bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 1) = luggage$  ' key blue
  858.         CASE "f": DRAW "p8,15c14bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 1) = luggage$ ' key yellow
  859.         CASE "h": DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca - 1) = luggage$ ' key green
  860.         CASE "k": DRAW "p8,15c4bl5g10f5e10f10e5h10e10h5g10h10g5f10brp4,4": location$(handloca - 1) = luggage$ 'cross
  861.        END SELECT
  862.       CASE "c": location$(handloca - 1) = "0": IF luggage$ <> "b" THEN dead: EXIT SUB
  863.       CASE "e": location$(handloca - 1) = "0": IF luggage$ <> "d" THEN dead: EXIT SUB
  864.       CASE "g": location$(handloca - 1) = "0": IF luggage$ <> "f" THEN dead: EXIT SUB
  865.       CASE "i": location$(handloca - 1) = "0": IF luggage$ <> "h" THEN dead: EXIT SUB
  866.       CASE "j": location$(handloca - 1) = "0": IF luggage$ <> "k" THEN dead: EXIT SUB
  867.        move handloca: DRAW "bh19p0,15bf19"
  868.        DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  869.        win  ' YOU WIN!!!!
  870.        EXIT SUB
  871.      END SELECT
  872.      move handloca: DRAW "bh19p0,15bf19"
  873.      DRAW "a1bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 2
  874.      luggage$ = ""
  875.     CASE "7"
  876.       IF handloca > 77 THEN dead: EXIT SUB
  877.       SELECT CASE location$(handloca + 11)
  878.        CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "d": dead: EXIT SUB
  879.        CASE "f", "h", "k", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  880.       END SELECT
  881.       DRAW "a0p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 1
  882.       move handloca + 11: DRAW "bh19p0,15bf19"
  883.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  884.       waitawhile .5
  885.       DRAW "bm550,370bh19p0,15bf19"
  886.       move handloca + 11: DRAW "bh19p0,15bf19"
  887.       SELECT CASE location$(handloca + 11)
  888.        CASE "0"
  889.         SELECT CASE luggage$
  890.          CASE "b": DRAW "p8,15c4bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 11) = luggage$ ' key red
  891.          CASE "d": DRAW "p8,15c1bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 11) = luggage$  ' key blue
  892.          CASE "f": DRAW "p8,15c14bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 11) = luggage$ ' key yellow
  893.          CASE "h": DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 11) = luggage$ ' key green
  894.          CASE "k": DRAW "p8,15c4bl5g10f5e10f10e5h10e10h5g10h10g5f10brp4,4": location$(handloca + 11) = luggage$ 'cross
  895.         END SELECT
  896.        CASE "c": location$(handloca + 11) = "0": IF luggage$ <> "b" THEN dead: EXIT SUB
  897.        CASE "e": location$(handloca + 11) = "0": IF luggage$ <> "d" THEN dead: EXIT SUB
  898.        CASE "g": location$(handloca + 11) = "0": IF luggage$ <> "f" THEN dead: EXIT SUB
  899.        CASE "i": location$(handloca + 11) = "0": IF luggage$ <> "h" THEN dead: EXIT SUB
  900.        CASE "j": location$(handloca + 11) = "0": IF luggage$ <> "k" THEN dead: EXIT SUB
  901.         move handloca: DRAW "bh19p0,15bf19"
  902.         DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  903.         win  ' YOU WIN!!!!
  904.         EXIT SUB
  905.       END SELECT
  906.       move handloca: DRAW "bh19p0,15bf19"
  907.       DRAW "a2bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 3
  908.       luggage$ = ""
  909.     CASE "8"
  910.      IF handloca = 11 OR handloca = 22 THEN dead: EXIT SUB
  911.      IF handloca = 33 OR handloca = 44 OR handloca = 55 THEN dead: EXIT SUB
  912.      IF handloca = 66 OR handloca = 77 OR handloca = 88 THEN dead: EXIT SUB
  913.      SELECT CASE location$(handloca + 1)
  914.       CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "d": dead: EXIT SUB
  915.       CASE "f", "h", "k", "l", "m", "n", "o", "p", "q": dead: EXIT SUB
  916.      END SELECT
  917.      DRAW "a1p3,15bl5bd19c1u38r10d38l10bep1,1a0"'straight 2
  918.      move handloca + 1: DRAW "bh19p0,15bf19"
  919.      DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  920.      waitawhile .5
  921.      DRAW "bm550,370bh19p0,15bf19"
  922.      move handloca + 1: DRAW "bh19p0,15bf19"
  923.      SELECT CASE location$(handloca + 1)
  924.       CASE "0"
  925.        SELECT CASE luggage$
  926.         CASE "b": DRAW "p8,15c4bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 1) = luggage$' key red
  927.         CASE "d": DRAW "p8,15c1bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 1) = luggage$ ' key blue
  928.         CASE "f": DRAW "p8,15c14bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 1) = luggage$' key yellow
  929.         CASE "h": DRAW "p8,15c2bd2u8e4h4g4f4bu2ubd5d18u2nr2u2nru2nr3": location$(handloca + 1) = luggage$' key green
  930.         CASE "k": DRAW "p8,15c4bl5g10f5e10f10e5h10e10h5g10h10g5f10brp4,4": location$(handloca + 1) = luggage$'cross
  931.        END SELECT
  932.       CASE "c": location$(handloca + 1) = "0": IF luggage$ <> "b" THEN dead: EXIT SUB
  933.       CASE "e": location$(handloca + 1) = "0": IF luggage$ <> "d" THEN dead: EXIT SUB
  934.       CASE "g": location$(handloca + 1) = "0": IF luggage$ <> "f" THEN dead: EXIT SUB
  935.       CASE "i": location$(handloca + 1) = "0": IF luggage$ <> "h" THEN dead: EXIT SUB
  936.       CASE "j": location$(handloca + 1) = "0": IF luggage$ <> "k" THEN dead: EXIT SUB
  937.        move handloca: DRAW "bh19p0,15bf19"
  938.        DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  939.        win  ' YOU WIN!!!!
  940.        EXIT SUB
  941.      END SELECT
  942.      move handloca: DRAW "bh19p0,15bf19"
  943.      DRAW "a3bd19bl5p3,15c1u15c8h5u5e5d5r10u5f5d5g5l10bup8,8bdc1r10d15l10bep1,1a0"'hand 4
  944.      luggage$ = ""
  945.    END SELECT
  946. dead: EXIT SUB
  947.  
  948. SUB waitawhile (howlong)      ' wait <howlong> seconds
  949. thetime = TIMER
  950. LOOP UNTIL TIMER >= thetime + howlong
  951.  
  952. SUB win
  953. LOCATE 1, 1: PRINT "You win!!!"
  954. IF level + 1 <> 16 THEN
  955.  LOCATE 2, 1: PRINT "The password for level"; level + 1; "is: ";
  956.   SELECT CASE level
  957.    CASE 1: PRINT FIX(ATN(TAN(PI / 2.004312)) * 9954205)
  958.    CASE 2: PRINT FIX(ATN(COS(PI / 5.643)) * 76120967)
  959.    CASE 3: PRINT FIX(ATN(SIN(PI / 38.7743)) * 1116528679)
  960.    CASE 4: PRINT FIX(ATN(ATN(PI / 42.8664)) * 1105218562)
  961.    CASE 5: PRINT FIX(TAN(PI / 39.954) * 999421075)
  962.    CASE 6: PRINT FIX(ATN(PI / 45.87) * 894321765)
  963.    CASE 7: PRINT FIX(COS(PI / 40) * 34569247)
  964.    CASE 8: PRINT FIX(SIN(COS(PI / 40)) * 85431858)
  965.    CASE 9: PRINT FIX(COS(SIN(PI / 40)) * 63628747)
  966.    CASE 10: PRINT FIX(COS(TAN(PI / 35.9855)) * 63628747)
  967.    CASE 11: PRINT FIX(TAN(COS(PI / 5.643)) * 76120967)
  968.    CASE 12: PRINT FIX(COS(COS(PI / 5.643)) * 76120967)
  969.    CASE 13: PRINT FIX(SIN(SIN(PI / 5.643)) * 76120967)
  970.    CASE 14: PRINT FIX(TAN(TAN(PI / 5.643)) * 76120967)
  971.  
  972. DO: userinput$ = INKEY$: LOOP UNTIL userinput$ <> ""
  973. level = level + 1
  974. try = 1
  975.  
  976.  
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: QB games collection ...
« Reply #3 on: October 25, 2020, 02:44:27 pm »
Screen looks nice but no instructions. No response from key presses, where are the instructions?

Code: QB64: [Select]
  1. SUB menu
  2.     again:
  3.     CLS
  4.     COLOR 1: LOCATE 12, 33: PRINT "Your choice? (1-4)"
  5.     COLOR 2: LOCATE 13, 33: PRINT "1. Play a game"
  6.     COLOR 4: LOCATE 14, 33: PRINT "2. Instructions"
  7.     COLOR 14: LOCATE 15, 33: PRINT "3. About this game"
  8.     COLOR 6: LOCATE 16, 33: PRINT "4. Enter a password for a level."
  9.     COLOR 10: LOCATE 17, 33: PRINT "5. Exit"
  10.  
  11.     DO: choice$ = INKEY$: LOOP UNTIL choice$ <> ""
  12.  
  13.     SELECT CASE VAL(choice$)
  14.         CASE 1: EXIT SUB
  15.         CASE 2:
  16.             CLS
  17.             COLOR 2: LOCATE 12, 20: PRINT "I put the rules in a Sub called hlptext. If you want to"
  18.             COLOR 2: LOCATE 13, 20: PRINT "read the rules, you have to do this:"
  19.             COLOR 4: LOCATE 15, 20: PRINT "- Press F10 and Enter (You will return to QBASIC)"
  20.             COLOR 14: LOCATE 16, 20: PRINT "- Press F2"
  21.             COLOR 1: LOCATE 17, 20: PRINT "- Select 'hlptext' and press Enter."
  22.             DO: LOOP UNTIL INKEY$ <> ""
  23.             GOTO again
  24.  

Seems cruel trick, where are the instructions?

Aurel, did you actually play this thing? Show me a screen shot that you have.

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
Re: QB games collection ...
« Reply #4 on: October 25, 2020, 02:48:18 pm »
Yes it is little bit cruel,yes i tried of course ...wait a moment and i post you a shot
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
Re: QB games collection ...
« Reply #5 on: October 25, 2020, 02:52:45 pm »
here is shot ..hmm strange game but looking good
Instruction is in program ...
RobotArmQB64.png
* RobotArmQB64.png (Filesize: 60.19 KB, Dimensions: 1245x902, Views: 155)
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: QB games collection ...
« Reply #6 on: October 25, 2020, 02:53:05 pm »
Dug them up

Code: QB64: [Select]
  1. SUB hlptext
  2.     '
  3.     '                             R O B O T 3.2
  4.     '                            ---------------
  5.     '                             by Robin Ohm
  6.     'RULES:
  7.     '
  8.     'Maybe It's wise to print this information!!!
  9.     '
  10.     'In this game there are 15 levels. (Maybe a few more or less) If you have
  11.     'won all the levels, you win the game.
  12.     'To win a level you only have to bring the CROSS to the END using the
  13.     'robotarm. To control the robotarm you'll have to write a program.
  14.     'If you have won all the levels you win the game.
  15.     '
  16.     '
  17.     'THE COMMANDS YOU CAN GIVE TO THE ROBOTARM:
  18.     '
  19.     'To give a command to the robotarm you have to press a key. These are the
  20.     'keys on the number pad. (The block of numbers on your right)
  21.     '
  22.     'ALWAYS MAKE SURE NUMLOCK IS ON!!!!!
  23.     '-----------------------------------
  24.     '
  25.     '(arrow keys on the number pad)
  26.     '-up: the robotarm moves up one square.
  27.     '-down: the robotarm moves down one square.
  28.     '-left: the robotarm move one square to the left.
  29.     '-right: (guess what) the robotarm moves one square to the right.
  30.     '
  31.     '(the keys 't' and 'l')
  32.     '-take: the robotarm takes what is in front of him. For example a key
  33.     'or the cross.
  34.     '-loose: the robotarm puts whatever he's carrying in front of him.
  35.     ' You can also use this to unlock doors and bring the CROSS to END.
  36.     '
  37.     'First you have to write the programme using the commands above. The robot-
  38.     'arm won't immediatly react if you press a key. If you think you're ready
  39.     'you just press ENTER and the robotarm starts executing the programme you
  40.     'have written.
  41.     '
  42.     '
  43.     'OBJECTS IN THE MAZE:
  44.     '
  45.     'Wall: A grey square. If you hit a wall you're dead immediatly.
  46.     'Mine: If you hit a mine, you're dead too.
  47.     'Robotarm: The robotarm you can control. It has light- and dark-blue colors.
  48.     'Keys: There are red, yellow, green and blue keys. Keys are used to open
  49.     ' doors. With a red key you can open red doors, etc... But be careful!!
  50.     ' You can only use keys one time!!!
  51.     ' To pick up a key you have to point the hand of the robotarm to the key and
  52.     ' give the command "take". The arm will now take the key. In the
  53.     ' bottom-right corner of the screen in the black square you will see a
  54.     ' key appear. In that square you can see what you are carrying. You can only
  55.     ' carry one thing at a time.
  56.     'Doors: There are red, yellow, green and blue doors and can be opened by a
  57.     ' key of the same color. To open a door you have to point the hand of the
  58.     ' robotarm to the door and give te command "loose". The door and the key
  59.     ' you were carrying are gone and you have returned to the same position.
  60.     'Cross: If you want to win the level you'll have to bring the cross to
  61.     ' the square which says END. You can pick up the cross the same way as you do
  62.     ' with keys.
  63.     'END: This is the point you have to deliver the cross to. To deliver the
  64.     ' cross you only have to this:
  65.     ' - pick up the cross (see: Cross)
  66.     ' - point the hand of the robotarm to END and give the command: "loose". If
  67.     '   all goes well you have now won the level and can start with the next
  68.     '   one.
  69.     '
  70.     '
  71.     'TESTLEVEL:
  72.     '
  73.     'Maybe you don't understand the rules totally, so I'll give you the solution
  74.     'to the first level.
  75.     'If you still have questions, just send an e-mail to rkohm@euronet.nl
  76.     '
  77.     '- Start Qbasic and load robotv32.bas
  78.     '- Press SHIFT + F5
  79.     '- Select "1" from the menu.
  80.     '- Give the following commands:
  81.     '
  82.     '  l,l,l,u,u,u,u,u,t,d,d,d,d,r,r,u,lo,d,r,r,d,d,r,r,r,r,r,t,u,u,u,u,u,u,l
  83.     '  l,l,d,lo,d,t,u,l,l,d,d,l,l,u,lo
  84.     '
  85.     '(l = arrow left on the number pad)
  86.     '(r = arrow right on the number pad)
  87.     '(u = arrow up on the number pad)
  88.     '(d = arrow down on the number pad)
  89.     '
  90.     '(t = press the 't' (from 'take') )
  91.     '(lo = press the 'l' (from 'loose') )
  92.     '
  93.     '
  94.     'CORRECTING MISTAKES:
  95.     '
  96.     'If you make a mistake while you are writing the program for the robot-arm,
  97.     'you can correct them with the following keys:
  98.     '
  99.     'ALWAYS USE THE KEYS ON THE NUMBER PAD AND MAKE SURE NUMLOCK IS ON!!!
  100.     '--------------------------------------------------------------------
  101.     '
  102.     'PageUp: Move up one command in the list.
  103.     'PageDown: Move down one command in the list.
  104.     'Insert: Insert a blank line.
  105.     'Delete: Delete the line.
  106.     'F1: Forget the old list and start a new one.
  107.     '
  108.     'NOTE: Deleting and inserting a line takes a few moments, especially on slow
  109.     'computers. So only press Insert or Delete once if you want to delete or
  110.     'insert only one line!!

Quote
..hmm strange game but looking good
Yeah and strange way to do rules / instructions.

So this is suppose to work off keypad.

Oh cool! you write a program for arm to work.
« Last Edit: October 25, 2020, 02:57:16 pm by bplus »

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
Re: QB games collection ...
« Reply #7 on: October 25, 2020, 02:58:10 pm »
Yes you must use num keypad ...but is strange no mather i press left,left avoiding ostacles i am dead ...heh
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////