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

Kidspod運営チーム
Kidspod運営チーム2018/10/02 22:25:07

4人対戦パズルとは熱い! 人数に応じてパズルとしての難易度が上がっていくのもいいですね。視野の広さと注意力を天秤にかけるとは、見事なアイデアです。ものすごく単純なルールなのに、この面白さはすごい!