Arreglado el bug y añadido comparación a Dificultad

parent 5125893e
......@@ -19,6 +19,7 @@ class Dificultad {
const Dificultad({required limite, required maxIntentos, required nombre}):
_limite = limite, _maxIntentos = maxIntentos, _nombre = nombre;
int get limite => _limite;
int get maxIntentos => _maxIntentos;
String get nombre => _nombre;
......@@ -58,4 +59,19 @@ class Dificultad {
int generarNumero() => Random().nextInt(limite) + 1;
int generarPuntuacion(int intentos) => (maxIntentos-intentos)*100;
factory Dificultad.copia(Dificultad otro) {
return Dificultad(
limite: otro.limite,
maxIntentos: otro.maxIntentos,
nombre: otro.nombre
);
}
@override
bool operator ==(Object other) {
if (other is! Dificultad) {
return false;
}
return (limite == other.limite) && (maxIntentos == other.maxIntentos);
}
}
\ No newline at end of file
......@@ -60,6 +60,7 @@ class _PantallaJuegoState extends State<PantallaJuego>
late bool error;
late bool espera;
late bool victoria;
bool partidaEmpezada = false;
late int puntuacion;
late int posicion;
......@@ -141,17 +142,17 @@ class _PantallaJuegoState extends State<PantallaJuego>
}
void _cambiarDificultadPausa() async {
Dificultad? nuevaDificultad = await
Dificultad prev = Dificultad.copia(dificultad);
Dificultad? nueva = await
Navigator.push<Dificultad>(
context,
MaterialPageRoute(
builder: (BuildContext context) => PantallaDificultad()
)
);
if (nuevaDificultad != null && dificultad != nuevaDificultad) {
if (nueva != null && prev != nueva) {
setState(() {
dificultad = nuevaDificultad;
dificultad = nueva;
_nuevaPartida();
});
}
......@@ -166,7 +167,10 @@ class _PantallaJuegoState extends State<PantallaJuego>
Widget _buildPaginaJuego(BuildContext context, Orientation orientation) {
dificultad = context.read<ListaDificultad>().seleccionada;
_nuevaPartida();
if (!partidaEmpezada) {
_nuevaPartida();
partidaEmpezada = true;
}
return SafeArea(
child: Stack(
children: [
......@@ -837,7 +841,9 @@ class _PantallaJuegoState extends State<PantallaJuego>
switch(element){
case OpcionesFinPartida.repetir:
onPressed = () {
_nuevaPartida();
setState(() {
_nuevaPartida();
});();
};
break;
case OpcionesFinPartida.cambiarDificultad:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment