1

子供向けの簡単なタスクを含む iOS 用の数学アプリを作成しています。

私の目的は、ユーザーの回答を特定のタスクで定義された回答と比較することです。

例: ユーザーは、10 + 6 = 16、20 - 2 = 18 などの質問に答える必要があります。

しかし、ユーザーがいくつかのステップで解決しなければならないタスクもあります。

例: ベンは 5 マイル行きました。翌日、彼は 10 マイル走りました。家に帰るには、彼は 20 マイル歩く必要があります。問題は、彼が家に帰るのに何マイル歩く必要があるかということです。

したがって、解決策は次のとおりです。

  1. 5 + 10 = 15
  2. 20 - 15 = 5

答え:5マイル

すべてのタスクを JSON 形式で作成したので、文字列に基づいてユーザーの回答と正しい回答を比較できるようになりました。しかし今、私は少し問題があります。たとえば、完全な文字列を比較すると、ユーザーがコンポーネントを移動できないことを意味します。たとえば、ユーザーは次のソリューションを作成できます。

  1. 10 + 5 = 15 ですが、別のバリアント 5 + 10 = 15 を作成することもできます。
  2. 20 - 15 = 5

したがって、すべての文字列を分析して完璧にするので、すべての回答を保持しても問題はありません。しかし、これはJSONですべての回答を保持するための悪い解決策だと思います(すべてのバリアント回答を意味します)

しかし、それは唯一の解決策かもしれません。どう思いますか?

4

2 に答える 2

0

わかりましたので、JSON 形式で転送するデータが多すぎないようにします。操作の順序を確実にするために括弧を使用することをお勧めします。答えを評価して、それが正しいものであることを確認します。サーバー上で、数値を切り取って何らかの配列リストに入れるスクリプトを実行できます。次に、正解のすべての数字が、ユーザーが送信した文字列の数字に含まれているかどうかを確認します。加算のみを行っている場合は問題ありませんが、除算やモジュロなどの新しい演算を導入する場合は、括弧を使用して、括弧を展開して各演算を評価する必要があります。たとえば、10+(9+2) のような答えが得られます。最初に 9+2 を評価し、括弧内で行われているすべての操作が正しいことを確認してから、その一連の括弧内の答えを外側の操作で評価します。ドン' ただし、電話であまりにも多くの計算を行う必要はありません。幸運を。

于 2012-09-13T15:18:07.993 に答える
0

数学の問題だけなら、その場で答えを検証できるかもしれません。

JavaScript を使用して、ユーザー入力が正しい答えと一致することを再確認します

eval()これを行うために使用できます

于 2012-09-13T15:06:24.770 に答える