Noob在编码方面存在问题(文本战斗系统)

时间:2013-11-08 13:32:50

标签: c++

我最近开始尝试用C ++编程。我正在为我的文字冒险创建一个战斗系统,但我遇到了一些问题。例如,当你或对手死亡时,我希望战斗结束。目前它只有两个都死了才结束。另一个是如果你的防守大于攻击,你可以通过攻击得到治愈。你能帮助这里的菜鸟吗? :D这是代码:

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <iso646.h>
int main()
{
int att, def, hp, eatt, edef, ehp, pinput, einput;
cout<<"Your damgae"<<endl;
cin>>att;
cout<<"Your defence"<<endl;
cin>>def;
cout<<"Your hp"<<endl;
cin>>hp;
cout<<"Enemy attack"<<endl;
cin>>eatt;
cout<<"Enemy defence"<<endl;
cin>>edef;
cout<<"Enemy hp"<<endl;
cin>>ehp;
do {
    srand (time(NULL));
    einput=rand()%2+1;
    cout<<"1) attack 2) defend"<<endl;
    cin>>pinput;
    if (pinput==1) {
                   if (einput==1) {
                                  cout<<"enemy defends"<<endl;
                                  att=att-edef;
                                  ehp=ehp-att;
                                  cout<<"Enemy hp now is:"<<ehp<<endl;
                                  att=att+edef;
                                  }
                   if (einput==2) {
                                  cout<<"enemy doesn't defend but attacks you too"<<endl;
                                  hp=hp-eatt;
                                  ehp=ehp-att;
                                  cout<<"Your hp is:"<<hp<<endl;
                                  cout<<"Enemy hp now is:"<<ehp<<endl;
                                  }
                   }
    if (pinput==2) {
                   if (einput==1) cout<<"enemy stands in defence aswell"<<endl;
                   if (einput==2) {
                                  cout<<"enemy attacks you"<<endl;
                                  eatt=eatt-def;
                                  hp=hp-eatt;
                                  eatt=eatt+def;
                                  cout<<"Your hp is:"<<hp<<endl;
                                  }
                                  }


                   }
                   while (ehp>0||hp>0);
                   if (ehp<1) cout<<"You win"<<endl;
                   if (hp<1) cout<<"You die"<<endl;


 system("PAUSE");
return 0;
}

提前感谢所有的帮助,并为我所犯的任何愚蠢错误感到抱歉。

1 个答案:

答案 0 :(得分:1)

第一个问题很容易解决,使用&&而不是||,你希望在你的生命值为&gt;时继续使用while (ehp>0 && hp>0); 0 敌人的点数是&gt; 0

{{1}}