キャラクターのパラメータの表示

#include <iostream>
#include <string>
 
 
using std::string;
using std::cin;
using std::cout;
using std::endl;
 
 
//ドラ〇エのキャラクターを考える
//name  名前:キャラクターの名前
//job   職業番号 0:戦士 1:魔法使い 2:僧侶 3:盗賊
// HP  生命力:これが尽きると死す
// MP  魔法力:これが尽きると魔法が使えない
//STR  強さ:力の強さ→攻撃力に影響
//ATK  攻撃力:攻撃能力の高さ
//DEF  防御力:防御能力の高さ
//MGK   魔法能力:魔法を操る能力の高さ 
//ING   かしこさ:インテリジェンスの高さ
//LUK  運:運の強さ
 
//僕のヒーローのパラメータ
struct mychar {
	string name;//名前
	int job;//職業番号
	int hp;
	int mp;
	int str;
	float atk;
	float def;
	float mgk;
	int ing;
	int luk;
};
 
string jobs[] = { "戦士","魔法使い","僧侶", "盗賊" };
//jobs[0] 戦士, jobs[1] 魔法使い。。。
void setCharacterStatus(mychar* _mc,
	string _name,
	int _job,
	int _hp,
	int _mp,
	int _str,
	float _atk,
	float _def,
	float _mgk,
	int _ing,
	int _luk)
{
	//-> アロー演算子:アドレスで渡された構造体のメンバ変数を参照する
	_mc->name = _name;
	_mc->job = _job;
	_mc->hp = _hp;
	_mc->mp = _mp;
	_mc->str = _str;
	_mc->atk = _atk;
	_mc->def = _def;
	_mc->mgk = _mgk;
	_mc->ing = _ing;
	_mc->luk = _luk;
 
}
//素敵なフォーマットでキャラのパラメータを表示する関数
//引数で、キャラクターを表す構造体を渡す(ポインタでアドレス渡し)
void printCharacterStatus(struct mychar *_mychar)
{
	cout << "なまえ:" << _mychar->name << endl;
	cout << "  職業:" << jobs[_mychar->job] << endl;
	cout << "    HP:" << _mychar->hp << endl;
	cout << "    MP:" << _mychar->mp << endl;
	cout << "   STR:" << _mychar->str << endl;
	cout << "   ATK:" << _mychar->atk << endl;
	cout << "   DEF:" << _mychar->def << endl;
	cout << "   MGK:" << _mychar->mgk << endl;
	cout << "   ING:" << _mychar->ing << endl;
	cout << "   LUK:" << _mychar->luk << endl;
}
 
int main()
{
	mychar hero; //作っただけでは初期化されないのでメンバー変数は何も入ってない
	setCharacterStatus(&hero, "オルテガ", 0, 100, 10, 50, 100.0, 80.0, 10.0, 5, 20);
	printCharacterStatus(&hero);
	//自分の好みのキャラクターとパラメータ設定をして、キャラを作って、表示してみる
    //45分まで!
 
	return 0;
}

キャラクターのパラメータの簡易表示→バトルをしてみたい

#include <iostream>
#include <string>
 
 
using std::string;
using std::cin;
using std::cout;
using std::endl;
 
 
//ドラ〇エのキャラクターを考える
//name  名前:キャラクターの名前
//job   職業番号 0:戦士 1:魔法使い 2:僧侶 3:盗賊
// HP  生命力:これが尽きると死す
// MP  魔法力:これが尽きると魔法が使えない
//STR  強さ:力の強さ→攻撃力に影響
//ATK  攻撃力:攻撃能力の高さ
//DEF  防御力:防御能力の高さ
//MGK   魔法能力:魔法を操る能力の高さ 
//ING   かしこさ:インテリジェンスの高さ
//LUK  運:運の強さ
 
//僕のヒーローのパラメータ
struct mychar {
	string name;//名前
	int job;//職業番号
	int hp;
	int mp;
	int str;
	float atk;
	float def;
	float mgk;
	int ing;
	int luk;
};
 
string jobs[] = { "戦士","魔法使い","僧侶", "盗賊" };
//jobs[0] 戦士, jobs[1] 魔法使い。。。
void setCharacterStatus(mychar* _mc,
	string _name,
	int _job,
	int _hp,
	int _mp,
	int _str,
	float _atk,
	float _def,
	float _mgk,
	int _ing,
	int _luk)
{
	//-> アロー演算子:アドレスで渡された構造体のメンバ変数を参照する
	_mc->name = _name;
	_mc->job = _job;
	_mc->hp = _hp;
	_mc->mp = _mp;
	_mc->str = _str;
	_mc->atk = _atk;
	_mc->def = _def;
	_mc->mgk = _mgk;
	_mc->ing = _ing;
	_mc->luk = _luk;
 
}
//素敵なフォーマットでキャラのパラメータを表示する関数
//引数で、キャラクターを表す構造体を渡す(ポインタでアドレス渡し)
void printCharacterStatus(struct mychar *_mychar)
{
	cout << "==================" << endl;
	cout << " 名前:" << _mychar->name << endl;
	cout << "  職業:" << jobs[_mychar->job] << endl;
	cout << "    HP:" << _mychar->hp << endl;
	cout << "    MP:" << _mychar->mp << endl;
	cout << "   STR:" << _mychar->str << endl;
	cout << "   ATK:" << _mychar->atk << endl;
	cout << "   DEF:" << _mychar->def << endl;
	cout << "   MGK:" << _mychar->mgk << endl;
	cout << "   ING:" << _mychar->ing << endl;
	cout << "   LUK:" << _mychar->luk << endl;
	cout << "==================" << endl;
}
//素敵なフォーマットでキャラのパラメータを表示する関数
//引数で、キャラクターを表す構造体を渡す(ポインタでアドレス渡し)
void printCharSummary(struct mychar* _mychar)
{
	cout << "------------------" << endl;
	cout << " 名前:" << _mychar->name << endl;
	cout << "    HP:" << _mychar->hp << endl;
	cout << "    MP:" << _mychar->mp << endl;
	cout << "------------------" << endl;
}
 
 
 
int main()
{
	mychar hero; //作っただけでは初期化されないのでメンバー変数は何も入ってない
	setCharacterStatus(&hero, "オルテガ",  0, 100, 10, 50, 100.0, 80.0, 10.0,  5,  20);
	//                 構造体,      名前, job, hp, mp,str,   atk,  def,  mgk,ing, luk
	//printCharacterStatus(&hero);
	printCharSummary(&hero);
	mychar mob;
	setCharacterStatus(  &mob,  "モブ夫",   3, 50, 80, 10,  20.0, 15.0,  5.0,  10, 10);
	//                 構造体,      名前, job, hp, mp,str,   atk,  def,  mgk, ing, luk
	printCharacterStatus(&mob);
	//printCharSummary(&mob);
 
	//自分の好みのキャラクターとパラメータ設定をして、キャラを作って、表示してみる
    //45分まで!
	//攻撃のルーチンを考える!
	// 攻撃の時に与えられるダメージ int(atk + str * 0.25) - 相手のdef*0.25
	//モブ夫→オルテガ
	//
	// hero.hp = hero.hp -  int(モブ夫.atk + モブ夫.str * 0.25) - int(オルテガ.def*0.25) (マイナスになったらダメージ0)
	// 
	// mychar構造体を2つ引数にとって、第1引数のほうが、第2引数の方に1回だけ攻撃する関数をつくる!
	return 0;
}