我正在创建一个javascript战舰游戏。游戏运行正常。我创造了游戏,以便用户最多有25个未命中 - 如果他们达到25,那么游戏就结束了。
我现在想要创建一个功能,在游戏结束时,该功能会检查未命中数,并提醒用户他们的分数和等级名称。
我用((25 /未命中)* 100)计算得分。
所以这些可能是未命中的分数。
未命中|得分了 (1 | 2500) (2 | 1250) (3 | 833) (4 | 625) (5 | 500) (6 | 417) (7 | 357) (8 | 313) (9 | 278) (10 | 250) (11 | 227) (12 | 208) (13 | 192) (14 | 179) (15 | 167) (16 | 156) (17 | 147) (18 | 139) (19 | 132) (20 | 125) (21 | 119) (22 | 114) (23 | 109) (24 | 104) (25 | 0)
我拥有的排名 1)舰队的海军上将 2)海军上将 3)副海军上将 4)海军少将 5)准将 6)被杀死
这些是我如何使用等级名称分配未命中。
未命中|排名 (0-12 |舰队海军上将) (13-15 |海军上将) (16-19 |副海军上将) (20-24 | Commodore) (25 |杀死行动)
我创建了一个名为'misses'的变量。每次你错过,显然变量加1。
所以,让我们说你刚刚玩了14次失误并完成了比赛。我希望函数检查变量'misses',然后为其分配相应的分数和等级。
我估计我可能会使用数组来获得分数的失误。有什么想法确切的代码是什么?请帮忙!
答案 0 :(得分:0)
最简单的解决方案:
function getRank(misses) {
if (misses < 13)
return 'Admiral of the Fleet';
if (misses < 16)
return 'Admiral';
if (misses < 20)
return 'Vice-Admiral';
if (misses < 25)
return 'Commodore';
return 'Killed In Action';
}
您也可以执行类似这样的操作,这更复杂并且使用更多内存,但会导致更快getRank()
- 并且如果您没有超过25个未命中,则内存使用量将不会是一个问题。
var getRank = (function () {
var rank, i = 0, j,
map = {},
ranks = [
[13, 'Admiral of the Fleet'],
[16, 'Admiral'],
[20, 'Vice-Admiral'],
[25, 'Commodore'],
[26, 'Killed In Action']
];
for (j = 0; rank = ranks[j]; j++)
for (; i < rank[0]; i++)
map[i] = rank[1];
return function (misses) {
return map[misses];
};
})();