Skip to content

Commit

Permalink
Añade padding con ceros al tiempo
Browse files Browse the repository at this point in the history
  • Loading branch information
autosquash committed Oct 25, 2023
1 parent c7c5624 commit acdeeb8
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
23 changes: 19 additions & 4 deletions src/tiempo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@
#include <cassert>
#include <chrono>

std::string pad_with_zeroes(int n) {
assert(n >= 0);
if (n > 59) {
n = n % 60;
}
auto cadena = std::to_string(n);
if (cadena.length() == 1) {
cadena.insert(0, "0");
}
return cadena;
}

///////////////////////////////////////////
// Tiempo
//////////////////////////////////////////
Expand All @@ -27,9 +39,11 @@ Tiempo Tiempo::desde_segundos(double valor) {
}

std::string Tiempo::to_string() const {
const auto minutos = _ms / 60'000;
const auto segundos = _ms / 1000 % 60;
return std::to_string(minutos) + ":" + std::to_string(segundos);
const int segundos_brutos = _ms / 1000;
const auto minutos = segundos_brutos / 60;
const auto segundos = segundos_brutos % 60;
assert(segundos < 60);
return pad_with_zeroes(minutos) + ":" + pad_with_zeroes(segundos);
}

///////////////////////////////////////////
Expand Down Expand Up @@ -80,7 +94,8 @@ Tiempo obtener_tiempo_actual() {
std::chrono::duration_cast<std::chrono::milliseconds>(duracion).count(
) %
10'000'000;
return Tiempo::desde_milisegundos(milisegundos);
const static auto inicial = Tiempo::desde_milisegundos(milisegundos);
return Tiempo::desde_milisegundos(milisegundos) - inicial;
};

///////////////////////////////////////////
Expand Down
10 changes: 4 additions & 6 deletions src/vista/etiquetas/etiquetas_barra_estado.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,19 @@ EtiquetasBarraEstado::EtiquetasBarraEstado(const sf::Font &font) : font(font) {
{medidas::MARGEN_IZQ_PANELES, medidas::FILA_BARRA_ESTADO}
);
}

void EtiquetasBarraEstado::actualizar(
const Tiempo &tiempo_real, const TiempoJuego &tiempo_juego
) {
CadenaJuego cadena(
"Tiempo Juego: {tiempo_juego} Tiempo Real: {tiempo_real}"
);
const auto tiempo_juego_str = tiempo_juego.to_string();
const auto tiempo_real_str = tiempo_real.to_string();
const std::string str =
cadena.interpolar_por_clave("tiempo_juego", tiempo_juego_str)
.interpolar_por_clave("tiempo_real", tiempo_real_str);
cadena.interpolar_por_clave("tiempo_juego", tiempo_juego.to_string())
.interpolar_por_clave("tiempo_real", tiempo_real.to_string());
etiqueta.setString(str);

// TODO: implementar
}

void EtiquetasBarraEstado::dibujar(sf::RenderWindow &ventana) const {
ventana.draw(etiqueta);
}

0 comments on commit acdeeb8

Please sign in to comment.