プチコンまとめWiki (初代/mkII)

投稿プログラム : アステロイド・ワールド

2011年05月01日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム ゲーム シューティングゲーム 初代対応 移植

概要

ベーマガ1983年8月号 RAN RANさん投稿JR200用「アステロイド・ワールド」の移植です。

ゲーム内容

デモ画面でАを押すとゲーム開始です。
←→で左右移動、Аでビーム発射です。
ビームを発射するとエネルギーが20減ります。
また、時間の経過とともにエネルギーが減ります。
インベーダを全滅させるとステージクリア、ミサイルにやられるかエネルギーがなくなるとゲームオーバーです。
Аでリスタート、Бで終了です。

プログラムについて

当時のゲームらしく、速度を得るためのテクニックを駆使していました。
(ユーザ定義文字の書き換えによる敵移動、表示・移動にPEEK・POKEを使うなど)
コンソールの文字色を得られないことと、文字の背景色を変えられないので、
小細工で対応しました(どちらもプチコンへの要望に記載した)。

スクリーンショット・動画

  • デモ画面
    aworld1.jpg
  • ゲーム画面
    aworld2.jpg

QR コード

プチコンmkII 向けの QR コードです。

PRG:ASTEROID
1/32/33/3
qr0.pngqr1.pngqr2.png

プログラムリスト

  1. CLEAR:VISIBLE 1,1,0,0,0,1
  2. BGPAGE 0:COLOR 0:CLS:H=0
  3. GPAGE 0:GCOLOR 0:GCLS
  4. DIM L(30),N(5,20),P$(2)
  5. DIM COL(8),BC(21,24)
  6. COL(0)=1:COL(1)=11
  7. COL(2)=13:COL(3)=10
  8. COL(4)=4:COL(5)=9
  9. COL(6)=3:COL(7)=0
  10. GOSUB @USERMOJI
  11. GOSUB @SETSUMEI
  12. GOTO @MAIN
  13. @RESTART
  14. S=0:G=0
  15. @NEXTGAME
  16. G=G+1:GOSUB @SCREEN
  17. @MAIN
  18. ON K GOTO @JIKI,@OVER,@DEMO
  19. @JIKI
  20. T=T−1:COLOR COL(7)
  21. LOCATE 24,6:PRINT T;” ”
  22. IF T<1 THEN @OUT
  23. GOSUB @BTN
  24. COLOR COL(7):LOCATE QX,19:PRINT ”┣”
  25. IF P AND 8 THEN QX=QX+(QX<20):LOCATE QX−1,19:PRINT ” ┣”:GOTO @TEKI
  26. IF P AND 4 THEN QX=QX−(QX>0):LOCATE QX,19:PRINT ”┣ ”:GOTO @TEKI
  27. IF P AND 16 THEN BEEP 10:GOTO @FIRE
  28. @TEKI
  29. IF RND(2)==0 THEN F=F+(F<6):Y=F−1:GOTO @TEKIMOVE
  30. F=F−(F>3):Y=F+1
  31. @TEKIMOVE
  32. CHRSET ”BGF0”,F+&H80,TEKI$
  33. CHRSET ”BGF0”,Y+&H80,CLR$
  34. IF CY>=0 THEN @MISSILE
  35. X=FLOOR(QX/7):Y=N(X,0)
  36. @MLOOP
  37. IF Y==4 THEN @MAIN
  38. IF N(X,Y)==99 THEN Y=Y−2:N(X,0)=Y:GOTO @MLOOP
  39. IF N(X,Y+1)==1 THEN CX=6−F+N(X,Y):CY=Y+1:GOTO @MNEXT
  40. CX=N(X,Y)+F−3:CY=Y+1
  41. @MNEXT
  42. D=CHKCHR(CX,CY):E=BC(CX,CY)
  43. COLOR COL(2):LOCATE CX,CY:PRINT ”┳”:GOTO @MAIN
  44. @MISSILE
  45. A=CHKCHR(CX,CY+1)
  46. IF A==&H8B THEN COLOR E:LOCATE CX,CY:PRINT CHR$(D):CY=−1:GOTO @MAIN
  47. IF A==&H87 THEN LOCATE CX,CY:PRINT ”◇”:CY=−1:GOTO @OUT
  48. B=BC(CX,CY+1):CY=CY+1:COLOR COL(2):LOCATE CX,CY:PRINT ”┳”
  49. COLOR E:LOCATE CX,CY−1:PRINT CHR$(D):D=A:E=B:GOTO @MAIN
  50. @FIRE
  51. MX=QX:MY=18:A=CHKCHR(MX,MY):COLOR COL(7):LOCATE MX,MY:PRINT ”┫”:L=1:L(L)=A
  52. @FIRELOOP
  53. A=CHKCHR(MX,MY−1):IF A==F+&H80 OR A==&H8A THEN @HIT
  54. IF A==&H8B THEN L=0:GOTO @FIREEND
  55. MY=MY−1:L=L+1:COLOR COL(7):LOCATE MX,MY:PRINT ”┫”:L(L)=A:GOTO @FIRELOOP
  56. @FIREEND
  57. VSYNC 3
  58. FOR I=18 TO MY STEP −1
  59.  L=L+1:LOCATE QX,I:PRINT CHR$(L(L))
  60. NEXT I
  61. COLOR COL(7):T=T−20:IF T<1 THEN LOCATE 24,6:PRINT ”   ”:GOTO @OUT
  62. GOTO @TEKI
  63. @HIT
  64. COLOR COL(7):LOCATE MX,MY−1:PRINT ”◇”:L=0
  65. IF A==&H8A THEN @FIREEND
  66. Y=MY−1:X=FLOOR(MX/7)
  67. COLOR COL(7):LOCATE N(X,Y),Y:PRINT N$
  68. BEEP 11
  69. N(X,Y)=99:S=S+10:GOSUB @SCORE
  70. U=U−1:IF U>0 THEN @FIREEND
  71. COLOR COL(7):LOCATE 1,22:PRINT ”NEXT−GAME!”:S=S+G*100
  72. GFILL 0,176,167,183,2
  73. BGMPLAY 5:VSYNC 120
  74. GOTO @NEXTGAME
  75. @OUT
  76. COLOR COL(2):BC(QX,19)=COL(2):LOCATE QX,19:PRINT ”м”
  77. BEEP 13:VSYNC 30
  78. IF H<S THEN H=S:GOSUB @HISCORE
  79. COLOR COL(7):LOCATE 1,22:PRINT ”マタヤルカ ?  (Y=А/N=Б)”
  80. GFILL 0,176,167,183,4
  81. K=1:GOTO @TEKI
  82. @OVER
  83. GOSUB @BTN
  84. IF P AND 16 THEN BEEP 3:VSYNC 15:GOTO @RESTART
  85. IF P AND 32 THEN COLOR COL(7):CLS:GCLS:CHRINIT ”BGF0”:END
  86. GOTO @TEKI
  87. @DEMO
  88. GOSUB @BTN
  89. IF P AND 16 THEN BEEP 3:VSYNC 15:GOTO @RESTART
  90. GOTO @TEKI
  91. @HISCORE
  92. COLOR COL(7):LOCATE 22,8:PRINT ”ハイスコア”
  93. LOCATE 24,9:PRINT H
  94. LOCATE 22,11:PRINT ”スコア”
  95. @SCORE
  96. COLOR COL(7):LOCATE 24,12:PRINT S:RETURN
  97. @SCREEN
  98. COLOR COL(7):CLS:GCLS:GOSUB @USERTEKI
  99. CX=0:CY=−1:U=15:K=0:F=3:QX=10:T=1100−G*100:IF T<400 THEN T=400
  100. COLOR COL(7):LOCATE 0,0:PRINT ”アステロイト゛ ワールト゛”
  101. LOCATE 22,0:PRINT G;” ケ゛ーム”
  102. LOCATE 22,5:PRINT ”エネルキ゛ー”
  103. LOCATE 24,6:PRINT T:GOSUB @HISCORE
  104. LOCATE 23,22:PRINT ”PETIT”
  105. FOR I=5 TO 15 STEP 2
  106.  FOR J=0 TO 4
  107.   I0=RND(21):BC(I0,I)=COL(RND(6)+1):COLOR BC(I0,I)
  108.   LOCATE I0,I:PRINT ”┻”
  109.  NEXT J
  110. NEXT I
  111. FOR I=6 TO 14 STEP 2
  112.  FOR J=0 TO 14 STEP 7
  113.   A=RND(4):B=RND(2)
  114.   N(FLOOR(J/7),I)=J+A:N(FLOOR(J/7),I+1)=B:COLOR COL(7)
  115.   LOCATE J+A,I:PRINT P$(B)
  116.   N(FLOOR(J/7),0)=I
  117.  NEXT J
  118. NEXT I
  119. FOR I=0 TO 22
  120.  LOCATE I,3:PRINT ”╋”
  121.  LOCATE I,21:PRINT ”╋”
  122. NEXT I
  123. COLOR COL(7):LOCATE QX,19:PRINT ”┣”
  124. FOR I=0 TO 20
  125.  BC(I,19)=COL(7)
  126. NEXT I
  127. BEEP 7:VSYNC 30
  128. RETURN
  129. @SETSUMEI
  130. G=1:GOSUB @SCREEN
  131. LOCATE QX,19:PRINT ”◇”
  132. COLOR COL(7):LOCATE 22,14:PRINT ”イト゛ーキー”
  133. GFILL 176,112,239,119,4
  134. LOCATE 22,16:PRINT ”[←] ┣[→]”
  135. GFILL 176,128,239,135,4
  136. LOCATE 22,18:PRINT ”[А]ヒ゛ーム”
  137. GFILL 176,144,239,151,4
  138. LOCATE 1,22:PRINT ”スタート[А]キー”
  139. GFILL 0,176,79,183,2
  140. K=2:RETURN
  141. @BTN
  142. P=0
  143. FOR I=0 TO 6
  144.  VSYNC 1:P0=BUTTON():P=P OR P0
  145. NEXT I
  146. RETURN
  147. @USERMOJI
  148. FOR I0=&H87 TO &H8B
  149.  GOSUB @FONTSET
  150. NEXT I0
  151. CLR$=C$
  152. @USERTEKI
  153. P$(0)=”┏┓┛┗”:P$(1)=”┗┛┓┏”:N$=”◇◇◇◇”
  154. FOR I0=&H80 TO &H86
  155.  CHRSET ”BGF0”,I0,CLR$
  156. NEXT I0
  157. RESTORE @DATTEKI
  158. I0=&H83
  159. GOSUB @FONTSET
  160. TEKI$=C$
  161. RETURN
  162. @FONTSET
  163. READ F$:C$=””
  164. FOR I=0 TO 7
  165.  FT=VAL(”&H”+MID$(F$,I*2,2))
  166.  BIT=&H80
  167.  FOR J=0 TO 7
  168.   IF (FT AND BIT)>0 THEN C$=C$+”F”
  169.   IF (FT AND BIT)<1 THEN C$=C$+”0”
  170.   BIT=BIT/2
  171.  NEXT J
  172. NEXT I
  173. CHRSET ”BGF0”,I0,C$
  174. RETURN
  175. DATA 10101092BAFEBA82
  176. DATA 0A0A040E0E040000
  177. DATA 0010101010101000
  178. DATA 1E7FFFDFDFC67E3C
  179. DATA 0000000000000000
  180. @DATTEKI
  181. DATA 00BD7EDBDB7EC300

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 名無しさん : このプログラムのキャラクターが分かりません。教えてください。 (2011/10/23 (日) 05:24:23)
  • 投稿者 : PRINT文に書いてあるそのままの文字を入力すれば大丈夫ですよ。162〜181行目で書き換えてます。Bボタンで正常に終させると85行目で文字を元に戻します。 (2011/10/23 (日) 10:16:00)
  • 投稿者 : PRINT文に書いてあるそのままの文字を入力すれば大丈夫ですよ。162〜181行目で書き換えてます。Bボタンで正常に終させると85行目で文字を元に戻します。 (2011/10/23 (日) 10:23:56)
  • 投稿者 : しまった、二重投稿になってしまった。 (2011/10/23 (日) 10:24:32)
  • 名無しさん : 動きました!ありがとうございます! (2011/10/23 (日) 22:47:13)
  • 初心者 : 48行目で、なぜかエラーがでます。 (2011/10/24 (月) 16:34:37)
  • バイカウントメルビル : 「:」や「()」などは忘れていませんか? (2011/10/24 (月) 16:38:55)
  • 投稿者 : 何エラーでしょうか?エラーが出た時、変数CXとCYの値はいくつですか?","と"."を間違えていませんか? (2011/10/24 (月) 18:29:51)
  • 名無しさん : なんかざんそうみたいなのがあって移動しても攻撃が当たってゲームオーバーになるしリトライするとキャラクターが出現しないんですけどどうしたらいいですか? (2012/02/18 (土) 12:03:29)
  • 名無しさん : あと42ぎょうでエラーです。 (2012/02/18 (土) 12:07:26)
  • 名無しさん : ^しばらくやっているとですが······ (2012/02/18 (土) 12:10:24)
  • 名無しさん : ↑3行 キミの打ち間違いなのは確実なので自力でよく見直すように。作者のせいではない。早く返事しろとか失礼なこと書かないこと。どこを打ち間違えたかは打った本人しか分からない。 (2012/03/24 (土) 02:35:52)
  • 名無しさん : は?早く返事しろとかそんなコメント書いてませんよ。 (2012/03/24 (土) 03:34:32)
  • 名無しさん : ↑じゃあ関係ない誰かがイタズラで書いただけってことですね。忘れてください。ごめん。 (2012/03/24 (土) 10:12:51)
  • qa : やっぱりそういうイタズラって多いですよね。 (2012/03/24 (土) 10:23:57)
  • 名無しさん : ↑x2いや、わかってくれればいいです。僕も言い過ぎました。すいません。 (2012/03/24 (土) 10:31:02)
  • 名無しさん : QRあればこんなケンカ無くなるのに。 (2012/03/24 (土) 11:04:25)
  • ↑の返答 : でもQRには頼りたくないんです。なんと言うか打ち込むのが好きなんで。 (2012/03/24 (土) 11:09:03)
  • 投稿者 : 誰か入力した人、QRコード載っけてくれてもいいですよ。暇ないんで誰か頼む。 (2012/03/24 (土) 20:30:57)
  • プチコンまとめWiki管理人 : こちらでQRコードアップしました。 (2012/03/24 (土) 21:01:12)
  • 投稿者 : ああっ、管理人さんにお手数かけてしまった!ありがとうございます。 (2012/03/24 (土) 22:05:53)
  • プチコンまとめWiki管理人 : どういたしまして! (2012/03/24 (土) 22:55:36)
  • 名無しさん : うぽつ… (2012/03/25 (日) 10:47:47)
  • バイカウントメルビル : 念のため聞きますがQRコードの真ん中にあるやつは2枚目ですよね?直した方がいいでしょうか (2012/03/25 (日) 15:37:45)
  • どこかの人 : QR2が3になっているのを直しといておきます。 (2012/04/07 (土) 15:30:48)
  • プチコンまとめWiki管理人 : すいませんありがとうございます。ついでに、VSYNCをWAITに置き換えたものに差し替えました。 (2012/04/10 (火) 08:56:30)
  • 名無しさん : 投稿者は管理人に媚びすぎ 管理人に迷惑かけたくないなら最初から人に頼るな (2012/04/23 (月) 10:02:41)
  • 名無しさん : その言い分は違うだろwwwQRクレクレ野郎がいけないんであって。 (2012/04/23 (月) 16:59:15)
  • プチコンまとめWiki管理人 : 迷惑かかってるだとか、媚びられているとか、とんでもない話です。 (2012/04/24 (火) 00:12:30)
  • hata0401 : ム、ム、ム、ムズカシーーーー (2012/06/10 (日) 20:24:25)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.043 秒 | このページの最終更新 : 2012/06/10 (日) 20:24:25 (2596d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30