初期画面を設定し、白と黒を交互に置きたい

スポンサーリンク
スポンサーリンク

あと石が置いてある場所には置けないようにしたい。

そんでまぁ、とりあえず書いてみることにした。

スポンサーリンク

目的の機能だけ作った

初期画面

真ん中の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ちょこっとリファレンス

コメント

タイトルとURLをコピーしました