home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / SCIENG1 / MMBIOTUT.ZIP / MMPLAYG.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-09-16  |  4.2 KB  |  100 lines

  1. 1000  ON ERROR GOTO 6000
  2. 1001  COMMON UMSEG%()
  3. 1010  DEFINT A-Z:CLS:SCREEN 1,0:COLOR 0,0
  4. 1020  DIM HNAME$(10),HSCORE$(10)
  5. 1030  CL=3:CO=6:FI=27:INV=30:OV=36:PC=39:RS=42:SP=45:SY=48:TN=51:TX=57:B=0:P=0
  6. 1080  OPEN "MMHONOR.ROL" AS #1 LEN = 15
  7. 1085  FIELD #1, 10 AS F1$, 5 AS F2$
  8. 1090  FOR I=1 TO 10:GET #1,I:HNAME$(I)=F1$:HSCORE$(I)=F2$:NEXT
  9. 1200  MSG$="YOUR SCORE SO FAR:"+STR$(TSC):GOSUB 2000
  10. 1210  DEF SEG=UMSEG%(3):Z=0:CALL CL(Z):CALL INV:Z=255:CALL SP(Z):F=3:CALL CO(B,P,F)
  11. 1220  X=5:Y=23:CALL PC(X,Y):T$=" PRESS  RETURN  TO START THE GAME":CALL TX(T$)
  12. 1230  X=5:Y=24:CALL PC(X,Y):T$=" PRESS  ESC  TO EXIT             ":CALL TX(T$)
  13. 1240  CALL INV
  14. 1250  A$=INKEY$:IF A$<>"" GOTO 1250
  15. 1300  A$=INKEY$:IF A$="" GOTO 1300
  16. 1310  IF A$=CHR$(27) THEN CLOSE:COMMON PN$:CHAIN "MMLDIR",1000
  17. 1320  IF A$=CHR$(13) THEN GOSUB 2500 ELSE GOTO 1300
  18. 1355  FOR I=1 TO 10:LSET F1$=HNAME$(I):RSET F2$=HSCORE$(I):PUT #1,I:NEXT
  19. 1360  CLOSE:COMMON IDX,MSG$:CHAIN "mmgend",1000
  20. 2000  CLS:SCREEN 1,0:COLOR 0,0:DEF SEG=UMSEG%(3)
  21. 2010  LOCATE 1,3,0:PRINT "*****   M A T C H  M A K E R   *****"
  22. 2020  Z=111:CALL CL(Z):Z=1:CALL SY(Z):F=1:CALL CO(B,P,F):Z=251:CALL SP(Z)
  23. 2030  X=6:Y=2:CALL PC(X,Y):T$="HONOR ROLL":CALL TX(T$)
  24. 2040  F=2:CALL CO(B,P,F):CALL PC(X,Y):Z=1:CALL OV(Z):Z=0:CALL CL(Z):T$="__________":CALL TX(T$):Z=0:CALL OV(Z)
  25. 2050  F=3:CALL CO(B,P,F):Z=255:CALL SP(Z):Z=2:CALL SY(Z):CALL INV:Y=6:X=10:CALL PC(X,Y):T$=" NAME:":CALL TX(T$)
  26. 2065  Y=6:X=26:CALL PC(X,Y):T$=" SCORE:":CALL TX(T$):CALL INV
  27. 2070  FOR I=1 TO 10
  28. 2080    LOCATE I+7,10:PRINT USING "##.";I;:PRINT " "+HNAME$(I)+"   "+HSCORE$(I)
  29. 2090  NEXT
  30. 2100  F=2:CALL CO(B,P,F):Z=255:CALL SP(Z)
  31. 2115  X=(40-LEN(MSG$))\2+1:Y=20:CALL PC(X,Y):T$=MSG$:CALL TX(T$)
  32. 2130  RETURN
  33. 2500  MAZE$="MMGAME1.DAT":RUNLIMIT=1
  34. 2510  SCREEN 0,1:WIDTH 40
  35. 2515  TUNIT=6:TLEFT=20:GOAL=TSC+1000:GOSUB 5000:FOR I=1 TO 500:NEXT I
  36. 2520  COLOR 19,1,0:M$=CHR$(2):RPOS=1:CPOS=3:RMAX=22:CMAX=40:LOCATE RPOS,CPOS,0:PRINT M$:LOCATE RPOS,CPOS:COLOR 3,1
  37. 2525  BEEP:FOR I=1 TO 700:NEXT I:BEEP:CKTIME=60*VAL(MID$(TIME$,4,2))+VAL(MID$(TIME$,7,2))
  38. 2530  A$=INKEY$:CTIME=60*VAL(MID$(TIME$,4,2))+VAL(MID$(TIME$,7,2))
  39. 2531  IF CTIME-CKTIME>=TUNIT THEN CKTIME=CTIME:TLEFT=TLEFT-1:LOCATE 23,9:COLOR 14,0:PRINT USING " ##";TLEFT
  40. 2532  IF TLEFT<=0 THEN TLEFT=0:GOTO 2580
  41. 2535  IF A$="" GOTO 2530 ELSE IF LEN(A$)<2 THEN BEEP:GOTO 2530 ELSE A$=RIGHT$(A$,1)
  42. 2540  IF A$="H" THEN GOSUB 2600:GOTO 2580
  43. 2550  IF A$="K" THEN GOSUB 2700:GOTO 2580
  44. 2560  IF A$="P" THEN GOSUB 2800:GOTO 2580
  45. 2570  IF A$="M" THEN GOSUB 2900 ELSE BEEP:GOTO 2530
  46. 2580  IF RPOS=RMAX OR TLEFT<=0 THEN BEEP:BEEP:BEEP:GOSUB 3500:RETURN ELSE GOTO 2530
  47. 2600  RNEXT=RPOS-1:CNEXT=CPOS:GOSUB 3000:RPOS=RNEXT:LOCATE RPOS,CPOS:RETURN
  48. 2700  CNEXT=CPOS-1:RNEXT=RPOS:GOSUB 3000:CPOS=CNEXT:LOCATE RPOS,CPOS:RETURN
  49. 2800  RNEXT=RPOS+1:CNEXT=CPOS:GOSUB 3000:RPOS=RNEXT:LOCATE RPOS,CPOS:RETURN
  50. 2900  CNEXT=CPOS+1:RNEXT=RPOS:GOSUB 3000:CPOS=CNEXT:LOCATE RPOS,CPOS:RETURN
  51. 3000  IF RNEXT<1 THEN RNEXT=1 ELSE IF RNEXT>RMAX THEN RNEXT=RMAX
  52. 3010  IF CNEXT<1 THEN CNEXT=1 ELSE IF CNEXT>CMAX THEN CNEXT=CMAX
  53. 3030  SCRCHR=SCREEN(RNEXT,CNEXT)
  54. 3040  IF SCRCHR=3 THEN TSC=TSC+25:GOTO 3070
  55. 3050  IF SCRCHR=4 THEN TSC=TSC+50:GOTO 3070
  56. 3060  IF SCRCHR=219 THEN BEEP:RNEXT=RPOS:CNEXT=CPOS ELSE COLOR 3,1:LOCATE RPOS,CPOS:PRINT " ":LOCATE RNEXT,CNEXT:PRINT M$
  57. 3065  RETURN
  58. 3070  COLOR 3,1:LOCATE RPOS,CPOS:PRINT " "
  59. 3075  LOCATE RNEXT,CNEXT:SOUND 440,0.5:PRINT M$
  60. 3076  COLOR 14,0,0:LOCATE 23,29,0:PRINT USING " ####";TSC
  61. 3080  RETURN
  62. 3500  IF TLEFT>=0 AND TSC>=GOAL THEN TSC=TSC+500
  63. 3506  TSC=TSC+TLEFT*25
  64. 3507  COLOR 14,0:LOCATE 23,29,0:PRINT USING " ####";TSC
  65. 3510  FOR I=21 TO 2 STEP -1
  66. 3520    FOR J=39 TO 2 STEP -1
  67. 3530      SCRCHR=SCREEN(I,J)
  68. 3535      IF SCRCHR<>3 AND SCRCHR<>4 GOTO 3551
  69. 3540      IF SCRCHR=3 THEN SOUND 350,0.5:TSC=TSC-25:LOCATE I,J:COLOR ,1:PRINT " ";:GOTO 3545
  70. 3541      IF SCRCHR=4 THEN SOUND 480,0.5:TSC=TSC-50:LOCATE I,J:COLOR ,1:PRINT " "; ELSE GOTO 3551
  71. 3542      IF TSC<0 THEN TSC=0
  72. 3545      COLOR 14,0:LOCATE 23,29,0:PRINT USING " ####";TSC
  73. 3550      IF TSC<=0  GOTO 3600
  74. 3551    NEXT J
  75. 3560  NEXT I
  76. 3600  IF RUNLIMIT<2 THEN IF TSC>=GOAL AND TLEFT>0 THEN RUNLIMIT=RUNLIMIT+1:MAZE$="MMGAME1.DAT":GOTO 2510
  77. 3605  IDX=0
  78. 3610  FOR I=1 TO 10
  79. 3620    IF TSC>VAL(HSCORE$(I)) THEN IDX=I:GOTO 3640
  80. 3630  NEXT
  81. 3640  IF IDX=0 THEN MSG$="SEE YOU AGAIN!!":RETURN
  82. 3645  IF IDX=10 GOTO 3660
  83. 3650  FOR I=10 TO IDX+1 STEP -1:HNAME$(I)=HNAME$(I-1):HSCORE$(I)=HSCORE$(I-1):NEXT
  84. 3660  HNAME$(IDX)=PN$:HSCORE$(IDX)=STR$(TSC)
  85. 3665  FOR J=LEN(HNAME$(IDX))+1 TO 10:HNAME$(IDX)=HNAME$(IDX)+" ":NEXT
  86. 3666  FOR J=LEN(HSCORE$(IDX))+1 TO 5:HSCORE$(IDX)=" "+HSCORE$(IDX):NEXT
  87. 3670  MSG$="CONGRATULATIONS, "+PN$+"!":RETURN
  88. 5000  LOCATE ,,0:DEF SEG=&HB800:BLOAD MAZE$,0
  89. 5010  COLOR 11,0,0:LOCATE 23,4,0:PRINT "TIME:";:COLOR 14:PRINT USING " ##";TLEFT
  90. 5020  COLOR 11:LOCATE 23,23:PRINT "SCORE:";:COLOR 14:PRINT USING " ####";TSC
  91. 5030  SGOAL$=STR$(GOAL):SRL$=STR$(RUNLIMIT)
  92. 5040  POKE 1846,4:POKE 1847,14:POKE 1848,58:POKE 1849,11:POKE 1852,53:POKE 1853,6:POKE 1854,48:POKE 1855,6
  93. 5050  POKE 1926,3:POKE 1927,13:POKE 1928,58:POKE 1929,11:POKE 1932,50:POKE 1933,6:POKE 1934,53:POKE 1935,6
  94. 5060  POKE 1884,71:POKE 1885,11:POKE 1886,79:POKE 1887,11:POKE 1888,65:POKE 1889,11:POKE 1890,76:POKE 1891,11:POKE 1892,58:POKE 1893,11
  95. 5065  FOR J=1 TO LEN(SGOAL$):B=ASC(MID$(SGOAL$,J,1)):K=1896+(J-1)*2:POKE K,B:POKE K+1,6:NEXT
  96. 5070  POKE 1964,76:POKE 1965,11:POKE 1966,69:POKE 1967,11:POKE 1968,86:POKE 1969,11:POKE 1970,69:POKE 1971,11:POKE 1972,76:POKE 1973,11:POKE 1974,58:POKE 1975,11
  97. 5075  FOR J=1 TO LEN(SRL$):B=ASC(MID$(SRL$,J,1)):K=1982+(J-1)*2:POKE K,B:POKE K+1,6:NEXT
  98. 5200  DEF SEG=UMSEG%(3):RETURN
  99. 6000  CLOSE:CHAIN "MMPLAY",1000
  100.