プチコン

  1. ’┌──────────┐
  2. ’│SAMPLE7   │
  3. ’│ シンリャクミスイ │
  4. ’└──────────┘
  5. VISIBLE 1,1,0,0,0,0
  6. CLS:COLOR 0
  7. CLEAR
  8. DIM EX(20),EY(20),ED(20)
  9. ’---
  10. EMAX=20
  11. FOR I=0 TO EMAX-1
  12.  EX(I)=FLOOR(I%10)*2
  13.  EY(I)=FLOOR(I/10)*2+3
  14.  ED(I)=0
  15.  LOCATE EX(I),EY(I)
  16.  PRINT ”Е”
  17. NEXT
  18. EW=100:EC=0:EDW=FALSE
  19. ’---
  20. PX=10:PY=21
  21. LOCATE PX,PY:PRINT”Г”;
  22. LIFE=3:SC=0
  23. MX=PX:MY=PY:MST=FALSE
  24. LOCATE 0,22
  25. PRINT”────────────────────────────────”;
  26. LOCATE 0,23
  27. PRINT”Г:”;LEFT;
  28. LOCATE 0,0
  29. PRINT”SCORE: ”;SC
  30. SV=0
  31. ’---
  32. @LOOP
  33.  GOSUB @MYSHIP
  34.  GOSUB @MYSHOT
  35.  GOSUB @ALIEN
  36.  GOSUB @SCORE
  37.  VSYNC(1)
  38. GOTO @LOOP
  39. ’--- スコア
  40. @SCORE
  41. IF SV==0 THEN RETURN
  42. SC=SC+10
  43. SV=SV-10
  44. LOCATE 7,0:PRINT SC
  45. RETURN
  46. ’--- シ゛フ゛ン
  47. @MYSHIP
  48. B=BUTTON():VX=0
  49. IF B AND 4 THEN VX=-1
  50. IF B AND 8 THEN VX=1
  51. IF VX==0 THEN @NOTMOVE
  52. LOCATE PX,PY:PRINT” ”
  53. PX=PX+VX
  54. IF PX<0 THEN PX=0
  55. IF PX>31 THEN PX=31
  56.  LOCATE PX,PY:PRINT”Г”;
  57. ’---
  58. @NOTMOVE
  59. RETURN
  60. ’--- タマ
  61. @MYSHOT
  62. IF MST==TRUE THEN @MSMOVE
  63. IF TCHST==FALSE THEN @MSSKIP
  64. MST=TRUE
  65. MX=PX:MY=PY
  66. GOTO @MSMOVE2
  67. ’---
  68. @MSMOVE
  69. LOCATE MX,MY:PRINT” ”
  70. ’---
  71. @MSMOVE2
  72. MY=MY-1
  73. IF MY<3 THEN MST=FALSE:GOTO @MSSKIP
  74. LOCATE MX,MY:PRINT”・”
  75. ’---
  76. @MSSKIP
  77. RETURN
  78. ’--- シンリャクシャ
  79. @ALIEN
  80. MD=FALSE
  81. IF EDW THEN MD=EDW:EDW=FALSE
  82. ’---
  83. FOR I=0 TO EMAX-1
  84.  IF ED(I)==-1 THEN @PASS
  85.  ’---
  86.  LOCATE EX(I),EY(I):PRINT” ”
  87.  IF MD==FALSE THEN @EMV
  88.  ’--- 
  89.  ED(I)=(ED(I)+1) AND 3
  90.  ’---
  91.  @EMV
  92.  GOSUB @EMOVE
  93.  ’---
  94.  @SKIP
  95.  IF MST==FALSE THEN @PASS
  96.  IF MX!=EX(I) THEN @PASS
  97.  IF MY!=EY(I) THEN @PASS
  98.  ’--- シホンウ
  99.  LOCATE EX(I),EY(I):PRINT” ”
  100.  ED(I)=-1
  101.  MST=FALSE
  102.  SV=SV+10
  103.  ’---
  104. @PASS
  105.  ’---
  106. NEXT
  107. RETURN
  108. ’---
  109. @EMOVE
  110. ON ED(I) GOTO @RI,@DW,@LF,@DW
  111. @DW
  112. EY(I)=EY(I)+1
  113. IF EY(I)>20 THEN EY(I)=3
  114. ED(I)=(ED(I)+1) AND 3
  115. GOTO @EPUT
  116. @RI
  117. EX(I)=EX(I)+1
  118. IF EX(I)<31 THEN @EPUT
  119. EDW=TRUE
  120. GOTO @EPUT
  121. @LF
  122. EX(I)=EX(I)-1
  123. IF EX(I)>0 THEN @EPUT
  124. EDW=TRUE
  125. @EPUT
  126. LOCATE EX(I),EY(I)
  127. PRINT ”Е”
  128. RETURN