gpt4 book ai didi

google-app-engine - 如何以每个实体都知道其在列表中的位置的方式在 App Engine DataStore 上保留有序列表?

转载 作者:行者123 更新时间:2023-12-02 05:11:57 25 4
gpt4 key购买 nike

我根据人们获得的分数对他们进行排名。例如,我需要告诉每个参与者他们在游戏中的位置, 约翰 (1) - 170 分,玛丽 (2) - 160 分,莎拉 (3) - 110 分

所以 John 是第一个,Mary 是第二个,Sarah 是第三个。现在,如果玛丽再赢得 20 分,她将成为第一名,约翰将成为第二名。

我试图避免必须在 cron 上运行任务来列出和重新计算每个人的位置。

我的第一个尝试是维护一组单独的实体 (PersonRank),这样我就不会遇到事务问题,这个等级将具有相同的键名,所以我可以通过键 db.get() 。该实体将具有该人的计算排名,因此当一个人获得分数时,我必须检查该行中的下一个人的分数是否比我少,并与我交换位置,以确保这是真的。问题是莎拉,在这个例子中,可能已经赢得了 100 分,现在是第一名。在以前的算法中,我必须在很多实体之间“走动”,这意味着很多 DataStore 获取和放置(将每个涉及的实体更新到新位置)。

我的下一个猜测可能是某种带有 ReferenceProperties 的链表,可能使用键名来表示位置。

关于如何实现这个的任何线索?

最佳答案

比我想象的要复杂得多,但希望 Google 的一些人已经实现了这个解决方案 - http://googleappengine.blogspot.com/2009/01/google-code-jams-ranking-library.html

关于google-app-engine - 如何以每个实体都知道其在列表中的位置的方式在 App Engine DataStore 上保留有序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4951351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com