Primeras clases para el modelo de la app

parent 508e88e1
import 'dart:math';
/// La dificultad se escoge antes de comenzar una partida.
/// Esta afecta al tamaño del rango de números, el número de intentos,
/// las pistas que se dan a lo largo de la partida y el cómo se
/// calcula la puntuación final.
///
/// Dado un número de intentos, conseguir adivinar un número en una
/// dificultad mayor debería de dar una puntuación mayor.
///
/// La penalización por tener pistas debería de ser mayor cuanto
/// mayor sea la dificultad.
class Dificultad {
final int limiteInferior;
final int limiteSuperior;
final int intentos;
const Dificultad({
required this.limiteInferior,
required this.limiteSuperior,
required this.intentos
});
static final Dificultad facil = const Dificultad(
limiteInferior: 1,
limiteSuperior: 100,
intentos: 20
);
static final Dificultad normal = const Dificultad(
limiteInferior: 1,
limiteSuperior: 500,
intentos: 35,
);
static final Dificultad dificil = const Dificultad(
limiteInferior: 1,
limiteSuperior: 1000,
intentos: 50
);
int generarNumero() => Random().nextInt(limiteSuperior) + limiteInferior;
}
\ No newline at end of file
export 'pista.dart';
export 'peponator_record.dart';
\ No newline at end of file
export 'peponator_record.dart';
export 'dificultad.dart';
export 'partida.dart';
\ No newline at end of file
import 'package:peponator/modelo/dificultad.dart';
/// Representa una partida que tiene una cierta dificultad, que
/// puede ganarse o perderse y donde se consigue una cierta
/// puntuación. Las partidas son independientes las unas de las otras
class Partida {
final Dificultad dificultad;
final int objetivo;
final int puntuacion;
Partida({required this.dificultad}):
objetivo = dificultad.generarNumero(), puntuacion = 0;
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:peponator/widgets/pista_widget.dart';
class Pista{
class Pista {
static const primos = [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
final ClasePista clase;
......
import 'package:flutter/material.dart';
import 'package:peponator/modelo/dificultad.dart';
import 'package:peponator/modelo/pista.dart';
import 'package:peponator/widgets/pantalla_pausa.dart';
import 'package:peponator/widgets/peponator_mensaje.dart';
......@@ -9,10 +10,19 @@ import 'package:peponator/widgets/tu_mensaje.dart';
// TODO: PantallaJuego debería introducirse en una vista PageStorage para almacenar el estado del scrollController
/// A la pantalla de juego se le pasa una dificultad y genera
/// una partida que irá registrando la puntuación, que depende
/// de cosas como la dificultad, el número de intentos o las
/// pistas dadas
class PantallaJuego extends StatefulWidget {
final bool fromHome;
final Dificultad dificultad;
const PantallaJuego({Key? key, required this.fromHome}): super(key: key);
const PantallaJuego({
required super.key,
required this.fromHome,
required this.dificultad
});
@override
State<PantallaJuego> createState() => _PantallaJuegoState();
......
......@@ -17,7 +17,7 @@ class PeponatorApp extends StatelessWidget {
),
darkTheme: ThemeData.dark(),
themeMode: ThemeMode.system,
home: PantallaRecords()
home: PantallaJuego(fromHome: true)
);
}
}
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