キャラクターのパラメータの表示
#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; }