
Problema de herencia en C++
Publicado por anonymous (6 intervenciones) el 17/06/2022 01:50:46
Este ejercicio consiste en el combate de dos personajes: Mago y Orco.
Cada uno debe comer alimentos ingresados por el usuario.
Los alimentos tienen efectos opuestos para el Mago y el Orco:
Mago:
Orco:
La definición de las clases es:

El programa debe iniciar recibiendo el nombre y puntos de ataque de los personajes. Despues debe recibir repetitivamente los alimentos "hongo" y "cake" hasta que se ingrese la palabra "fin".
Input
Output
He desarrollado un avance pero aun no he terminado y no se como retornar el output esperado. Espero su respuesta.
Cada uno debe comer alimentos ingresados por el usuario.
Los alimentos tienen efectos opuestos para el Mago y el Orco:
Mago:
1
2
Hongos: -10 puntos de ataque
HoneyCake: +5 puntos de ataque
Orco:
1
2
Hongos: +10 puntos de ataque
HoneyCake: -5 puntos de ataque
La definición de las clases es:

El programa debe iniciar recibiendo el nombre y puntos de ataque de los personajes. Despues debe recibir repetitivamente los alimentos "hongo" y "cake" hasta que se ingrese la palabra "fin".
Input
1
2
3
4
5
6
7
8
9
10
11
Gandalf
5
Azog
2
hongo
cake
cake
fin
hongo
cake
fin
Output
1
2
3
4
5
6
7
8
9
10
11
Los puntos de ataque del mago Gandalf es: 5
Los puntos de ataque del orco Azog es: 2
Gandalf esta comiendo Hongo y sus puntos de ataque son: -5
Gandalf esta comiendo HoneyCake y sus puntos de ataque son: 0
Gandalf esta comiendo HoneyCake y sus puntos de ataque son: 5
Azog esta comiendo Hongo y sus puntos de ataque son: 12
Azog esta comiendo HoneyCake y sus puntos de ataque son: 7
*** Empieza el combate ***
Los puntos de ataque del mago Gandalf es 5
El puntos de ataque del orco Azog es: 7
El orco Azog gano el combate!!
He desarrollado un avance pero aun no he terminado y no se como retornar el output esperado. Espero su respuesta.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <string>
using namespace std;
class CAlimento {
private:
string nombre;
int puntosAtaque;
public:
CAlimento(string _nombre);
CAlimento(string _nombre, int _puntosAtaque);
virtual ~CAlimento();
string getNombre();
int getPuntosAtaque();};
CAlimento::CAlimento(string _nombre){
this->nombre = _nombre;
this->puntosAtaque = -1;}
CAlimento::CAlimento(string _nombre, int _puntosAtaque){
this->nombre = _nombre;
this->puntosAtaque = _puntosAtaque;}
CAlimento::~CAlimento(){}
string CAlimento::getNombre(){
return this->nombre;}
int CAlimento::getPuntosAtaque(){
return this->puntosAtaque;}
// ---------------------------------------------
class CHoneyCake:public CAlimento {
private:
public:
CHoneyCake(string nombre, int _cantidad);
virtual ~CHoneyCake();
};
CHoneyCake::CHoneyCake(string nombre, int _cantidad) : CAlimento(nombre, 5){}
CHoneyCake::~CHoneyCake(){}
// ---------------------------------------------
class CHongo:public CAlimento {
private:
public:
CHongo(string nombre, int _cantidad);
virtual ~CHongo();
};
CHongo::CHongo(string nombre, int _cantidad) : CAlimento(nombre, -10){}
CHongo::~CHongo(){}
// ---------------------------------------------
class CPersonaje{
string nombre;
int puntosAtaque;
public:
CPersonaje(){nombre="", puntosAtaque=0;};
CPersonaje(string _nombre, int _puntosAtaque):nombre(_nombre), puntosAtaque(_puntosAtaque){}
string getNombre(){return nombre;};
int getPuntosAtaque(){return puntosAtaque;};
virtual void come(CAlimento* pAlimento);
};
// ---------------------------------------------
class CMago {
private:
string nombreMago;
int puntosAtaque;
public:
CMago(string _nombreMago, int _puntosAtaque);
virtual ~CMago();
virtual void come(CAlimento* pAlimento);
};
class COrco {
private:
string nombreOrco;
int puntosAtaque;
public:
COrco(string _nombreOrco, int _puntosAtaque);
virtual ~COrco();
virtual void come(CAlimento* pAlimento);
};
int main(){
int p1, p2;
string mago, orco;
string a1, a2;
cout<<"";
cin>>mago;
cout<<"";
cin>>p1;
cout<<"";
cin>>orco;
cout<<"";
cin>>p2;
cout<<"";
cin>>a1;
while(a1!="fin"){
cout<<"";
cin>>a1;
}
cout<<"";
cin>>a2;
while(a2!="fin"){
cout<<"";
cin>>a2;
}
}
Valora esta pregunta


0