あと石が置いてある場所には置けないようにしたい。
そんでまぁ、とりあえず書いてみることにした。
目的の機能だけ作った
初期画面
真ん中の4つのマスにTextを設定するだけ。この機会にルールをちゃんと見てみたら、置き方にも決まりがあるのね。黒が右って初めて知った。
石が置いてある時に置けないようにする
TextView tv = findViewById(id); String stone; stone = tv.getText().toString(); if(!stone.equals("")){ Toast.makeText(this,"そこに石は置けません", Toast.LENGTH_SHORT).show(); }
タップした所のTextを取得。それが空白以外(○、●)だったらToastを表示する。
ほんとは文言はString.xmlから引っ張るほうが良いみたい。
手番によって置く石を変える
int PlayerTurn = 1; final int BLACK = 1; final int WHITE = -1;
}else{ switch(PlayerTurn){ case BLACK: tv.setText("●"); PlayerTurn = WHITE; break; case WHITE: tv.setText("○"); PlayerTurn = BLACK; break; } }
PlayerTurnで手番を管理して、手番によって置く石を変更して、石置いた後は手番を変える。
これでできた。finalって初めて使ったなぁ。
…
できたはできたんだけど、今後もこんな感じで処理の流れを見つつ間に追記したりするのか?と不安になる。そいで色んなオセロ・リバーシのソースを見てみたら、クラスを作ると良いみたい。ただ、VBA書いてる時は、クラスとか使ったことないし、自分に書けるかというと、どうだろう。ただやってみたくはあるなぁ。やってみようかなぁ。
参考
オセロ (ボードゲーム) - Wikipedia
Toast | Android Developers
final修飾子 - Javaちょこっとリファレンス
コメント