画面構成などは変更なく、ブロック(プログラム)を手直しした。
気持ちとしては、データの重複を避ける。
1. ことわざデータをキーと値のペアーにしてdic という変数に割り当てておく。あとは、このデータを使うだけ。
2. 変数dict のキーを任意に取出しリストを作成した上で、任意のキーを選択するprocedure ”randomItem"を作成。
3. スクリーンの初期化 => TextBox (firstPartLabel)にprocedure(randomItem)より得たキーを表示する。変数 dict より値(value)、すなわち次の句のリストをListPicker のElementsに割り当てる。
4. ListPickerで選んだ次の句をTextBox (secondPartLabel) に表示する。
5. 最初の句(firstPartLabelに表示されたもの)であるキーに対応する値(value)がsecondPartLabelに表示されたものであれば正解。そうでなければ間違いとなり、それぞれのメッセージをresultLableに表示させる。
6. 不正解の場合は、次の句を表示していたsecondPartLabelと結果を表示していたresultLabelをブランクに戻し、再度リストより選択することを促す。正解の場合は、firstPartLabelに新たに任意の最初の句を表示させる。
前回よりは若干整理されたように(自分で)思う。
次回は、ことわざのデータを外部のデータベース(Googleが提供するFirebase)に保存し、データの追加・削除等の都度プログラム自体を手直しする必要をなくす。