問題タブ [achievements]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
achievements - 2008 年にプログラミングで達成したことは何ですか?
2008 年にプログラミングで達成したことは何ですか? 2009 年にあなたが驚いたり学んだりする技術と、プログラミングの観点から 2009 年に期待することは何ですか
編集:ウィキに変更
ruby-on-rails - Rails「バッジ」タイプのプラグイン/チュートリアル?
stackoverflowが使用するものと同様のバッジ/達成システムを作成する方法を示すRails gem/plugin/tutorialがあるかどうかは誰にもわかりません。
ありがとう。
python - 次の成果を推薦する方法
短縮版:
StackOverflowと同様の設定があります。ユーザーは実績を取得します。私はSOよりもはるかに多くの実績を持っています。たとえば10kのオーダーで、各ユーザーは数百の実績を持っています。さて、ユーザーが試すべき次の成果をどのように推奨しますか(推奨しますか)?
ロングバージョン:
オブジェクトはdjangoでこのようにモデル化されています(重要な部分のみを表示しています):
私のアルゴリズムは、ログインしたユーザーと実績を共有している他のすべてのユーザーを見つけて、すべての実績を調べ、発生回数で並べ替えるだけです。
ただし、実行にはFOREVERが必要であり、常にリスト全体が返されますが、これは不要です。ユーザーは、上位のいくつかの実績のみを追跡する必要があります。
したがって、他のアルゴリズムやコードの改善に関する推奨事項を歓迎します。レコメンデーションアルゴリズムを考え出すための私のシステムでの成果をお伝えします:)
normalization - 複数のソースによる実績の正規化
良いアルゴリズムの推奨事項を探しています。
ユーザーと実績があります。ユーザーはアチーブメントを作成し、それを他のユーザーに提供します。各アチーブメントには、ユーザーが指定したポイント値が関連付けられています。ユーザーの合計ポイントは、すべての実績の合計です。
基本的:
わかりました、このシステムは明らかに非常にゲーム可能です。多くのアカウントを作成し、お互いにたくさんの成果をあげることができます。ポイント値をユーザーが指定したものとは異なる値にスケーリングすることで、それを少し削減しようとしています。
- すべてのユーザーが正直であると仮定しますが、難しさを異なる方法で評価しているだけです。ポイント値を正規化するにはどうすればよいですか? AKA 1 人のユーザーは簡単な成果ごとに 5 ポイントを与え、別のユーザーは 10 ポイントを与えます。どうすればそれらを 1 つの値に正規化できますか。目標は、ポイントが難易度に比例する分布です。
- ポイント値の判断が苦手なユーザーがいる場合、アチーブメントを獲得したユーザーの数から難易度を割り出すにはどうすればよいですか?
- ユーザーはほとんどがバラバラなグループに分割され、1 人のユーザーが他のユーザーのセット全体に実績を与えることができると仮定します。それは前の 2 つのアルゴリズムに役立ちますか? たとえば、ユーザー A は奇数で終わるユーザーにのみ成果を与え、ユーザー B は偶数で終わるユーザーにのみ成果を与えます。
- 誰もが悪意を持っている場合、ユーザーがポイント値を過大に膨らませることができないようにするには、どれくらい近づくことができますか?
注: ユーザーへの寄付の質は、彼が受け取った実績の数とはまったく関係ありません。多くのギバーは、自分自身は何も受け取っていない単なるボットですが、特定のアクションを実行したユーザーに自動的に報酬を与えます。
私の現在の計画はこのようなものです。私は、私から成果を得た 1 人あたり 10 ポイントの割り当てを持っています。合計 55 人に 10 個の実績を配布した場合、私の割り当ては 550 です。これは、それを取得した人数に基づいて各実績に割り当てられます。分布が[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
各アチーブメントを取得した人である場合、ポイント値は になります[50, 25, 16.6, 12.5, 10, 8.3, 7.1, 6.25, 5.5, 5]
。
私のアプローチと代替の推奨事項に関する問題は大歓迎です。また、私が見逃したと思われる他のケースを投稿してください。リストに追加します. ありがとう!
python - GoogleAppEngineで達成するための可能なデータスキーム
GoogleAppEngineを使用してフラッシュゲームのウェブサイトを構築しています。私はそれに成果を載せるつもりであり、このデータをどのように正確に保存するかについて頭を悩ませています。私は(グーグル以外の)ユーザーモデルを持っています。それぞれの成果(名前、説明、写真)を保存する方法と、それらを獲得したユーザーとリンクする方法を知る必要があります。また、彼らがいつそれを獲得したか、そしてまだそれを持っていない人々のために彼らの現在の進歩を追跡する必要があります。
誰かが検出または他の達成関連のタスクについて提案をしたい場合は、遠慮なく。
編集:
Google以外のユーザーモデル:
cron - SO のようなバッジ達成システム: 使用されているデータ + 基準 (即時授与 & cron ジョブ)
SOのオープンソースのクローンを見てきましたが、
http://github.com/cnprog/CNPROG
私は Python/Django を知りませんが、何が起こっているのかを読むことはできます。
開発者は、cron ジョブでのみバッジを授与しているようです。賞は、賞を達成するために満たさなければならない基準の「ルール」である方法によって与えられます。
基準であるこのファイルでは、
それでも、 best-way-to-store-badge-criteria への回答では、次のようなクエリを実行しないと言っています。
これは CNPROG メソッドに似ていますが、代わりに
各投稿が来るのを監視し、「それらをカウント」して、ルールの状態をユーザープロファイルに保存する単純なルールがあります。
「それらを数える」という言葉は、すべてを 1 つの表に記録する方がよいという意味ですか?
次に、このデータを使用して、ユーザーが投稿するコメントごとに単純なルールを作成しif(commentCount > 10)...
、SQL クエリを実行します。
Q誰かがbest-way-to-store-badge-criteriaという質問からの回答をさらに説明できる場合は、「ルール」、「基準」、およびデータベース設計の例を挙げてください。
これらは、いくつかの「ユーザーごとのアクション」および cron ジョブで使用され、バッジを付与します。
optimization - 現代の複雑なゲームでの達成システムの実装
最近作成された多くのゲームには、特定のタスクを達成したことに対してプレーヤー/ユーザーに報酬を与える独自のアチーブメントシステムが付属しています。ここでのstackoverflowのバッジシステムはまったく同じです。
しかし、私が良い解決策を見つけることができなかったいくつかの問題があります。
アチーブメントシステムは常に特定のイベントに注意する必要があります。たとえば、戦闘で20〜30のアチーブメントを提供するゲームを考えてみてください。サーバーは、これらのイベントを常にチェックする必要があります(たとえば、プレイヤーがこの戦闘で対戦相手のx攻撃を回避したか、プレイヤーがxマイル歩いた)。
- サーバーは、速度を落としたり、クラッシュしたりすることなく、この大量の操作をどのように処理できますか?
アチーブメントシステムは通常、ゲームのコアエンジンでのみ使用されるデータを必要とし、それらの厄介なアチーブメントがなければ、とにかくそこからは必要ありません(たとえば、各戦闘中にプレーヤーがジャンプする頻度を考えてみてください。このすべての情報をデータベースに保存したくない。)つまり、アチーブメントを追加する唯一の方法は、現在の状態をチェックするコードをゲームコアに追加することであり、これは通常、非常に悪い考えです。
アチーブメントシステムは、後で不要な情報を保持するゲームのコアとどのように相互作用しますか?(上記の例を参照)
それらはゲームのコアからどのように分離されていますか?
私の例は「無害」に見えるかもしれませんが、たとえば、World of Warcraftで現在利用可能な1000以上の実績と、同時にオンラインになっている多くのプレーヤーについて考えてみてください。
iphone - iPhone OS:独自の成果を実装するにはどうすればよいですか?
私はゲームに取り組んでいます。実際には、ゲーム全体でさまざまなことを行うときに、ユーザーがアチーブメントのロックを解除できることが(少なくとも現時点では)唯一のゲーム部分です。特定のユーザーアクションを追跡し、ユーザーが何かをした回数を記録できるデータベースがありますが、最小限の作業でアプリを設計するための最良の方法を見つけるのに苦労しています。gamecenterの準備ができておらず、openfeintがギアを変更しているように見えるので、タイミングが悪いのですが、私は間違っているかもしれません。それがあまりばかげていなければ、私はすべてを「家の中で」やりたいと思います。提案を探しています。
私が理解するのに最も苦労している部分の1つは、すべての成果の状態を管理する方法です。NSuserdefaultsvs.コアデータvs.フラットデータファイル。
また、コアデータフィールドが特定の量に達した場合に通知を送信する方法はありますか?
ありがとう、
ニック
iphone - iPhone OS: 2 つの ManagedObject エンティティ間で KVO をセットアップする方法はありますか?
KVO とリンクしたいエンティティが 2 つあります。1 つはさまざまな統計を追跡する単一の statTracker クラスで、もう 1 つは実績に関する情報を含む実績クラスです。理想的には、達成クラスのインスタンスに statTracker クラスの値を監視させることで KVO を設定し、達成インスタンスを「トリガー」するしきい値を設定することです (この場合はトリガー)。 UIAlertView を表示し、アチーブメント クラスのプロパティを変更することを意味します。)
可能であれば、達成クラスのインスタンス化時にこれらの関係も設定したいと思います
このようなもの:
私がこれをどのように設定するか知っている人はいますか?私が見ていない関係を介してこれを行う方法はありますか?
ありがとう、
ニック
ruby-on-rails - RoR 達成システム - ポリモーフィック アソシエーションと設計上の問題
Ruby on Rails で実績システムを設計しようとしていますが、設計/コードで問題が発生しました。
ポリモーフィックな関連付けを使用しようとしています:
移行:
次に、この次の使い捨て単体テストを試すと、実績が null であると表示されて失敗します。
そして私の備品: achievements.yml...
weight_achievements.ym...
とはいえ、これを実行することはできません。おそらく、全体的な計画では、これは設計上の問題です。私がやろうとしているのは、すべての成果とその基本情報 (名前と説明) を含む単一のテーブルを用意することです。そのテーブルとポリモーフィックな関連付けを使用して、その成果を達成するための基準を含む他のテーブルにリンクしたいと考えています。たとえば、WeightAchievement テーブルには必要な体重とエクササイズ ID があります。次に、ユーザーの進行状況が UserProgress モデルに格納され、実際の実績 (WeightAchievement ではなく) にリンクされます。
別のテーブルに基準が必要な理由は、基準が実績の種類によって大きく異なり、後で動的に追加されるためです。これが、実績ごとに個別のモデルを作成しない理由です。
これは意味がありますか?アチーブメント テーブルを WeightAchievement のような特定の種類のアチーブメント (したがって、テーブルは name、description、weight_required、exercise_id) とマージする必要があります。その後、ユーザーがアチーブメントを照会すると、コードですべてのアチーブメントを検索するだけですか? (例: WeightAchievement、EnduranceAchievement、RepAchievement など)