home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OS9_6X09 / GAMES / minefield.lzh / minefield.b09 < prev    next >
Text File  |  2001-03-23  |  5KB  |  327 lines

  1. PROCEDURE Minefield
  2. BASE 0
  3. DIM m(30,20),n(30,20),tt(4),sx(101),syy(101):INTEGER
  4. DIM hour,min,sec:INTEGER
  5. DIM starthour$,startsec$,startmin$:STRING[2]
  6. DIM b,c,z,r,mx,my,l,h,v,oh,ov,x,y:INTEGER
  7. DIM sk,st,sy:INTEGER
  8. DIM f$,bb$:STRING[32]
  9. DIM t,timer:INTEGER
  10. DIM qq$:STRING[1]
  11. SHELL "tmode -pause -echo"
  12. RUN GFX2("DEFCOL")
  13. RUN GFX2("PALETTE",3,16)
  14. RUN GFX2("BORDER",2)
  15. x=RND(-(VAL(RIGHT$(DATE$,2))))
  16. 1 FOR x=0 TO 29
  17. FOR y=0 TO 19
  18. m(x,y)=0
  19. n(x,y)=0
  20. NEXT y
  21. NEXT x
  22. FOR x=0 TO 3
  23. tt(x)=0
  24. NEXT x
  25. FOR x=0 TO 100
  26. sx(x)=0
  27. syy(x)=0
  28. NEXT x
  29. x=0
  30. y=0
  31. b=0
  32. c=0
  33. z=0
  34. r=0
  35. mx=0
  36. my=0
  37. l=0
  38. h=0
  39. v=0
  40. oh=0
  41. ov=0
  42. 5 GOTO 10
  43. 6 RUN GFX2("COLOR",0,8)
  44. RUN GFX2("FILL",(h*8+16)*2,v*8+16)
  45. RUN GFX2("COLOR",8,2)
  46. RETURN 
  47. 7 RUN GFX2("COLOR",4,8)
  48. RUN GFX2("FILL",(h*8+16)*2,v*8+16)
  49. RUN GFX2("COLOR",8,2)
  50. RETURN 
  51. 8 RUN GFX2("COLOR",3,8)
  52. RUN GFX2("FILL",(h*8+16)*2,v*8+16)
  53. RUN GFX2("COLOR",8,2)
  54. RETURN 
  55. 9 RUN GFX2("COLOR",1,8)
  56. RUN GFX2("FILL",(h*8+16)*2,v*8+16)
  57. RUN GFX2("COLOR",8,2)
  58. RETURN 
  59. 10 RUN GFX2("CUROFF")
  60. 20 RUN GFX2("COLOR",8,2)
  61. 30 RUN GFX2("CLEAR")
  62. RUN LOCATE(15,1)
  63. PRINT "MINEFIELD!"
  64. RUN LOCATE(9,3)
  65. PRINT "By Kenneth Reighard, Jr."
  66. RUN LOCATE(8,15)
  67. PRINT "OS9 Version by Jim Gerrie"
  68. RUN LOCATE(16,6)
  69. PRINT "1. Easy"
  70. RUN LOCATE(16,7)
  71. PRINT "2. Medium"
  72. RUN LOCATE(16,8)
  73. PRINT "3. Hard"
  74. 50 RUN INKEY(qq$)
  75. IF qq$="" THEN 50
  76. IF qq$<>CHR$(49) AND qq$<>CHR$(50) AND qq$<>CHR$(51) THEN 50
  77. sk=VAL(qq$)
  78. IF sk<1 OR sk>3 THEN 50
  79. RUN LOCATE(10,20)
  80. PRINT "One Moment Please..."
  81. 60 ON sk GOTO 65,70,75
  82. 65 mx=9
  83. my=9
  84. b=10
  85. GOTO 80
  86. 70 mx=19
  87. my=14
  88. b=45
  89. GOTO 80
  90. 75 mx=29
  91. my=19
  92. b=99
  93. 80 l=b
  94. 85 f$="b7,7N5SE2W1"
  95. bb$="B4,4NE4SE4SW4NW4E10"
  96. 90 r=(mx+1)*(my+1)-b
  97. 95 REM Randomize Timer using H
  98. 100 FOR z=1 TO b
  99. 105 h=RND(mx)
  100. v=RND(my)
  101. 110 IF m(h,v)=-1 THEN 
  102. GOTO 105
  103. ELSE 
  104. m(h,v)=-1
  105. ENDIF 
  106. 115 NEXT z
  107. 120 FOR v=0 TO my
  108. FOR h=0 TO mx
  109. 125 IF m(h,v)<>-1 THEN 155
  110. 130 FOR y=-1 TO 1
  111. FOR x=-1 TO 1
  112. 135 IF x=0 AND y=0 THEN 150
  113. 140 IF h+x<0 OR h+x>mx OR v+y<0 OR v+y>my THEN 150
  114. 145 IF m(h+x,v+y)<>-1 THEN 
  115. m(h+x,v+y)=m(h+x,v+y)+1
  116. ENDIF 
  117. 150 NEXT x
  118. NEXT y
  119. 155 NEXT h
  120. NEXT v
  121. 160 RUN GFX2("COLOR",8,2)
  122. RUN GFX2("CLEAR")
  123. 165 RUN LOCATE(34,0)
  124. PRINT "Mines"
  125. 170 RUN GFX2("BOX",15*2,15,(mx*8+23)*2,my*8+23)
  126. 175 RUN GFX2("COLOR",4,8)
  127. RUN GFX2("FILL",16*2,16)
  128. RUN GFX2("COLOR",8,2)
  129. 180 FOR x=0 TO mx
  130. 185 RUN GFX2("LINE",(x*8+15)*2,15,(x*8+15)*2,23+my*8)
  131. 190 NEXT x
  132. 195 FOR y=0 TO my
  133. 200 RUN GFX2("LINE",15*2,y*8+15,(23+mx*8)*2,y*8+15)
  134. 205 NEXT y
  135. 210 h=0
  136. v=0
  137. t=0
  138. 215 starthour$=MID$(DATE$,10,2)
  139. startmin$=MID$(DATE$,13,2)
  140. startsec$=MID$(DATE$,16,2)
  141. hour=VAL(starthour$)
  142. min=VAL(startmin$)
  143. sec=VAL(startsec$)
  144. timer=hour*60*60+min*60+sec
  145. 220 RUN GFX2("COLOR",2,8)
  146. RUN GFX2("BOX",(h*8+15)*2,v*8+15,(h*8+23)*2,v*8+23)
  147. 225 IF r=0 THEN 440
  148. 235 RUN GFX2("COLOR",8,2)
  149. RUN LOCATE(36,1)
  150. PRINT "  "; 
  151. RUN LOCATE(36,1)
  152. PRINT l; 
  153. 240 RUN INKEY(qq$)
  154. IF qq$="" THEN 240
  155. 245 RUN GFX2("COLOR",8,2)
  156. RUN GFX2("BOX",(h*8+15)*2,v*8+15,(h*8+23)*2,v*8+23)
  157. 250 IF qq$=CHR$(8) THEN 
  158. h=h-1
  159. IF h<0 THEN 
  160. h=mx
  161. GOTO 220
  162. ELSE 
  163. GOTO 220
  164. ENDIF 
  165. ENDIF 
  166. 255 IF qq$=CHR$(9) THEN 
  167. h=h+1
  168. IF h>mx THEN 
  169. h=0
  170. GOTO 220
  171. ELSE 
  172. GOTO 220
  173. ENDIF 
  174. ENDIF 
  175. 260 IF qq$=CHR$(10) THEN 
  176. v=v+1
  177. IF v>my THEN 
  178. v=0
  179. GOTO 220
  180. ELSE 
  181. GOTO 220
  182. ENDIF 
  183. ENDIF 
  184. 265 IF qq$=CHR$(12) THEN 
  185. v=v-1
  186. IF v<0 THEN 
  187. v=my
  188. GOTO 220
  189. ELSE 
  190. GOTO 220
  191. ENDIF 
  192. ENDIF 
  193. 270 IF qq$=CHR$(13) THEN 
  194. IF n(h,v)=0 AND l>0 THEN 
  195. GOSUB 9
  196. RUN GFX2("COLOR",8,2)
  197. RUN GFX2("SETDPTR",(h*8+15)*2,v*8+15)
  198. RUN GFX2("DRAW",f$)
  199. n(h,v)=1
  200. l=l-1
  201. GOTO 220
  202. ELSE 
  203. IF n(h,v)=1 THEN 
  204. RUN GFX2("COLOR",4,8)
  205. RUN GFX2("SETDPTR",(h*8+15)*2,v*8+15)
  206. RUN GFX2("DRAW",f$)
  207. GOSUB 7
  208. n(h,v)=0
  209. l=l+1
  210. GOTO 220
  211. ELSE 
  212. GOTO 220
  213. ENDIF 
  214. ENDIF 
  215. ENDIF 
  216. 275 IF qq$<>CHR$(32) THEN 220
  217. 280 IF n(h,v)<>0 THEN 220
  218. 285 c=m(h,v)
  219. 290 GOSUB 6
  220. 295 IF c=-1 THEN 400
  221. 300 r=r-1
  222. 305 IF c=0 THEN 
  223. n(h,v)=3
  224. GOTO 325
  225. ENDIF 
  226. 310 RUN GFX2("COLOR",3,8)
  227. RUN LOCATE(h+2,v+2)
  228. PRINT CHR$(c+48)
  229. 315 n(h,v)=2
  230. 320 GOTO 220
  231. 325 oh=h
  232. ov=v
  233. 330 st=1
  234. sx(st)=h
  235. syy(st)=v
  236. 335 IF st=0 THEN 
  237. h=oh
  238. v=ov
  239. GOTO 220
  240. ENDIF 
  241. 340 x=sx(st)
  242. y=syy(st)
  243. 345 FOR h=x-1 TO x+1
  244. FOR v=y-1 TO y+1
  245. 350 IF h<0 OR h>mx OR v<0 OR v>my THEN 390
  246. 355 IF n(h,v)<>0 THEN 390
  247. 360 IF m(h,v)>0 THEN 
  248. n(h,v)=2
  249. r=r-1
  250. GOSUB 6
  251. RUN GFX2("COLOR",3,8)
  252. RUN LOCATE(h+2,v+2)
  253. PRINT CHR$(m(h,v)+48)
  254. GOTO 390
  255. ENDIF 
  256. 365 IF m(h,v)=-1 THEN 390
  257. 370 GOSUB 6
  258. 375 n(h,v)=3
  259. 380 r=r-1
  260. 385 st=st+1
  261. sx(st)=h
  262. syy(st)=v
  263. GOTO 340
  264. 390 NEXT v
  265. NEXT h
  266. 395 st=st-1
  267. GOTO 335
  268. 400 GOSUB 8
  269. RUN GFX2("COLOR",2)
  270. RUN GFX2("SETDPTR",(h*8+15)*2,v*8+15)
  271. RUN GFX2("DRAW",bb$)
  272. RUN GFX2("BELL")
  273. 405 FOR v=0 TO my
  274. FOR h=0 TO mx
  275. 410 IF m(h,v)=-1 THEN 
  276. GOSUB 8
  277. RUN GFX2("COLOR",2)
  278. RUN GFX2("SETDPTR",(h*8+15)*2,v*8+15)
  279. RUN GFX2("DRAW",bb$)
  280. ENDIF 
  281. 415 IF n(h,v)=1 AND m(h,v)<>-1 THEN 
  282. GOSUB 9
  283. RUN GFX2("COLOR",6,8)
  284. RUN GFX2("SETDPTR",(h*8+15)*2+4,v*8+15)
  285. RUN GFX2("DRAW","SE8B0,-8SW8")
  286. ENDIF 
  287. 420 NEXT h
  288. NEXT v
  289. 425 RUN GFX2("COLOR",8,2)
  290. RUN LOCATE(11,23)
  291. 435 GOTO 480
  292. 440 starthour$=MID$(DATE$,10,2)
  293. hour=VAL(starthour$)
  294. startmin$=MID$(DATE$,13,2)
  295. min=VAL(startmin$)
  296. startsec$=MID$(DATE$,13,2)
  297. sec=VAL(startsec$)
  298. t=hour*60*60+min*60+sec
  299. 445 RUN LOCATE(15,22)
  300. PRINT "Time= "; t-timer
  301. RUN GFX2("BOX",(h*8+15)*2,v*8+15,(h*8+23)*2,v*8+23)
  302. 450 FOR v=0 TO my
  303. FOR h=0 TO mx
  304. 455 IF m(h,v)=-1 AND n(h,v)<>1 THEN 
  305. GOSUB 9
  306. RUN GFX2("COLOR",5,8)
  307. RUN GFX2("SETDPTR",(h*8+15)*2,v*8+15)
  308. RUN GFX2("DRAW",f$)
  309. ENDIF 
  310. 460 NEXT h
  311. NEXT v
  312. 465 RUN GFX2("COLOR",8,2)
  313. RUN LOCATE(11,23)
  314. 480 PRINT "Play Again (y/n)? "; 
  315. 560 RUN INKEY(qq$)
  316. IF qq$="Y" OR qq$="y" THEN 
  317. GOTO 1
  318. ENDIF 
  319. IF qq$<>"N" AND qq$<>"n" THEN 560
  320. SHELL "tmode echo"
  321. RUN GFX2("CURON")
  322. END 
  323. PROCEDURE LOCATE
  324. PARAM A,B:INTEGER
  325. RUN GFX2("CURXY",A,B)
  326. END 
  327.