RPG角色生成器(C )

2021-07-31 12:42:58 字數 2560 閱讀 5358

角色生成器需要記錄玩家輸入的名字,選擇的性別,種族,職業,並且根據不同職業所隨機生產的屬性也不相同。

1.設計思路

首先建乙個基類base用來儲存和實現,儲存玩家輸入的姓名和性別的選擇,同時需要宣告兩個友緣類output,file可以訪問該類中的資料。

在基類base基礎上建乙個派生類race,用來記錄玩家選擇的種族,和職業,同時規定什麼種族可以選擇什麼職業,人類可以選擇全部職業;精靈不能選擇狂戰士,聖騎士;獸人不能選擇聖騎士,刺客;矮人不能選擇刺客,獵手;元素只能選擇祭司,同時需要宣告兩個友緣類output,file可以訪問該類中的資料。

在派送類race基礎上派生乙個attribute類用來記錄角色隨機生產的屬性,首選規定各個職業每個屬性的最小值,在這個最小值的基礎上,隨機生成差距在3左右的屬性,再根據隨機生產的屬性計算出該角色的血量值,法力值,同時需要宣告兩個友緣類output,file可以訪問該類中的資料。

建立乙個output類可以訪問base,race,attribute三個類中的資料,輸出三個類中記錄的資料。

建立乙個file類可以訪問base,race,attribute三個類中的資料,並且將三個類中的資料進行文字輸出儲存。

2.類關係圖

3.面對物件原則應用

該程式中用到了,開閉原則,單一職責。

//西安科技大學電腦科學與技術 軟體工程

//軟工1503班

#include "iostream"

#include #include "string"

#include "ctime"

#include "fstream"

using namespace std;

int occupation_choice; //玩家所選擇的職業的序號

class base //基礎類,儲存角色的姓名,性別;

void base::getbase()//輸入角色名和性別

}while (1)

cin >> occupation_choice;

if (race_choice == 1 && (occupation_choice >= 1 && occupation_choice <= 6)) break;

else if (race_choice == 2 && (occupation_choice >=3 && occupation_choice <=6)) break;

else if (race_choice == 3 && (occupation_choice == 1 || occupation_choice == 4 || occupation_choice == 5)) break;

else if (race_choice == 4 && (occupation_choice == 1 || occupation_choice == 2 || occupation_choice == 5)) break;

else if (race_choice == 5 && (occupation_choice >=5 && occupation_choice <=6)) break;

else cout << "輸入錯誤,請重新輸入" << endl;

}if (occupation_choice == 1) occupation = "狂戰士";

if (occupation_choice == 2) occupation = "聖騎士";

if (occupation_choice == 3) occupation = "刺客";

if (occupation_choice == 4) occupation = "獵手";

if (occupation_choice == 5) occupation = "祭司";

if (occupation_choice == 6) occupation = "巫師";}

class attribute :public race //派生類,記錄角色的屬性;

// 隨機生成每項屬性的值,abcd為該屬性的最小值,e為第五個屬性的最大值

void attribute::getrandom(int a, int b, int c, int d, int e)

while (((100 - e) < sum) && (sum < 100));

wisdom = 100 - sum;

hp = physical * 20;

mp = (wisdom + intelligence) * 10;

} //根據選擇的職業,向getramdom傳各職業最小值

void attribute::getattribute()

class output //輸出角色屬性;

void output::show(base &t1, race &t2, attribute &t3)

while (player_choice);

keep.file(player, player_race, player_att);

return 0;

}

RPG角色生成器

rpg角色生成器 幾乎所有的rpg遊戲 一種源自 龍與地下城 的遊戲型別 在進入遊戲時都會讓使用者自己來建立自己喜歡的角色。本次上機要求編寫乙個簡化的建立遊戲角色的程式。本題目要求的遊戲角色應有以下屬性 名字 性別 種族 職業 力量 敏捷 體力 智力 智慧型 生命值和魔法值。名字 不超過50個字元。...

RPG角色生成器

本題目要求的遊戲角色應有以下屬性 名字 性別 種族 職業 力量 敏捷 體力 智力 智慧型 生命值和魔法值。名字 不超過50個字元。性別 可以選擇男性和女性。種族 一共可選五個種族,人類 精靈 獸人 矮人和元素。職業 可選六種職業,狂戰士 聖騎士 刺客 獵手 祭司和巫師。其餘屬性均為整數。本題目要求首...

RPG角色生成器

include include include include char p 2 50 char prace 5 50 char poccupation 6 50 輸入性別種族職業 int input int input race int input occupation int 輸出屬性 void...