第1-2回 Androidアプリのリバーシをつくる(ボタン処理)[Java, Android Studio]
第1-2回 Androidアプリのリバーシをつくる(ボタン処理)
第1-3回 Androidアプリのリバーシをつくる(Google Playへの登録)
今回作成したアプリ
https://play.google.com/store/apps/details?id=com.dualreversi.reversi
Github
https://github.com/hide-dog/DualReversi
前回は背景やボタンを設定しました。
今回はボタンを押したときの挙動について記載します。
ボタンの処理は意外とあっさりしており、下記のようになっています。
// -------------------------------------- // at Click // -------------------------------------- @Override public void onClick(View v) { // get Id (押されたボタンのIDを取得) int id = v.getId(); // SWButton (スイッチボタン) if (id==IdButtonBW){ // onButtonBW onButtonBW(black_true); // check status CalStatus(); // set view SetViewStatus(); } // reset button (リセットボタン) else if (id == IdButtonReset){ // set initial condition SetInitialStatus(); // reset text player CheckTextPlayer(false); // reset BW button onButtonBW(false); // check status CalStatus(); // set view SetViewStatus(); // decision DecisionWinORLose(); // remove text Win or lose TextView tv = (TextView) findViewById(IdTextWinLose); tv.setVisibility(View.INVISIBLE); } // undo button (1手戻るボタン) else if (id == IdButtonUndo){ // undo button if (IteStatusHistory == 0){ IteStatusHistory = 1; } // set initial condition UndoStatus(); // set view SetViewStatus(); if (IteStatusHistory != 0){ // set text player CheckTextPlayer(BoolPlayer); // set text BW onButtonBW(!BoolPlayer); }else{ // set text player CheckTextPlayer(false); // set text BW onButtonBW(false); } // check status CalStatus(); // set view SetViewStatus(); // decision DecisionWinORLose(); // remove text Win or lose TextView tv = (TextView) findViewById(IdTextWinLose); tv.setVisibility(View.INVISIBLE); } // button on board (マス目のボタン) else if (11 <= id && id <= 88){ // convert id to status_id int sj = (id % 10) - 1; int si = (int) Math.round((id - sj)*0.1) -1 ; // set black or white CheckOnLineReversi(si, sj); // set text player CheckTextPlayer(BoolPlayer); // // set text BW // onButtonBW(!BoolPlayer); // check status CalStatus(); // decision DecisionWinORLose(); // set view SetViewStatus(); // update status history UpdateStatus(); } }
前回の配置の際に、IDを設定したことは覚えていますでしょうか。
そのIDを用いて、場合分けを行っています。
場合分け後は、各関数を順に実行させています。
どちらの番なのか間違わないように、そしてどちらの番でも問題なく動くように番号やtrue, falseを駆使して整理します。
後は、具体的にリバーシに必要な関数を追加します。
・マス目に置かれたときにどの石がひっくり返るか計算する
・意思を置くことのできる場所のボタンを有効かする
・1手戻る様に盤面を記録する
・勝負が確定したかどうか判定する
などなど
上記の動作は、関数名事に分けていますが一つのファイル内に収まっているので興味があれば見てみてください。
ここまでで、アプリ自体は完成しました。
自分のスマホで動かす分には問題ありませんが、どこからでもだれでもダウンロードできるようにします。
次回は、Google Playに登録したときの内容を記載します。
hide
コメントを残す