循环运行时错误 我用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秒,但是你花了时间来实际编写代码,所以投票给你。