计算"记忆游戏"根据尝试次数,花费的时间和留下的牌数得分

时间:2015-01-22 10:44:25

标签: javascript jquery html5 algorithm calculus

我正在用javascript开发内存游戏(基于本教程:http://www.developphp.com/view.php?tid=1393),现在我需要根据这些条件计算得分: - 游戏由4x4卡片组成(这意味着有16张卡片)因此,至少需要8次尝试(每2张卡片翻转计数作为尝试) - 游戏的倒计时器为45秒

因此,简而言之,最好的最终得分将包括: - 8次尝试,大约10秒的时间,剩下0张牌找到。 对于每次进一步的尝试,经过的时间或/和卡片,分数将降低

我怎样才能完成这样的事情?

下面是我到目前为止编写的代码:

nrTries =8;
time = 35;
tilesLeft = 0;

function calcScore(){
  var triesBonus = (nrTries * 700) / 8;
  var timeBonus = ((45 - time) == 0) ? 10 : (45 - time);
  //timeBonus = (timeBonus*500) / 10;
  console.log((triesBonus+'|'+timeBonus));
    //score += score - ((tilesLeft / 2)*6);
    //return score;
}

//console.log(calcScore());
calcScore();

提前致谢!

1 个答案:

答案 0 :(得分:1)

让我们说一个完美的游戏包括10秒钟内的8次尝试,没有剩余的牌,并且完美的得分值为1000点。然后你可以这样做:

function calcScore(){
    var tilesbonus = (16 - tilesleft) * 20; // 20 points for each successful tile=320 pts
    var timebonus = (45 - time) * 8;  // 8 points for each second = 280 pts
    var triesbonus = (48 - nrTries) * 10;  // (deduct) 10 points for each try = 400 pts
    if (tilesbonus <0) { tilesbonus = 0; }
    if (timebonus <0) { timebonus = 0; }
    if (triesbonus <0) { triesbonus = 0; }
    return tilesbonus + timebonus + triesbonus;
}

这些数字只是一个建议,您可以随意使用它们来改变特定因素的得分。