在用于Windows桌面的express 2013中的visual c ++中,我制作了一个ASCII roguelike,但是下面的代码搞砸了所有内容。在游戏中,当你失败时,你获得的经验会被添加到玩家中,并且如果足够的话就升级。这是code.it在我创建的玩家类中。 它打印了Leveled up to ..没有时间我按任何键就像while循环永远不会结束。然后再按一下键出现然后我按下一把键放平了它似乎继续前进
void Player::addExperience(int experience){_experience += experience;
while(_experience >50) {
_experience -= 50;
_level++;
printf("Leveled up%s",_level);
_getch();
}
}
当我将代码更改为 - >
时void Player::addExperience(int experience) {_experience += experience;while(_experience >50) { _experience = 0;_level++/printf("Leveled up%s",_level);
_getch();
}
}
它只打印了一次。所以我知道问题出在这个代码中但是什么。不知道。
答案 0 :(得分:0)
我几次重读您的说明以了解您的问题。我知道我理解正确。
我们不知道体验的价值。除非它在后台继续进行操作,否则循环应该基于经验的值运行无限次或零次。
每次将 _experience 减少50时,代码的第一个片段会逐级递增。但是,while循环会检查体验而不是 _experience ,所以循环永不中断。