対戦ヘビゲーム by およ

再生

 なかなかめずらしい、対戦形式のヘビゲームを作ってきてくれたぞ。2人で遊ぶ2Pモードはもちろん、CPUと戦う1Pモードもあるぞ。
 ヘビゲームの目的はおなじみ、自分のヘビを衝突させずに伸ばし続ける事だ。1Pモードでは十字ボタンを使って青いヘビを操り、1000ポイント貯めればステージクリア。1ドット伸ばせば1ポイント、敵の赤いヘビが自分の青いヘビにぶつかればボーナス100ポイント追加だ。積極的に活用しよう。
 2P対戦モードでは1P(青ヘビ)は十字ボタン、2P(赤ヘビ)はABXYボタンで操作になる。お互いどこかにぶつかってしまうとゲームセットだ。
 相手をいかに追いつめて囲うか、戦略も楽しいアクションゲームだね。

私が作りました

およ

ヘビゲームの対戦版です。


 CHECK POiNT 

神崎
伝統的なヘビゲームの亜種だけど、対戦形式なのが面白いね。

インテリ
62行目以降ではCPUの動きをボタン入力としてシミュレーションしているね。
CPU対戦と2P対戦を両立させたい時に参考になるんじゃないかな。

ワンパク
ヘヘッ、だがこのCPUはたいしたことねェな! また勝っちまったぜ!

博士
基本的にランダムで制御しているようじゃしな。すなわち戦術のないでたらめな相手と戦うのじゃから、楽に勝てても当然ではあるのう。

ワンパク
ムググ……。

神崎
どんな動きをさせれば強いCPUが作れるのか、考えてみるのも面白そうだね。

プログラムリスト

  1. @GSTART
  2. BGMPLAY(3):P0=1:SCNT=0
  3. GOSUB @LOGO0
  4. GOSUB @PUSHANY
  5. GCLS:CLS
  6. @NSTAGE
  7. IF P0==1 THEN BGMPLAY(15)
  8. IF P0==2 THEN BGMPLAY(25)
  9. SCNT=SCNT+1:CNT=0
  10. X1=RND(205)+25:XZ1=RND(3)-1
  11. Y1=RND(150)+20:YZ1=0
  12. IF XZ1==0 THEN YZ1=RND(3)-1
  13. IF XZ1==0 AND YZ1==0 THEN XZ1=1 
  14. X2=RND(205)+25:XZ2=RND(3)-1
  15. Y2=RND(150)+20:YZ2=0
  16. IF XZ2==0 THEN YZ2=RND(3)-1
  17. IF XZ2==0 AND YZ2==0 THEN XZ2=1 
  18. @LOOP
  19. B=BUTTON()
  20. IF (B AND 1)==1 THEN GOSUB @P1U
  21. IF (B AND 2)==2 THEN GOSUB @P1D
  22. IF (B AND 4)==4 THEN GOSUB @P1L
  23. IF (B AND 8)==8 THEN GOSUB @P1R
  24. IF P0==1 THEN GOSUB @P2MOVE
  25. IF (B AND 16)==16 THEN GOSUB @P2R
  26. IF (B AND 32)==32 THEN GOSUB @P2D
  27. IF (B AND 64)==64 THEN GOSUB @P2U
  28. IF (B AND 128)==128 THEN GOSUB @P2L
  29. C1=GSPOIT(X1+XZ1,Y1+YZ1)
  30. C2=GSPOIT(X2+XZ2,Y2+YZ2)
  31. IF C1!=0 THEN @GOVER
  32. IF C2!=0 AND P0==2 THEN GOSUB @GOVER
  33. IF C2==6 THEN GOSUB @P2STOP
  34. IF X1+XZ1<0 OR X1+XZ1>255 THEN @GOVER
  35. IF Y1+YZ1<0 OR Y1+YZ1>190 THEN @GOVER
  36. IF X2+XZ2<0 OR X2+XZ2>255 THEN GOSUB @P2STO2
  37. IF Y2+YZ2<0 OR Y2+YZ2>190 THEN GOSUB @P2STO2
  38. X1=X1+XZ1:X2=X2+XZ2
  39. Y1=Y1+YZ1:Y2=Y2+YZ2
  40. GPSET X1,Y1,6:GPSET X2,Y2,3
  41. CNT=CNT+1
  42. LOCATE 0,0
  43. IF P0==1 THEN PRINT CNT
  44. IF P0==2 THEN PRINT ”VS MODE”
  45. FOR I=0 TO 1000-(SCNT*50):NEXT I
  46. IF CNT<=1000 THEN @LOOP
  47. GOSUB @LOGO4
  48. GOSUB @LOGO2
  49. BGMPLAY(3):GOSUB @PUSHANY
  50. GCLS:CLS
  51. GOTO @NSTAGE
  52. @P2STOP
  53. BEEP 5:CNT=CNT+100
  54. @P2STO2
  55. IF P0==2 THEN @GOVER
  56. XZ2=0:YZ2=0
  57. RETURN
  58. @P2MOVE
  59. KK=RND(80)
  60. IF XZ2==0 AND YZ2==0 THEN KK=RND(5)
  61. IF KK==1 THEN B=16
  62. IF KK==2 THEN B=32
  63. IF KK==3 THEN B=64
  64. IF KK==4 THEN B=128
  65. RETURN
  66. @GOVER
  67. CLS:BEEP(13)
  68. GOSUB @LOGO2
  69. GOSUB @LOGO3
  70. GOSUB @PUSHANY
  71. GOTO @GSTART
  72. @PUSHANY
  73. IF BUTTON()!=0 THEN @PUSHANY
  74. @PUSHAN2
  75. B=BUTTON()
  76. IF B==0 THEN @PUSHAN2
  77. P0=2:IF B<16 THEN P0=1
  78. RETURN
  79. @P1U
  80. IF YZ1!=0 THEN RETURN
  81. XZ1=0:YZ1=-1:RETURN
  82. @P1R
  83. IF XZ1!=0 THEN RETURN
  84. XZ1=1:YZ1=0:RETURN
  85. @P1D
  86. IF YZ1!=0 THEN RETURN
  87. XZ1=0:YZ1=1:RETURN
  88. @P1L
  89. IF XZ1!=0 THEN RETURN
  90. XZ1=-1:YZ1=0:RETURN
  91. @P2U
  92. IF YZ2!=0 THEN RETURN
  93. XZ2=0:YZ2=-1:RETURN
  94. @P2R
  95. IF XZ2!=0 THEN RETURN
  96. XZ2=1:YZ2=0:RETURN
  97. @P2D
  98. IF YZ2!=0 THEN RETURN
  99. XZ2=0:YZ2=1:RETURN
  100. @P2L
  101. IF XZ2!=0 THEN RETURN
  102. XZ2=-1:YZ2=0:RETURN
  103. @LOGO0
  104. GCLS:CLS
  105. COLOR 9
  106. GOSUB @LOGO1
  107. GOSUB @LOGO2
  108. PRINT ””
  109. PRINT ”П   ...1P”
  110. PRINT ”АБФХ...2P(1P VS 2P)”
  111. PRINT ””
  112. PRINT ””
  113. PRINT ”PUSH П OR АБФХ START”
  114. PRINT ””
  115. PRINT ””
  116. PRINT ””
  117. PRINT ””
  118. PRINT ”     1988 キチテ゛ン”
  119. PRINT ”     2011 オヨ”
  120. COLOR 12
  121. LOCATE 0,12:PRINT ”АБФХ”
  122. LOCATE 16,12:PRINT ”2P”
  123. LOCATE 10,15:PRINT ”АБФХ”
  124. COLOR 9
  125. RETURN
  126. @LOGO1
  127. PRINT ”┿ ┿ ┿┿ ┿┿蒻 ┸”
  128. PRINT ”┿┸┿ ┿┝ ┿┝┸ ┿”
  129. PRINT ”┿ ┿ ┿  ┿┥蒻 ┿”
  130. PRINT ”┿ ┿ ┿┝ ┿┿┸ ┿”
  131. PRINT ””
  132. RETURN
  133. @LOGO2
  134. PRINT ”┝┿蒻 ┝┿蒻 蒻  ┝ ┿┿”
  135. PRINT ”┿   ┿ ┿ ┿蒻┝┿ ┿┝”
  136. PRINT ”┿ ┥ ┿┥┿ ┿┥┸┿ ┿ ”
  137. PRINT ”┥┿┿ ┿ ┿ ┿  ┿ ┿┝”
  138. PRINT ””
  139. RETURN
  140. @LOGO3
  141. PRINT ”┝┿蒻 ┿  ┿ ┿┿ ┿┿蒻”
  142. PRINT ”┿ ┿ ┿  ┿ ┿┝ ┿ ┿”
  143. PRINT ”┿ ┿ ┥蒻┝┸ ┿  ┿┥蒻”
  144. PRINT ”┥┿┸  ┥┸  ┿┝ ┿ ┥”
  145. PRINT ””
  146. RETURN
  147. @LOGO4
  148. PRINT ”蒻 ┿ ┸ ┝┿蒻 ┿┿”
  149. PRINT ”┿蒻┿ ┿ ┿┸  ┿┝”
  150. PRINT ”┿┥┿ ┿ ┿蒻┝ ┿ ”
  151. PRINT ”┿ ┥ ┿ ┥┿┸ ┿┝”
  152. PRINT ””
  153. RETURN