1

在2013年的Windows桌面视觉C++中,我做了一个ASCII roguelike,但下面的代码搞乱了这一切up.in在游戏中,当你defeat.a敌人,你会得到经验,添加到玩家和水平如果够了。这里是code.it是在我创建的球员类。 它印拉平到..没有的时候,我喜欢按while循环永远不会结束的任意键.presses然后水平的关键再次出现在我印刷机出现拉平的关键是不断持续Visual C++ infinite 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

我重新阅读您的描述几次以了解您的问题。我hopt我正确地理解它。我们不知道的经验值。除非它在后台保持链接,否则根据经验值的值,循环应该运行无限次或零次。

代码的第一个片段由1每次降低50点。_experience时间经验,而不是_experience递增水平。但,while循环检查,所以循环永远不会打破。