どなたか作っていただけませんか?【C++】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/09/03(木) 22:48:23使っている教材は講談社「これならわかるC++」著:小林健一郎
進度的には第5章 魔王と戦う英雄を終えたところです
プログラム本体は2以降に書きます
0002デフォルトの名無しさん
2009/09/03(木) 22:49:43#include <cstdlib>
#include <ctime>
using namespace std;
class Mao;
class Hero;
class Kougeki
{
friend class Mao;
friend class Hero;
int energy; //攻撃エネルギー
int pos; //攻撃位置
};
class Mao
{
int energy; //エネルギー
int pos; //位置
public:
Mao():energy(100),pos(rand()%10){}
void Attacked(Kougeki n); //攻撃されたときの反応の関数
int GetEnergy() const{ return energy; } //エネルギーを戻す関数
};
0003デフォルトの名無しさん
2009/09/03(木) 22:50:41void Mao::Attacked(Kougeki n){
if(n.pos == pos){
cout << "ぎゃー。命中だ!" << endl;
//命中したら、攻撃エネルギーの5倍のエネルギーを失うことにする
energy -= n.energy * 5;
pos += rand()%3 - 1; //posを変える(逃げるということ)
}
else if(n.pos == pos-1 || n.pos == pos+1){
cout << "おっと危ない! だがはずれだ。" << endl;
//おしいときは、攻撃エネルギーと同じ分を失うことにした
energy -= n.energy;
}
else{
cout << "どこをねらっている? まったくはずれだ。" << endl;
}
if(energy <= 0){
energy = 0; //エネルギーがマイナスなのは見苦しいので0に直します。
cout << "ああ、やられた! 君は英雄だよ。" << endl;
}
cout << "魔王の残りエネルギー:" << energy << endl;
}
0004デフォルトの名無しさん
2009/09/03(木) 22:51:43{
int energy;
public:
Hero():energy(50){}
Kougeki Attack();
int GetEnergy() const{ return energy; }
};
Kougeki Hero::Attack(){
Kougeki k; //Kougekiオブジェクトkを生成
cout << endl;
cout << "正義の力を受けてみよ!" << endl;
cout <<"(攻撃するエネルギーを決めてください。)" << endl;
cout <<"(ただし、英雄の残りエネルギーは" << energy << "です。)" << endl;
cin >> k.energy; //kのenergyを設定
if(k.energy > energy){ k.energy = energy; } //残りエネルギー以上の攻撃はできない
energy -= k.energy;
cout << "(0から9の半角数字で、攻撃位置を指示してください。)" << endl;
cin >> k.pos; //kのposを設定
return k;
}
class Game
{
Mao m;
Hero h;
void Ending() const;
public:
Game();
void Play();
};
0005デフォルトの名無しさん
2009/09/03(木) 22:52:45cout << "これから魔王と戦います。がんばれ!" << endl;
cout << "魔王の残りエネルギー:" << m.GetEnergy() << endl;
}
void Game::Ending() const{
cout << "さあ、ゲームはオシマイです。" << endl;
}
void Game::Play(){
while(h.GetEnergy()>0){
if(m.GetEnergy()<=0){
break;
}
m.Attacked(h.Attack());
}
if(m.GetEnergy()>0){
cout << "だめだ。魔王は逃げてしまった。" << endl;
}
Ending();
}
int main()
{
srand((unsigned)time(NULL));
Game g;
g.Play();
}
このぐらいのレベルでお願いします
0006デフォルトの名無しさん
2009/09/03(木) 22:55:070007デフォルトの名無しさん
2009/09/03(木) 23:05:20言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
00081
2009/09/04(金) 12:22:300009デフォルトの名無しさん
2009/09/05(土) 01:51:160010デフォルトの名無しさん
2009/09/05(土) 08:41:53VIPで死ね
0011デフォルトの名無しさん
2009/09/05(土) 11:49:48cout << "どうして、特ダネは私の写真が転んだ時のなの?"
<< endl;
}
0012デフォルトの名無しさん
2009/09/05(土) 14:34:38頑張れアイちゃん!!
0013デフォルトの名無しさん
2009/09/09(水) 20:09:02■ このスレッドは過去ログ倉庫に格納されています