勝ち負けなしの判定が抜けていたので、追加した。
これはてこずるのではないかと思っていたが、意外と簡単に解決方法が見つかった。
アプリ実行のビデオ:
スクリーンのデザイン:
上記ビデオの通りだが、それぞれの場合のスクリーンは以下の通り。
Circle wins Cross wins No wins or losses
ブロック・コード:
1. 9つのボタンのいずれかをタップした回数を格納するtapCountを設定。これらボタンは、一度タップすると無効となるので、一回の勝負で先攻後攻合わせて9回タップすることになる。
2. 先攻、後攻、いずれがタップしてもtapCoupntを1加算する。(赤黄色点線部分)
3. 関数noWinsNoLosses:tapCountが9(タップできるボタンがなくなった時)で、かつshowWinnerLabelのテキストが空白(これは、先攻、後攻ともに現在の対戦では勝っていないことを意味する)の場合は、showwinnerLabelに「No wins or losses」(勝ち負けなし)を表示し、関数makeButtonsDisabledを実行する。
4. 関数makeButtonsDisabled:全てのボタンを無効にし、「Play again」ボタンを表示する。
5. 関数decideWinnerに、関数noWinsNoLossesを最後に追加する。これにより、合計9回のタップの後でも先攻後攻いずれも勝たなかった場合に、この関数の条件が満たされ、「No wins or losses」が表示される。
********************* 途中省略 ***********************
6. 「Play again」ボタンをタップすれば変数等が初期化され、同時にtapCountも0に初期化される。
***********************************************************
前回までのブログ:
MIT App Inventor 2であのアプリを作ってみる (Tic-Tac-Toe 1)
※コメント投稿者のブログIDはブログ作成者のみに通知されます