循环运行时错误 我用C++做了一个简单的游戏。大部分都很好,但每当我尝试重放游戏时,该值不会重置,并继续我上次停止的位置,这不是我希望它发生的。比如说,在我的第一次尝试中,我打败了敌人,它的生命值为零,当我重试时,值不是从100开始,而是从零开始。我真的很想解决这个问题。总之,这是我的代码(“它很长): #包括 #包括 使用名称空间std; 班级健康{ 私人: 国际卫生组织; 健康(施工健康和cpy){ 健康=cpy.health; } 公众: 健康(){ 健康=100; } 无效显示\u运行状况(){ cout

循环运行时错误 我用C++做了一个简单的游戏。大部分都很好,但每当我尝试重放游戏时,该值不会重置,并继续我上次停止的位置,这不是我希望它发生的。比如说,在我的第一次尝试中,我打败了敌人,它的生命值为零,当我重试时,值不是从100开始,而是从零开始。我真的很想解决这个问题。总之,这是我的代码(“它很长): #包括 #包括 使用名称空间std; 班级健康{ 私人: 国际卫生组织; 健康(施工健康和cpy){ 健康=cpy.health; } 公众: 健康(){ 健康=100; } 无效显示\u运行状况(){ cout,c++,class,loops,multiple-inheritance,do-while,C++,Class,Loops,Multiple Inheritance,Do While,你永远不会在游戏开始时明确重置生命值。如果你打算通过这样的循环重置生命值,游戏的第一步应该是重置英雄和敌人。只需移动你声明他们是中第一行的位置,而循环应该可以完成此操作。你永远不会解释它会在游戏开始时重置生命值。如果你想通过这样的循环重置,游戏的第一步应该是重置英雄和敌人。只需移动你声明他们是你的do中的第一行,而循环应该可以做到这一点。 Hero hero; Enemy enmy; 在do{之后,如 ... string ply_agn = "y"; //user interface do{

你永远不会在游戏开始时明确重置生命值。如果你打算通过这样的循环重置生命值,游戏的第一步应该是重置英雄和敌人。只需移动你声明他们是
中第一行的位置,而
循环应该可以完成此操作。

你永远不会解释它会在游戏开始时重置生命值。如果你想通过这样的循环重置,游戏的第一步应该是重置英雄和敌人。只需移动你声明他们是你的
do中的第一行,而
循环应该可以做到这一点。

Hero hero;
Enemy enmy;
do{
之后,如

...
string ply_agn = "y";
//user interface
do{ //entire game repeats
    //instance
    Hero hero;
    Enemy enmy;
    ...

Hero hero;
Enemy enmy;
do{
之后,如

...
string ply_agn = "y";
//user interface
do{ //entire game repeats
    //instance
    Hero hero;
    Enemy enmy;
    ...

正如其他人所说,你需要将你的
英雄
敌人
对象放在你的循环中,这样它们在游戏的每个循环后都会被重新创建

程序中的另一个错误是,您无法在下一个循环中为角色指定新名称。为了避免这种情况,您需要在
getline()
函数调用之前放置一个
cin.ignore
,如下所示

cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n'); 
getline(cin, name);
    cout << "Would you like to play again: ";
    cin >> ply_agn;
} while (ply_agn == "y");

否则
ply\u agn
将始终是
y
,用户将永远无法退出游戏:-)

正如其他人所说,您需要将您的
英雄
敌人
对象放在您的循环中,以便在游戏的每个循环后重新创建它们

程序中的另一个错误是,您无法在下一个循环中为角色指定新名称。为了避免这种情况,您需要在
getline()
函数调用之前放置一个
cin.ignore
,如下所示

cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n'); 
getline(cin, name);
    cout << "Would you like to play again: ";
    cin >> ply_agn;
} while (ply_agn == "y");

否则,
ply\u agn
将始终是
y
,用户将永远无法退出游戏:-)

Ha-ninja会让你提前3秒,但是你花了时间来实际编写代码,所以投票给你。Ha-Ha-ninja会让你提前3秒,但是你花了时间来实际编写代码,所以投票给你。