三目並べ
ルールの実装
今回は三目並べのルールをメソッドとして実装します。メソッドの名前は 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();
}
これで三目並べは完成です。
Copylight (c) ガメラボ 2006 - All Rights Reserved