Guest User

Untitled

a guest
Sep 19th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 200 GOSUB 3000:GOSUB 2010
  2. 210 X=W/2-1:Y=H/2-1:FC=0:FL=-1
  3. 220 GOSUB 1010
  4. 230 KE$="":NX=X:NY=Y
  5. 250 KE$=INKEY$:IF KE$="" GOTO 250
  6. 255 IF KE$="z" THEN END
  7. 260 IF KE$<>"i" THEN 270
  8. 261 NY=Y-1:FC=INT (FC/2)*2+1:IF NY >=0 THEN 300
  9. 262 NY=0:IF NX<>W/2-1 OR MID$(DR$,1,1)=" " THEN 300
  10. 263 GOSUB 2010: NX=W/2-1:NY=H-2:GOTO 320
  11. 270 IF KE$<>"j" THEN 280
  12. 271 NX=X-1:FC=FC-INT(FC/2)*2+2:IF NX >=0 THEN 300
  13. 272 NX=0:IF NY<>H/2-1 OR MID$(DR$,3,1)=" " THEN 300
  14. 273 GOSUB 2010:NX=W-2:NY=H/2-1:GOTO 320
  15. 280 IF KE$<>"k" THEN 290
  16. 281 NX=X+1:FC=FC-INT(FC/2)*2:IF NX<=W-2 THEN 300
  17. 282 NX=W-2:IF NY<>H/2-1 OR MID$(DR$,4,1)=" " THEN 300
  18. 283 GOSUB 2010:NX=0:NY=H/2-1:GOTO 320
  19. 290 IF KE$<>"m" THEN 300
  20. 291 NY=Y+1:FC=INT (FC/2)*2:IF NY<=H-2 THEN 300
  21. 292 NY=H-2:IF NX<>W/2-1 OR MID$(DR$,2,1)=" " THEN 300
  22. 293 GOSUB 2010:NX=W/2-1:NY=0:GOTO 320
  23. 300 IF NX=X AND NY=Y THEN 230
  24. 320 X=NX:Y=NY:GOSUB 1010
  25. 330 GOTO 230
  26. 1000 REM move character
  27. 1010 XP=X*16+8+XO*2+24:YP=Y*16+8+YO+50
  28. 1020 REMIF FL<>FC AND FL>=0 THEN SPRITE FL+1,0
  29. 1030 PUT SPRITE 1,(XP,YP)
  30. 1040 REM IF FL<>FC THEN SPRITE FC+1,1,10,0,0,0,1
  31. 1050 FL=FC:RETURN
  32. 1999 REM
  33. 2000 REM create room
  34. 2010 FOR I=1 TO 8:PUT SPRITE 1,(1,1),15,1
  35. 2015 FL=-1:COLOR 15,4,4:SCREEN 2
  36. 2020 W=INT (RND(1)*4)*2+6:H=INT (RND(1)*4)*2+6
  37. 2040 XO=(250 -W*8)/2:YO=(190-H*16)/2
  38. 2050 WC=3+INT(RND(1)*14)
  39. 2060 COLOR 15,WC
  40. 2079 REM upper line
  41. 2080 LINE (XO+8,YO)-(XO+(W-1)*8,YO+3),,BF
  42. 2089 REM bottom line
  43. 2090 LINE (XO+8,YO+H*16-4)-(XO+(W-1)*8,YO+H*16-1),,BF
  44. 2099 REM left line
  45. 2100 LINE (XO,YO+16)-(XO+1,YO+(H-1)*16),,BF
  46. 2109 REM right line
  47. 2110 LINE (XO+W*8-2,YO+16)-(XO+W*8-1,YO+(H-1)*16),,BF
  48. 2119 REM corners
  49. 2120 LINE (XO+(W-1)*8,YO)-(XO+(W-1)*8+8,YO+16):REM uppper right
  50. 2125 LINE (XO+(W-1)*8+8,YO+(H-1)*16)-(XO+(W-1)*8,YO+(H-1)*16+16):REM downright
  51. 2130 LINE (XO+8,YO)-(XO,YO+16):REM uper left
  52. 2135 LINE (XO,YO+(H-1)*16)-(XO+8,YO+(H-1)*16+16):REM left bottom
  53. 2150 DR=1+INT (RND(1)*14)
  54. 2160 DR$="":DD$=" n s w e"
  55. 2170 FOR I=1 TO 4
  56. 2180 DD=DR-INT (DR/2)*2:DR =INT(DR/2):DR$=DR$+MID$(DD$,I*2-1+DD,1)
  57. 2190 IF DD=0 THEN 2420
  58. 2200 NS=ABS(I<3):S=ABS(I=2):E=ABS(I=4)
  59. 2250 X1=(W*8/(NS+1))*(NS+E)-6*NS-2*E
  60. 2260 X2=(W*8/(NS+1))*(NS+E)+5*NS-2*E+(1-NS)
  61. 2270 Y1=(H*16/((1-NS)+1))*((1-NS)+S)-12*(1-NS)-4*S
  62. 2280 Y2=(H*16/((1-NS)+1))*((1-NS)+S)+11*(1-NS)-4*S+3*NS
  63. 2290 LINE (XO+X1,YO+Y1)-(XO+X2,YO+Y2),8,BF:REM emtpy space door
  64. 2300 COLOR 1
  65. 2310 X1=(W*8/(NS+1))*(NS+E)-8*NS-4*E
  66. 2320 X2=(W*8/(NS+1))*(NS+E)-8*NS-4*E+3*(1-NS)+NS
  67. 2330 Y1=(H*16/(1-NS+1))*(1-NS+S)-16*(1-NS)-8*S
  68. 2340 Y2=(H*16/(1-NS+1))*(1-NS+S)-16*(1-NS)-8*S+7*NS+3*(1-NS)
  69. 2350 LINE (XO+X1,YO+Y1)-(XO+X2,YO+Y2),,BF
  70. 2360 X1=(W*8/(NS+1))*(NS+E)+6*NS-4*E
  71. 2370 X2=(W*8/(NS+1))*(NS+E)+6*NS-4*E+3*(1-NS)+NS
  72. 2380 Y1=(H*16/(1-NS+1))*(1-NS+S)+12*(1-NS)-8*S
  73. 2390 Y2=(H*16/(1-NS+1))*(1-NS+S)+12*(1-NS)-8*S+7*NS+3*(1-NS)
  74. 2400 LINE (XO+X1,YO+Y1)-(XO+X2,YO+Y2),,BF
  75. 2420 NEXT I
  76. 2430 RETURN
  77. 3000 REM sprites
  78. 3010 SCREEN 2
  79. 3020 FOR I=1 TO 4
  80. 3030 SP$="":FOR J=1 TO 8:READ D:SP$=SP$+CHR$(D):NEXT J
  81. 3035 PRINT SP$
  82. 3036 PRINT I
  83. 3040 SPRITE$(I)=SP$
  84. 3050 NEXT I
  85. 3100 RETURN
  86. 9010 DATA &HFF,&HFF,&HFF,&HFF
  87. 9020 DATA &HFF,&HFF,&HFF,&HFF
  88. 9030 DATA &HFF,&HFF,&HFF,&HFF
  89. 9040 DATA &HFF,&HFF,&HFF,&HFF
  90. 9050 DATA &HFF,&HFF,&HFF,&HFF
  91. 9060 DATA &HFF,&HFF,&HFF,&HFF
  92. 9070 DATA &HFF,&HFF,&HFF,&HFF
  93. 9080 DATA &HFF,&HFF,&HFF,&HFF
Advertisement
Add Comment
Please, Sign In to add comment