Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/09/12 15:16:08

MixJuice GET URL : kidspod.club/mj/563

おなじのみつけた

2~4人での対戦ゲームです

■あそびかた
・初めに参加人数を入力します(2~4)
・各プレイヤーの操作キーは以下です、画面にも表示されています
 Player1:左(Z) 右(X) 決定(C)
 Player2:左(←) 右(→) 決定(↑)
 Player3:左(B) 右(N) 決定(M)
 Player4:左(4) 右(5) 決定(0)
・各プレイヤーにはキャラクターコード#E0から#FFまでの32種類からランダムで8個の絵が割り当てられます
・参加者全員に共通な絵が一つだけあります
・参加者全員に共通な絵を選択して先に「決定」キーを押した人が1ゲーム勝ちになります
・ゲームの勝ち数は画面に表示されます
・間違うと勝ち数が減ります(0以下にはなりません)
・先に3勝した人の勝ちです

■変数表
A 固定55
B 固定#E0
C 固定51
D 固定27
E I*5
F R-B+60
G 固定32
H 固定28
I FORループ
J FORループ
K INKEY()
L A+I
M C+I
P プレイヤー数
Q 全員共通キャラのキャラコード
R その他のキャラクターコード
S 勝った人のPlayerナンバー

[0]~[7] プレイヤー1の絵群
[8]~[15] プレイヤー2の絵群
[16]~[23] プレイヤー3の絵群
[24]~[31] プレイヤー4の絵群
[32] プレイヤー1のPLAYERの「P」のX座標
[33] プレイヤー1のPLAYERの「P」のY座標
[34] プレイヤー1左移動のキーコード
[35] プレイヤー1右移動のキーコード
[36] プレイヤー1決定キーのキーコード
[37] プレイヤー2のPLAYERの「P」のX座標
[38] プレイヤー2のPLAYERの「P」のY座標
[39] プレイヤー2左移動のキーコード
[40] プレイヤー2右移動のキーコード
[41] プレイヤー2決定キーのキーコード
[42] プレイヤー3のPLAYERの「P」のX座標
[43] プレイヤー3のPLAYERの「P」のY座標
[44] プレイヤー3左移動のキーコード
[45] プレイヤー3右移動のキーコード
[46] プレイヤー3決定キーのキーコード
[47] プレイヤー4のPLAYERの「P」のX座標
[48] プレイヤー4のPLAYERの「P」のY座標
[49] プレイヤー4左移動のキーコード
[50] プレイヤー4右移動のキーコード
[51] プレイヤー4決定キーのキーコード
[52] プレイヤー1のカーソルX
[53] プレイヤー2のカーソルX
[54] プレイヤー3のカーソルX
[55] プレイヤー4のカーソルX
[56] プレイヤー1の勝ち数
[57] プレイヤー2の勝ち数
[58] プレイヤー3の勝ち数
[59] プレイヤー4の勝ち数
[60]~[91] ダブりチェック用

  • 1
  • 1

SOURCE CODE

10 CLV:CLP:A=55:B=#E0:C=51:D=27:G=32:H=28:LET[G],4,2,90,88,67,20,2,H,29,30,4,12,66,78,77,20,12,52,53,48:INPUT"Player?(2-4)=",P:IFP<2||P>4CONT
20 @S:CLS:FORI=60TO91:[I]=0:NEXT:FORI=1TOP:E=I*5:LC[D+E],[H+E]:?"PLAYER";I:LC[D+E],[H+E]+1:?"WIN:";:FORJ=0TO[A+I]:?CHR$(255*(J>0));:NEXT
30 LC[D+E],[H+E]+6:?"KEY:";CHR$([29+E]+([29+E]<G)*196);CHR$([30+E]+([30+E]<G)*196);" ";CHR$([31+E]+([31+E]<G)*196):NEXT:Q=RND(G)+B:FORI=0TOP-1:FORJ=0TO7
40 R=RND(G)+B:F=R-B+60:[F]=[F]+1:IFR=QCONTELSEIF[F]=P[F]=[F]-1:CONT
50 [I*8+J]=R:NEXT:NEXT:FORI=0TOP-1:[I*8+RND(8)]=Q:FORJ=0TO7:LC[G+I*5]+J,[33+I*5]+3:?CHR$([J+I*8]):NEXT:NEXT:CLK
60 @M:FORI=1TOP:LC[D+I*5]+[C+I],[H+I*5]+4:?CHR$(226):NEXT:K=INKEY():FORI=1TOP:E=I*5:M=C+I:LC[D+E]+[M],[H+E]+4:?" ":[M]=[M]-([29+E]=K)*([M]>0)+([30+E]=K)*([M]<7):NEXT
70 FORI=1TOP:E=I*5:L=A+I:IFK=[31+E]IF[(I-1)*8+[C+I]]=QS=IELSE[L]=[L]-1*([L]>0):LC[D+E]+5+[L],[H+E]+1:?" "
80 NEXT:IFSLC10,10:?"Nice Player";S:[A+S]=[A+S]+1:IF[A+S]=3GOTO@EELSES=0:WAIT120:GOTO@S
90 GOTO@M
100 @E:LC0,20:?"Player";S;"Winner!"

COMMENT