0

我决定做一个 windows phone 7 ps3 trophy calc 应用程序。要点如下

  • 青铜奖杯价值:15 分
  • 银奖杯价值:30 分
  • 金奖杯价值:90 分
  • 白金奖杯价值:180 积分

每个级别的细分是

  • 2 级为 200 点
  • 3 级为 600 点
  • 4 级为 1200 点
  • 5 级为 2400 点
  • 6 级为 4000 点

之后每级上升 2000,直到 12 级,达到 16000 点。在 13 级,它达到 24000,并且随着每个后续级别增加 8000。

我能够确定直到 12 级的水平...如果点 > = 16000 我在确定水平时遇到问题...你能解释一下确定点 > 16000 水平的逻辑吗?12级之后的等级上限是恒定的8000....

4

2 回答 2

0

这是一个非常嵌套的循环,因此如果点数仅够第 2 级,它会检查第 3 级,当它认为它为假时,它会逃避整个事情。

int const level = 1;
int const level2 = 200;
int const level6 = 4000;
int const level12 = 16000;

if (points >= level2)
    level = 2;
    if (points >= 3*level2)
        level = 3;
        if (points >= 6*level2)
           level = 4;
           if (points >= 12*level2)
                level = 5;
                if ((points >= level6) && (points < level12))
                    // because you're dividing integer by integer,
                    // 39999/2000 should = 1, correct?
                    level = ((points - level6) / 2000) + 6;
                else if (points >= level12)
                    level = ((points - level12 / 8000) + 12;
于 2012-08-10T14:38:41.543 回答
0

如果我理解正确,它将类似于

int levelCap = (8000 * (level % 12)) + 16000;

请注意,此逻辑仅适用于 12 级或以上

于 2012-08-09T17:41:26.840 回答