まず、乱数で先攻を決め、自分のターンなら、kキーを押すと敵(コンピュータ)にダメージを与える
敵か、自分のHPが0になるまでこの処理を繰り返すというものをつくりたいのですが
これで実行すると、実行結果表示欄には何も表示されません。
もし理由がわかる方は教えて頂けないでしょうか?また、プログラミングの構築方法のアドバイスなども下さい。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
struct player{
int hp = 100;
int sp = 100;
int mahou = rand() % 50;
};
struct enemy{
int e_hp = 200;
int e_sp = 200;
int bullet = rand() % 40;
};
//先攻後攻を決める
void koujun( int sk, int p_senkou, int e_senkou ){
if(sk == 0){
cout << "あなたのターンです。\n";
p_senkou = true;
}
if(sk == 1){
cout << "敵のターンです。 \n";
e_senkou = true;
}
}
//攻防処理
void kougeki( int p_senkou, int e_senkou, int hp, int e_hp, int k, int bullet, int sp, int mahou ){
if(p_senkou == true){
cout << "コマンドを選んでください! \n";
cin >> k;
if( cin >> k ){
e_hp-=mahou;
sp-=mahou;
}
}
if(e_senkou == true){
hp-=bullet;
sp-=bullet;
e_senkou = false;
}
}
int main(int argc, const char * argv[]){
srand( time (NULL));
player pl;
enemy en;
char k,b;
int sk = rand() % 2;
bool p_senkou;
bool e_senkou;
while( pl.hp < 0 || en.e_hp < 0 ){
koujun(sk, p_senkou, e_senkou);
kougeki(p_senkou, e_senkou, pl.hp, en.e_hp, k, en.bullet, pl.sp, pl.mahou );
break;
}
return 0;
}