问题标签 [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 年的编程术语有什么期望
编辑:更改为 Wiki
ruby-on-rails - Rails“徽章”类型插件/教程?
有谁知道是否有 Rails gem/plugin/tutorial 显示如何创建类似于 stackoverflow 使用的徽章/成就系统。
谢谢。
python - 如何推荐下一个成就
简洁版本:
我有与 StackOverflow 类似的设置。用户获得成就。我的成就比 SO 多得多,可以说大约 10k,每个用户都有 100 多个成就。现在,您将如何推荐(推荐)用户尝试的下一个成就?
长版:
对象在 django 中像这样建模(仅显示重要部分):
我的算法只是找到与登录用户有共同成就的所有其他用户,然后查看他们的所有成就并按出现次数排序:
但是它需要 FOREVER 才能运行,并且总是返回整个列表,这是不需要的。用户只需要前几项成就即可。
因此,欢迎我提出有关其他算法和/或代码改进的建议。我会在我的系统中为您提供推荐算法的成就:)
normalization - 标准化具有多个来源的成就
我正在寻找一个好的算法推荐。
我有用户和成就。用户创建成就,然后将其提供给其他用户。与每个成就相关联的是用户指定的点值。一个用户的总分是他们所有成就的总和。
基本上:
好的,所以这个系统显然非常适合游戏。您可以创建许多帐户并互相取得大量成就。我试图通过将点值缩放到与用户指定的不同的值来减少一点。
- 假设所有用户都是诚实的,但他们只是很难以不同的方式衡量。我应该如何标准化点值?AKA 一个用户为每个简单的成就给出 5 分,另一个给出 10 分,我怎样才能将它们标准化为一个值。目标是分数与难度成正比的分布。
- 如果一个用户不擅长判断分值,我如何根据获得成就的用户数来判断难度?
- 假设用户可以大部分被划分为不相交的组,其中一个用户将成就授予一整套其他用户。这对前两种算法有帮助吗?例如,用户 A 仅向以奇数结尾的用户授予成就,而用户 B 仅向以偶数结尾的用户授予成就。
- 如果每个人都是恶意的,我能离让用户无法过度夸大他们的积分值还有多远?
注意:给予用户的质量与他获得的成就没有任何关系。许多给予者只是机器人,它们自己没有收到任何东西,但会自动奖励用户的某些行为。
我目前的计划是这样的。我有一个从我那里获得成就的人分配 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 - Google App Engine 上可能的成就数据方案
我正在使用 Google App Engine 构建一个 Flash 游戏网站。我将在上面取得成就,并且正在为如何准确存储这些数据而摸不着头脑。我有一个(非谷歌)用户模型。我需要知道如何存储每种成就(名称、描述、图片),以及如何将它们与获得它们的用户联系起来。另外,我需要跟踪他们何时获得它,以及那些还没有获得它的人的当前进度。
如果有人想就检测或其他与成就相关的任务提出建议,请随意。
编辑:
非 Google 用户模型:
cron - 像这样的徽章成就系统:正在使用的数据 + 标准(即时奖励和 cron 工作)
我一直在看 SO 的开源克隆,
http://github.com/cnprog/CNPROG
我不知道 Python/Django,但我仍然可以阅读发生了什么,
开发人员似乎只授予 cron 工作的徽章,奖励是通过方法颁发的,是必须满足的标准的“规则”才能获得奖励。
在这个文件中,这是标准,
然而,在对best-way-to-store-badge-criteria的回答中,它说不要运行类似的查询,
这有点像 CNPROG 方法,但改为
有一个简单的规则来观察每个帖子,并“计算它们”,将规则状态存储在用户配置文件中。
因此,通过“计算它们”一词,这是否意味着将所有内容记录在一张表中会更好,例如,
然后根据这些数据制定规则if(commentCount > 10)...
,对用户发布的每条评论进行简单的处理,然后执行 SQL 查询
Q如果有人可以进一步解释问题best-way-to-store-badge-criteria的答案,但举一个“规则”、“标准”和数据库设计的例子
这些将与一些“每个用户操作”和 cron 作业一起使用以提供徽章
optimization - 在现代复杂游戏中实现成就系统
现在创建的许多游戏都有自己的成就系统,奖励玩家/用户完成某些任务。stackoverflow 上的徽章系统是完全一样的。
虽然有一些问题我无法找到好的解决方案。
成就系统必须时刻注意某些事件,想想一个提供 20 到 30 个成就的游戏,例如:战斗。服务器必须一直检查这些事件(例如:玩家在这场战斗中避免了对手的x次攻击或玩家走了x英里)。
- 服务器如何在不减慢甚至崩溃的情况下处理如此大量的操作?
成就系统通常需要仅在游戏核心引擎中使用的数据,如果没有那些令人讨厌的成就,无论如何都不需要从那里拿出来(想想例如:玩家在每场战斗中跳跃的频率,你不需要'不想将所有这些信息存储在数据库中。)。我的意思是,在某些情况下,添加成就的唯一方法是将检查其当前状态的代码添加到游戏核心,这通常是一个非常糟糕的主意。
成就系统如何与拥有后来不必要信息的游戏核心交互?(见上面的例子)
它们是如何与游戏核心分离的?
我的例子可能看起来“无害”,但想想魔兽世界目前可获得的 1000 多项成就以及同时在线的许多玩家。
iphone - iPhone OS:实现自己的成就,我该怎么做?
我正在开发一款游戏,其中真正唯一的游戏部分是(至少现在)用户可以在整个游戏中做各种事情时解锁成就。我有一个数据库,可以跟踪某些用户操作并记录用户执行某项操作的次数,但我无法找出构建应用程序的最佳方法,以便我必须做最少的工作。时机有点糟糕,因为gamecenter还没有准备好,而且openfeint似乎正在改变齿轮,但也许我错了。如果不是太荒谬,我宁愿在“内部”做所有事情。寻找建议。
我最难弄清楚的部分之一是如何管理所有成就的状态。NSuserdefaults 与核心数据与平面数据文件。
如果核心数据字段达到一定数量,是否还会发送通知?
谢谢,
缺口
iphone - iPhone OS:有没有办法在两个 ManagedObject 实体之间设置 KVO?
我有 2 个要与 KVO 链接的实体,一个是单个 statTracker 类,用于跟踪不同的统计数据,另一个是一个包含成就信息的成就类。理想情况下,我想要做的是通过让成就类的实例观察 statTracker 类上的值来设置 KVO,并设置一个阈值,在该阈值处应该“触发”成就实例(在这种情况下触发意味着显示 UIAlertView 并更改成就类的属性。)
如果可能的话,我还想在成就类的实例化上设置这些关系
有点像这样:
那里的任何人都知道我将如何设置它?有没有办法通过我没有看到的关系来做到这一点?
谢谢,
缺口
ruby-on-rails - RoR 成就系统 - 多态关联和设计问题
我正在尝试在 Ruby on Rails 中设计一个成就系统,但我的设计/代码遇到了障碍。
尝试使用多态关联:
迁移:
然后,当我尝试以下一次性单元测试时,它失败了,因为它说成就为空。
还有我的固定装置:results.yml...
weight_achievements.ym...
即使,我无法让它运行,也许从宏观的角度来看,这是一个糟糕的设计问题。我试图做的是有一个包含所有成就及其基本信息(名称和描述)的表。使用该表和多态关联,我想链接到包含完成该成就的标准的其他表,例如,WeightAchievement 表将具有所需的权重和锻炼 ID。然后,用户的进度将存储在 UserProgress 模型中,在该模型中链接到实际的成就(而不是 WeightAchievement)。
我需要单独表格中的标准的原因是因为标准在不同类型的成就之间会有很大差异,并且会在之后动态添加,这就是为什么我没有为每个成就创建单独的模型的原因。
这甚至有意义吗?我是否应该将成就表与特定类型的成就(如 WeightAchievement)合并(所以该表是名称、描述、weight_required、exact_id),然后当用户查询成就时,我只需在我的代码中搜索所有成就?(例如 WeightAchievement、EnduranceAchievement、RepAchievement 等)