-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinventario.h
139 lines (95 loc) · 3.75 KB
/
inventario.h
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#ifndef INVENTARIO_H
#define INVENTARIO_H
#include <string>
#include <fstream>
#include <iomanip>
#include "material.h"
#include "parser.h"
#include "vector.h"
#include "herramientas.h"
using namespace std;
const int PRECIO_BOMBA = 100;
class Inventario{
private:
// Atributos
Vector<Material> materiales;
int cantidad_materiales;
Jugador_t jugador;
int andycoins_gastadas;
int bombas_usadas;
int bombas_compradas;
public:
// Metodos
// pre: -
// pos: CONSTRUCTOR un inventario vacio con una capacidad inicial para cargar materiales
Inventario(); // Constructor por default
// pre: -
// pos: DESTRUCTOR del inventario (especificamente la lista de materiales dinamica)
~Inventario(); // destructor
// pre: -
// pos: agrega un material a la lista de materiales
void agregar_material_a_lista(Material* material);
// pre: -
// pos: devuelve la ubicacion de un material en la lista de materiales
int buscar_material(char identificador) const;
// pre: -
// pos:Obtiene la cantidad de materiales
int obtener_cantidad_materiales();
// pre: -
// pos: obtiene cuanta cantidad de piedra hay en el inventario
double obtener_cantidad_de_piedra() const;
// pre: -
// pos: obtiene cuanta cantidad de madera hay en el inventario
double obtener_cantidad_de_madera();
// pre: -
// pos: obtiene cuanta cantidad de metal hay en el inventario
double obtener_cantidad_de_metal();
// pre: -
// pos: obtiene cuanta cantidad de bombas hay en el inventario
double obtener_cantidad_de_bombas() const;
// pre: -
// pos: obtiene cuanta cantidad de andycoins hay en el inventario
double obtener_cantidad_de_andycoins() const;
// pre: deberia ya estar chequeado que la resta queda > 0 como cantidad final de c/material
// pos: resta una cantidad de material de los 3 elementos de construccion
void restar_cantidad_materiales_construccion(double costo_piedra, double costo_madera, double costo_metal);
// pre: -
// pos: resta una cantidad de material de los 3 elementos de construccion
void sumar_cantidad_materiales_construccion(double costo_piedra, double costo_madera, double costo_metal);
// pre: -
// pos: se suma una cantidad especifica de un material especifico en funcion de su identificador
void sumar_cantidad_material(char identificador, double cantidad);
// pre: -
// pos: se resta una cantidad especifica de un material especifico en funcion de su identificador
void restar_cantidad_material(char identificador, double cantidad);
// pre: -
// pos: mustra el inventario
void mostrar_inventario();
// pre: -
// pos: guarda el inventario
void guardar_inventario(ofstream& archivo_materiales);
// pre: -
// pos: guarda el inventario
string guardar_linea_inventario_en_string(int pos);
//Para el objetivo comprar_andypolis:
// pre: -
// pos: Aumenta la cantidad de andycoins
void aumentar_andycoins_gastadas(int cantidad);
// pre: -
// pos: obtiene la cantida de andycoinsb gastadas
int obtener_andycoins_gastadas() const;
// pre: -
// pos: aumenta la cantidad de bombas usadas
void aumentar_bombas_usadas(int cantidad);
// pre: -
// pos: obtiene la cantidad de bombas usadas
int obtener_bombas_usadas() const;
//Para el objetivo extremista:
// pre: -
// pos: aumenta la cantidad de bombas compradas
void aumentar_bombas_compradas(int cantidad);
// pre: -
// pos: obtiene la cantidad de bombas usadas
int obtener_bombas_compradas() const;
};
#endif // INVENTARIO_H