我正在制作一款基于知识的游戏,用户参与其中,如果他们获胜并获得符合标准的排名,他们将获得宝石,硬币等。
示例-游戏中500,并且预定义的奖品分配就像…
Rank 1 gets 50000 coins
Rank 2 gets 40000 coins
Rank 3 to 50 gets 20000 coins
Rank 51 to 200 gets 5000 coins
Rank 201 to 500 gets 1000coins
如果用户玩游戏,假设他得到81的排名。那么我该如何检查分配并奖励他5000个硬币呢?
我可以使用Hashmap来创建某种键值对吗?如下图所示……
HashMap<Integer, Integer> distribution = new HashMap<>();
distribution.add(1,50000);
.
.
.
distribution.add(500,1000);
任何建议都会促进我的工作。
如果你想使用HashMaps,你可以做一些循环。
HashMap<Integer, Integer> distribution = new HashMap<>();
//first and second place
distribution.add(1,50000);
distribution.add(2,40000);
//3rd through 50th place
for(int i = 3; i < 51; i++)
distribution.add(i,20000);
//51 through 200th place
for(int i = 51; i < 201; i++)
distribution.add(i, 5000);
//201 through 500th place
for (int i = 201; i < 501; i++)
distribution.add(i, 1000);
和tada你完成了!然而,除非你想让它每次都运行,否则我会让distribution成为一个静态变量,这样你只需要运行一次,之后的每次运行它都会保持不变。
我建议您创建一个范围包装器类并查找范围中的键值;这可能会有所帮助:https://stackoverflow.com/a/1314708/10052779