-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAnimal.cpp
105 lines (91 loc) · 3.49 KB
/
Animal.cpp
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
#include "Animal.hpp"
#include "constantes.hpp"
#include <iostream>
#include "Travieso.hpp"
#include "Sociable.hpp"
#include "Jugueton.hpp"
#include "Dormilon.hpp"
#include "Gigante.hpp"
#include "Grande.hpp"
#include "Mediano.hpp"
#include "Pequenio.hpp"
#include "Diminuto.hpp"
using namespace std;
string Animal::obtener_nombre() {
return nombre;
}
void Animal::dar_hambre() {
if(this->hambre < MAX_HAMBRE){
this->hambre += this->personalidad->perdida_de_hambre(HAMBRE);
}
}
void Animal::asignar_tamanio(string tamanio) {
if(tamanio == TAMANIOS[POSICION_GIGANTE]){
this->tamanio = new Gigante(tamanio);
} else if(tamanio == TAMANIOS[POSICION_GRANDE]){
this->tamanio = new Grande(tamanio);
} else if(tamanio == TAMANIOS[POSICION_MEDIANO]){
this->tamanio = new Mediano(tamanio);
} else if(tamanio == TAMANIOS[POSICION_PEQUENIO]){
this->tamanio = new Pequenio(tamanio);
} else if(tamanio == TAMANIOS[POSICION_DIMINUTO]){
this->tamanio = new Diminuto(tamanio);
}
}
void Animal::mostrar_informacion(){
cout << "Nombre: " << this->nombre << endl;
cout << "Edad: " << this->edad << endl;
cout << "Tamaño: " << this->tamanio->obtener_tipo_de_tamanio() << endl;
cout << "Especie: " << this->definir_especie(this->especie) << endl;
cout << "Personalidad: " << this->personalidad->obtener_tipo_de_personalidad() << endl;
cout << "Hambre: " << this->hambre << endl;
cout << "Higiene: " << this->higiene << endl;
}
void Animal::mostrar_informacion_general(){
cout << "Nombre: " << this->nombre << endl;
cout << "Edad: " << this->edad << endl;
cout << "Tamaño: " << this->tamanio->obtener_tipo_de_tamanio() << endl;
cout << "Especie: " << this->definir_especie(this->especie) << endl;
cout << "Personalidad: " << this->personalidad->obtener_tipo_de_personalidad() << endl;
}
string Animal::obtener_informacion_a_guardar(){
return this->nombre + "," + to_string(this->edad) + "," + this->tamanio->obtener_tipo_de_tamanio()
+ "," + this->especie + "," + this->personalidad->obtener_tipo_de_personalidad();
}
void Animal::asignar_personalidad(string personalidad){
if(personalidad == PERSONALIDADES[POSICION_TRAVIESO]){
this->personalidad = new Travieso(personalidad);
} else if(personalidad == PERSONALIDADES[POSICION_JUGUETON]){
this->personalidad = new Jugueton(personalidad);
} else if(personalidad == PERSONALIDADES[POSICION_SOCIABLE]){
this->personalidad = new Sociable(personalidad);
} else if(personalidad == PERSONALIDADES[POSICION_DORMILON]){
this->personalidad = new Dormilon(personalidad);
}
}
bool Animal::se_puede_adoptar(int espacio){
return this->tamanio->es_espacio_adecuado(espacio);
}
string Animal::definir_especie(char especie) {
string cadena;
if(especie == PERRO){
cadena = NOMBRES_ESPECIES[POSICION_PERRO];
} else if(especie == GATO){
cadena = NOMBRES_ESPECIES[POSICION_GATO];
} else if(especie == CABALLO){
cadena = NOMBRES_ESPECIES[POSICION_CABALLO];
} else if(especie == ROEDOR){
cadena = NOMBRES_ESPECIES[POSICION_ROEDOR];
} else if(especie == CONEJO){
cadena = NOMBRES_ESPECIES[POSICION_CONEJO];
} else if(especie == ERIZO){
cadena = NOMBRES_ESPECIES[POSICION_ERIZO];
} else if(especie == LAGARTIJA){
cadena = NOMBRES_ESPECIES[POSICION_LAGARTIJA];
}
return cadena;
}
Animal::~Animal(){
delete personalidad;
delete tamanio;
}