extends SpriteChar; /* ***| *63| *??|←悩むね!(  ̄ ̄ ̄ マインスイーパです。 --変数一覧-- W 横のマス数 H 縦のマス数 M 地雷数 S ゲーム状況(0停止、1プレイ、2一時停止) T 経過時間(フレーム) D 二次元配列、マップ。(地雷=1、その他=null) E 地雷のX,Y座標が入っている配列。 MX マウスのX(マップ) MY マウスのY(マップ) ------------ ---その他--- 初級は 9* 9 10個 中級は16*16 40個 上級は30*16 99個 オリジナル 9*9~56*40 10~2052 (ただし(X-1)*(Y-1)個まで) ------------ */ //マスを作る。 //基本事項 randomize(); W = 9; H = 9; M = 10; $ScreenWidth = W * 16 +1; $ScreenHeight = H * 16 +1; $BGCOLOR = $clWhite; //マスわけ for (x=0;x 0) { if (X > 0) if (D.get(X-1,Y-1) == -1) i++; if (D.get(X,Y-1) == -1) i++; if (X < W-1) if (D.get(X+1,Y-1) == -1) i++; } if (X > 0) if (D.get(X-1,Y) == -1) i++; if (X < W-1) if (D.get(X+1,Y) == -1) i++; if (Y < H-1) { if (X > 0) if (D.get(X-1,Y+1) == -1) i++; if (D.get(X,Y+1) == -1) i++; if (X < W-1) if (D.get(X+1,Y+1) == -1) i++; } D.set(X,Y,i); } } //本体 setVisible(0); S = 0; T = 0; while(S < 2) { //クリックでゲーム開始 if (S == 0 && getKey(1)==1) S=1; //プレイ中 if (S==1) { T++; if (getKey(1)==1) { MX = trunc($MouseX/16); MY = trunc($MouseY/16); //地雷 if (D.get(MX,MY) == -1) { for (i=0;i0) fill(X,Y-1); if (Y0) fill(X-1,Y); if (X