現在の挙動
現在0番の問題が出るようにapp.pyのdo_f()関数内で指定しています。しかし、文法問題は6つ (0~5番)あるので、「делатьの現在活用」の「練習する」をクリックする度にランダムに問題を表示するようにしたいです。
関係するファイル
app.pytemplates/verb/do_f.htmlru_func.py
- делатьの現在活用を開き、「練習する」をクリック。

делаюと打ちEnterまたは[解答する]をクリック。

- 「正解!<делаю>です。」と判定結果が出る (違う単語を入力すれば「正解は <делаю> です。もう一度してみてね」と出る)

現在の挙動の問題点
ramdom.randient(0, 5)をapp.pyのdo_f()関数(通し番号23~25行目あたり) に挿入すればよいかと思ったのですが、単語を打ち込み[解答する]をクリックすると、ramdom.randient(0, 5)がもう一度動くようで、正解かどうかを新しく表示された単語と照合し、「正解は <xxxx> です。もう一度してみてね」となります。「練習する」をクリックしたときに出る値を保ってそれと照合するにはどうしたらよいでしょうか?
文法問題一覧とrandam.randient()にした場合の挙動
データベースはSQLiteです。一番最後のдела~と入力値を照合し正解かどうかを判定します。
しかしramdom.randient(0, 5)をapp.pyのdo_f()関数(通し番号23~25行目) に挿入すると。。。
Я <ここに入力> всё что хочу.にделаюと入力し[解答する]を押す。- なぜかまた
ramdom.randient(0, 5)が働き、例えば5|Они|уроки на английском.|1|делаютが表示&делаютと照合され「正解は <делают> です。もう一度してみてね」となります。
SQL
10|Я|всё что хочу.|1|делаю 21|Ты|этот мир лучше.|1|делаешь 32|Что он|сейчас?|1|делает 43|Мы|глупые селфи.|1|делаем 54|Это вы|весной.|1|делаете 65|Они|уроки на английском.|1|делают
関係リソース
アドバイスでquestion_noなど追加 (2019/10/01追記)
FiroProchainezoさまのアドバイスでquestion_noなど追加しましたが、挙動変わらず。でもdo_fp(question_no)のように関数に変数渡して。。。というのは私では思いつきませんでした(≧∀≦)
問題と解答の照合が+1ずつずれる問題
そこで思い至ったのですが、もしделатьの現在活用のページでこっそりと乱数question_noを生成し、それをverb/do_f→verb/do_f/int:question_noと渡せればずれが是正されるのではと考え始めました。が、こっそりと乱数question_noを生成し、次のページに渡していく。。。という仕様が思いつきません(T_T)**「こっそり(ページ上では見えないように)」**という部分が難しいです。
SQL
10|Я|всё что хочу.|1|делаю 21|Ты|этот мир лучше.|1|делаешь 32|Что он|сейчас?|1|делает 43|Мы|глупые селфи.|1|делаем 54|Это вы|весной.|1|делаете 65|Они|уроки на английском.|1|делают
現状例えば上記の並びで乱数が生成されるとすると、1番の答えが2番(делает)と照合され、2番の答えが3番(делаем)と照合され。。。となります。
できましたー(≧∀≦)(2019/10/02追記)
FiroProchainezoさまのアドバイス:
sessionを使うか、postにhidden属性で入れて渡すかのどちらか
sessionを使うことにし、app.pyのdef verb():にsession['secret_text'] = random.randint(0, 5)を追加→app.pyのdef do_f():にquestion_no = session['secret_text']を入れるとズレが解消されました!ありがとうございます<3
他の問題を出すには前のページに戻る必要があるのでdo_fページに戻るための戻って[練習する]ボタンを再度クリックボタンも追加しました!遊んでみてください<3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/01 05:11 編集
2019/10/02 07:52