Skip to content

Commit

Permalink
Añade despachar_pizza() a EstadoModelo
Browse files Browse the repository at this point in the history
  • Loading branch information
autosquash committed Nov 7, 2023
1 parent bb0ece9 commit 4618b9d
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 3 deletions.
12 changes: 12 additions & 0 deletions src/estado_nivel.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include "estado_nivel.h"
#include "general.h"
#include "modelo/control_pizzas.h"

//////// EstadoModelo

Expand All @@ -16,6 +17,17 @@ void EstadoModelo::anadir_encargo(dominio::TipoPizza tp) {
encargos.anadir(encargo);
}

/*
* Despacha una pizza a los clientes del tipo indicado. Devuelve true si ya
* se han cubierto todos los pedidos, y false en caso contrario.
*/
bool EstadoModelo::despachar_pizza( //
const dominio::TipoPizza tp
) {
control_pizzas.procesar_despacho(tp);
return (!control_pizzas.faltan_pedidos_por_cubrir());
}

//////// Estado

Estado::Estado(FaseNivel fase, modelo::ControlPizzas &control)
Expand Down
5 changes: 5 additions & 0 deletions src/estado_nivel.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@ struct EstadoModelo {
GestorTiempoJuego gestor_tiempo;

EstadoModelo(modelo::ControlPizzas &control);
/* Encarga una pizza de tipo tp */
void anadir_encargo(dominio::TipoPizza tp);
/* Despacha una pizza del tipo indicado. */
bool despachar_pizza( //
const dominio::TipoPizza tp
);
};

/* Estado mutable de un nivel */
Expand Down
2 changes: 1 addition & 1 deletion src/modelo/control_pizzas.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace modelo {
const EsSistemaEstatico &es_estatico;
ControlPizzas(Pedidos pedidos_, const EsSistemaEstatico &es_estatico);
const dominio::TiposDePizza &get_tipos_disponibles() const;
void procesar_despacho(const dominio::TipoPizza tp);
void procesar_despacho(dominio::TipoPizza tp);
int obtener_total_preparadas() const;
int obtener_objetivo_total_estatico() const;
bool faltan_pedidos_por_cubrir() const;
Expand Down
4 changes: 2 additions & 2 deletions src/nivel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ class Realizador : public RealizadorBase {
const dominio::TipoPizza tp
) {
assert(estado.fase_actual == FaseNivel::Activa);
estado.estado_modelo.control_pizzas.procesar_despacho(tp);
if (!estado.estado_modelo.control_pizzas.faltan_pedidos_por_cubrir()) {
const auto pedidos_cubiertos = estado.estado_modelo.despachar_pizza(tp);
if (pedidos_cubiertos) {
return FaseNivel::EsperaAntesDeResultado;
}
return std::nullopt;
Expand Down

0 comments on commit 4618b9d

Please sign in to comment.