KotlinでAndroidアプリ#25

スタート制御

スタート/リセット動作のため次のようにプログラムを変更する。

STARTボタンをクリックするとゲーム開始なので、プログラム起動時はゲーム終了状態とする。そのため15行目の終了フラグをオン(true)に設定する。

ゲームを何度も行ったりリセットしたりするので、ゲームを初期状態に戻す必要がある。これを実現するため関数initを実装した。

66行目の「squares.allClear()」は、クラスSquaresの新たな関数allCleartを呼び出している。この関数で全てのマス目を空白にしている。

67行目で手番を初期状態の✕(true)に設定している。

68行目で関数buttonSetを呼び出している。この関数はゲーム状態(終了、プレイ中)により画面右下のボタンテキスト(START/RESET)、画像(青/赤色)を変更している。

39行目の関数onClickはマス目がクリックされた際に呼びだされていた。今回STARTボタンを追加したので、これをクリックしてもこの関数が呼び出されることになった。

どのボタンがクリックされたか判別するためにid属性を使い判断する。そしてSTARTボタン(buttonClick)、マス目(imagebuttonClick)、それぞれの処理を行う関数を呼び出している。

40行目のwhen命令はJavaのswitch命令に相当するものだ。

画面右下のボタンをクリックすると71行目の関数buttonClickが呼び出される。「START」表示時にクリックされるとゲームの初期化を行いゲームを開始する。

「RESET」表示時にクリックすると78行目で関数createDialogを呼び出す。この関数はゲームを中止するか、確認するためのダイアログを表示しているのだ。

ダイアログ

ダイアログの表示はAlertDialog.Builder命令で行っている。※ダイアログは様々な表示ができるので詳細はGoogle Developerを参照してください。

ダイアログの実装で注意点がある。ダイアログを表示するとOKやCANCELの応答があるまで、プログラムが停止すると錯覚しがちだ。実際は表示を行うと次のプログラムが実行されていく。

この動作を忘れてしまうと、思い通りにプログラムが動作せず解消まで時間を費やしてしまうことになる。

動作確認

前へ<ーーー>つづく

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