2016-12-01 2 views
0

私はUnity for Android用クイズゲームを開発しています。このゲームは、基本的に質問とそのプレイヤーに対するそれぞれの答えを表示します。これらの質問と回答はSQL DataBaseに格納されています。ゲームはそのデータをデータベースから取り出してプレイヤーに表示します。どのようにクイズゲームで各オンライン回答の確率を作るには? -SQLデータベースデータベース

いったんプレイヤーが質問に答えると、今までのすべての答えがあるまで、どのくらいのセレクションのポーズを表示したいと思います。つまり、世界の人々のうち、どれだけ多くの人がこの質問の答えを選んだのか。 例: 質問A - >回答B(25%)回答C(25%)回答D(50%)回答E(0%)

私の主なアイデアは、答えはその時の合計時間です。次に、私はこの式を使って各回答の割合を見つけることができます: 確率Bの確率B - >答えの選択肢B /すべての時間の合計がその質問をプレイしました。

私はSQLのテーブルにすべてのデータを保存できるかどうかは分かりません。なぜなら、回答質問の時間は常に増えるからです。たぶんこれを行う別の数式があります。

確率操作を行うためのデータを格納する最良の方法であるかどうかはわかりません。私はちょうどこれを行うために良いアイデアが必要です。

ゲームに関する注意: - プレイヤーが質問を2回以上解決した場合、それらのすべてを確率の式に考慮してください。 - すべてのオンラインデータをSQLデータベースに保存したい

アイデアが役に立ちます。おかげさまで

答えて

0

あなたのアプローチでは基本的に正しいですが、明示的に与えられた回答の総数は保存しません。各質問に与えられた回答の数を保存し、必要なときに合計の回答数を計算するだけで、いつでも合計を更新する必要はなく、データの不一致は生じません。

QuestionIDとAnswerIDをキーとして1つのテーブルAnswersGiven(QuestionID、AnswerID、TimesSelected)に格納できます。誰かが質問を選ぶ度にTimesSelectedが更新されます。

また、どのユーザーが回答を出したかなどの追加データをトラッキングすることもできます。次に、カウントのクエリを実行して回答の数を取得する必要がありますが、必要に応じてさらに分析を行うことができます(回答間の相関など)。

+0

ありがとうございました。良いアイデアはテーブルAnswersGiven(質問ID、AnswerID、TimesSelected)のデータを格納していますか?しかし、 "TimesSlected"フィールドは時間と共に増加するので、オーバーフローが発生する可能性があります。 ¿この可能性のあるオーバーフローの問題を解決するにはどうすればよいですか? ¿TimesSelectedは "INT"タイプのフィールドでなければなりませんか?再度、感謝します。 – Jackson

+0

32ビット整数を使用する場合は、オーバーフローする前に質問に答えるのに少なくとも20億人が必要です。過度に悲観的なことではありませんが、あなたのアプリがその多くに達するのではないかと疑います。 64ビット整数を使用すると、地球上のすべての人が毎日各質問に100万年にわたって答えても、オーバーフローから安全になります。 –

関連する問題