前提・実現したいこと
C++初心者です.
下記のソースコードで2名のケンカを表現しました.
しかし,実行結果に示した通り,2人の体力(hp)が更新されません.
何故なのでしょうか?
どなたかご教授いただければ幸いです.
該当のソースコード
cpp
1#include<iostream> 2#include<thread> 3using namespace std; 4 5class human{ 6 private: 7 string name; 8 public: 9 int hp; 10 int atk; 11 human(string s, int hp, int atk){ 12 this->name = s; 13 this->hp = hp; 14 this->atk = atk; 15 } 16 void kogeki(human h){ 17 if(h.hp > this->atk){ 18 h.hp = h.hp - this->atk; 19 cout << h.name << " lost " << this->atk << "points." << endl; 20 cout << "Now " << h.hp << "points." << endl; 21 cout << endl; 22 }else{ 23 h.hp = 0; 24 cout << h.name << " is dead." << endl; 25 cout << endl; 26 } 27 } 28}; 29 30int main(){ 31 human a = human("A", 100, 50); 32 human b = human("B", 1000, 5); 33 while(1){ 34 a.kogeki(b); 35 b.kogeki(a); 36 if(a.hp == 0 || b.hp == 0){ 37 break; 38 } 39 this_thread::sleep_for(chrono::seconds(1)); 40 } 41}
出力
B lost 50points. Now 950points. A lost 5points. Now 95points. B lost 50points. Now 950points. A lost 5points. Now 95points. B lost 50points. Now 950points. A lost 5points. Now 95points. ^C
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/12 12:55