0

私はゲーミフィケーション Q&A プラットフォームを作ろうとしています。ユーザーは、システムによって与えられたいくつかのタスクを実行することで XP を獲得し、レベルアップできます。

要件

  • ユーザーがレベルアップすると、このユーザーに新しいタスクを与える必要があり、ユーザーは与えられた各タスクを完了することで xp を獲得します。
  • ユーザーがレベルアップし、以前のレベルのタスクがまだ残っている場合、ユーザーは新しいタスクで前のタスクを実行できます。

マイ データベース デザイン

タスク

id | xp | level

id : タスク ID

xp : xp 量

level: このタスクを表示する下限

ユーザータスク

user_id | task_id | compeleted | created_at

この設計から、ユーザーが持っている、または持つ予定のタスクを処理できます。

問題

タスクが完了したかどうかを確認するにはどうすればよいですか? たとえば、「5 つの質問をして 50 XP を獲得する」というタスクがあるとします。どうすればそれを確認できますか? これはほんの一例です。動的データベース設計が必要ですが、作成できません。ゲーム、特に MMORG ゲームはこの状況をどのように処理しますか?

アドバイスをありがとう。

4

1 に答える 1

0

まあ言ってみれば

  • すべてのユーザーには多くのタスク (完了/未完了) があります。
  • 1 つのタスクには Xp (金額) があります。
  • タスクには task_details があります

現在(例)

if xp_of_user > 10 then user_level = 1, 
if xp_of_user > 20 then user_level = 2, 

等々

(またはあなたが決定する任意の基準。)

5 つの質問をして 50 XP を獲得

今、タスクの観点から考える必要があります。5 つの質問に答えることが 50 xp の価値がある 1 つのタスクであるとします。task_definitionたとえば、5 つの質問、2 つのビデオの視聴、調査フォームの実行など、タスクの仕様を定義するテーブルを定義できます。

タスクが完了したかどうかを確認するにはどうすればよいですか?

これに役立つ完全な(ブール値)フィールドをすでに作成しています。ユーザーがすべての質問に回答したかどうかを知る方法について質問している場合は? 次に、質問を行っている特定のフォームまたは場所でそれを行う必要があります。そのフォームまたはプロセスは、タスク テーブルの更新を担当します。

于 2016-07-23T01:11:06.323 に答える