Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <array>
  4. using namespace std;
  5.  
  6. struct Arme
  7. {
  8. string type;
  9. int force, portee;
  10. Arme();
  11. };
  12.  
  13. Arme::Arme()
  14. {
  15. string s[8]{ "fusilmit", "revolver","arc","poignard","MMA","muscles","rien" };
  16. type = s[rand() % 8];
  17. force = rand() % 100;
  18. portee = rand() % 100;
  19. }
  20.  
  21. //classe abstraite
  22. class SuperHeros
  23. {
  24. public :
  25. string nom;
  26. vector<Arme> armes;
  27. enum emotion { joie, confiance, peur, surprise, tristesse, degout, colere, anticipation, max_emotion };
  28. array<int, max_emotion>caracters;
  29.  
  30. SuperHeros();
  31. SuperHeros(string nom);
  32.  
  33. void Init(string nom);
  34. void Affiche();
  35.  
  36. // trois fonctions virtuelles pures = interface
  37. virtual void Combattre() = 0;
  38. virtual void Fuir() = 0;
  39. virtual void Subir() = 0;
  40.  
  41. };
  42.  
  43. SuperHeros::SuperHeros()
  44. {
  45. Init("Incognito");
  46. }
  47.  
  48. SuperHeros::SuperHeros(string nom)
  49. {
  50. Init(nom);
  51. }
  52.  
  53. void SuperHeros::Init(string nom)
  54. {
  55. this->nom = nom;
  56. int nbarm = rand() % 3;
  57. for (int i = 0; i < nbarm; i++)
  58. {
  59. Arme a;
  60. armes.push_back(a);
  61. }
  62. for (int i = 0; i < caracters.size(); i++)
  63. caracters[i] = rand() % 100;
  64. }
  65.  
  66. void SuperHeros::Affiche()
  67. {
  68. cout << "Nom : " << nom << endl;
  69. cout << "Armes : " << endl;
  70. for (auto i = armes.begin(); i != armes.end(); i++)
  71. printf("\t type: %8s | force : %2d | portee : %2d\n", i->type.c_str(), i->force, i->portee);
  72.  
  73. cout << "Emotionnel : " << endl;
  74. for (int i = 0; i < max_emotion; i++)
  75. {
  76. cout << "\t";
  77. switch (i)
  78. {
  79. case joie: printf("%12s : ", "joie"); break;
  80. case confiance: printf("%12s : ", "confiance"); break;
  81. case peur : printf("%12s : ", "peur"); break;
  82. case surprise : printf("%12s : ", "surprise"); break;
  83. case tristesse : printf("%12s : ", "tristesse"); break;
  84. case degout : printf("%12s : ", "degout"); break;
  85. case colere : printf("%12s : ", "colere"); break;
  86. case anticipation : printf("%12s : ", "anticipation"); break;
  87. }
  88. cout << caracters[i] << endl;
  89. }
  90. cout << "-----------------------------\n";
  91. }
  92.  
  93. class CaptainAmerica : public SuperHeros
  94. {
  95. public:
  96. //possibilite d'ajouter dans propriétés
  97.  
  98. //constructeurs spécifiques
  99. CaptainAmerica() : SuperHeros(){}
  100. CaptainAmerica(string nom):SuperHeros(nom){}
  101. //redéfinitions des actions pour Captain America
  102. void Combattre();
  103. void Fuir();
  104. void Subir();
  105. };
  106.  
  107. void CaptainAmerica::Combattre()
  108. {
  109. cout << "Captain America " << nom << " combat" << endl;
  110. }
  111.  
  112. void CaptainAmerica::Fuir()
  113. {
  114. cout << "Captain America " << nom << " fuit" << endl;
  115. }
  116.  
  117. void CaptainAmerica::Subir()
  118. {
  119. cout << "Captain America " << nom << " subit" << endl;
  120. }
  121.  
  122.  
  123. class Hulk : public SuperHeros
  124. {
  125. public:
  126. //possibilite d'ajouter dans propriétés
  127.  
  128. //constructeurs spécifiques
  129. Hulk() : SuperHeros() {}
  130. Hulk(string nom) :SuperHeros(nom) {}
  131. //redéfinitions des actions pour Captain America
  132. void Combattre();
  133. void Fuir();
  134. void Subir();
  135. };
  136.  
  137. void Hulk::Combattre()
  138. {
  139. cout << "Hulk " << nom << " combat" << endl;
  140. }
  141.  
  142. void Hulk::Fuir()
  143. {
  144. cout << "Hulk " << nom << " fuit" << endl;
  145. }
  146.  
  147. void Hulk::Subir()
  148. {
  149. cout << "Hulk " << nom << " subit" << endl;
  150. }
  151.  
  152. class IronMan : public SuperHeros
  153. {
  154. public:
  155. //possibilite d'ajouter dans propriétés
  156.  
  157. //constructeurs spécifiques
  158. IronMan() : SuperHeros() {}
  159. IronMan(string nom) :SuperHeros(nom) {}
  160. //redéfinitions des actions pour Captain America
  161. void Combattre();
  162. void Fuir();
  163. void Subir();
  164. };
  165.  
  166. void IronMan::Combattre()
  167. {
  168. cout << "IronMan " << nom << " combat" << endl;
  169. }
  170.  
  171. void IronMan::Fuir()
  172. {
  173. cout << "IronMan " << nom << " fuit" << endl;
  174. }
  175.  
  176. void IronMan::Subir()
  177. {
  178. cout << "IronMan " << nom << " subit" << endl;
  179. }
  180.  
  181. class AgentRomanov : public SuperHeros
  182. {
  183. public:
  184. //possibilite d'ajouter dans propriétés
  185.  
  186. //constructeurs spécifiques
  187. AgentRomanov() : SuperHeros() {}
  188. AgentRomanov(string nom) :SuperHeros(nom) {}
  189. //redéfinitions des actions pour Captain America
  190. void Combattre();
  191. void Fuir();
  192. void Subir();
  193. };
  194.  
  195. void AgentRomanov::Combattre()
  196. {
  197. cout << "Agent Romanov " << nom << " combat" << endl;
  198. }
  199.  
  200. void AgentRomanov::Fuir()
  201. {
  202. cout << "Agent Romanov " << nom << " fuit" << endl;
  203. }
  204.  
  205. void AgentRomanov::Subir()
  206. {
  207. cout << "Agent Romanov " << nom << " subit" << endl;
  208. }
  209.  
  210. class BlackArrow : public SuperHeros
  211. {
  212. public:
  213. //possibilite d'ajouter dans propriétés
  214.  
  215. //constructeurs spécifiques
  216. BlackArrow() : SuperHeros() {}
  217. BlackArrow(string nom) :SuperHeros(nom) {}
  218. //redéfinitions des actions pour Captain America
  219. void Combattre();
  220. void Fuir();
  221. void Subir();
  222. };
  223.  
  224. void BlackArrow::Combattre()
  225. {
  226. cout << "Agent Romanov " << nom << " combat" << endl;
  227. }
  228.  
  229. void BlackArrow::Fuir()
  230. {
  231. cout << "Agent Romanov " << nom << " fuit" << endl;
  232. }
  233.  
  234. void BlackArrow::Subir()
  235. {
  236. cout << "Agent Romanov " << nom << " subit" << endl;
  237. }
  238.  
  239. int main()
  240. {
  241.  
  242. system("PAUSE");
  243. return 0;
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement