トップページへ

三目並べ

ルールの実装

今回は三目並べのルールをメソッドとして実装します。メソッドの名前は rule とします。

01 public void rule(){
02   int x = p.x/100;
03   int y = p.y/100;
04 
05   if(x>=0 && x<3 && y>=0 && y<3 && BANMEN[y][x]==SPACE){
06     BANMEN[y][x] = TURN;
07     TURN *= (-1);
08     repaint();
09   }
10 }

2 行目では変数 p に格納された x 座標を p.x と指定することで取り出し 100 で割ってから変数 x に格納しています。 3 行目では y 座標を同様に変数 y に格納しています。

得た座標の値を 100 で割っているのは配列の添え字に対応させるためです。 例えば( 90, 10 )の位置がクリックされたとします。この値を 100 で割ると( 0, 0 )となり BANMEN[0][0] として使うことができます。

そして、クリックしたマスが「 空白 」であったら If 文の中に入ります。 If 文の中の変数 TURN はまだ宣言されていないので、次のように宣言しておきましょう。

int TURN = MARU;

6 行目は現在のターンの情報(マルかバツ)をクリックしたマスに対応する配列要素に格納します。 そして、7 行目でターンのを変更を、8 行目で再描画(paintメソッドの呼び出し)しています。 「 MARU=1 」「 BATSU=(-1) 」 なので -1 を掛けることでターンの変更ができます。

最後に、ruleメソッドをクリックした時に呼び出すようにします。

public void mouseClicked(MouseEvent e){
  p = e.getPoint();
  rule();
}

これで三目並べは完成です。

最終更新日:2007/07/19
←[前のページ] [Javaトップページ] [次のページ]→

Copylight (c) ガメラボ 2006 - All Rights Reserved

inserted by FC2 system