Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Rafa Castillo Passols
/
peponator
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
de48da35
authored
Apr 25, 2025
by
Rafa Castillo Passols
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Primeras clases para el modelo de la app
parent
508e88e1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
73 additions
and
5 deletions
lib/modelo/dificultad.dart
lib/modelo/modelo.dart
lib/modelo/partida.dart
lib/modelo/pista.dart
lib/paginas/pantalla_juego.dart
lib/peponator_app.dart
lib/modelo/dificultad.dart
0 → 100644
View file @
de48da35
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
lib/modelo/modelo.dart
View file @
de48da35
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
lib/modelo/partida.dart
0 → 100644
View file @
de48da35
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
lib/modelo/pista.dart
View file @
de48da35
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
;
...
...
lib/paginas/pantalla_juego.dart
View file @
de48da35
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
();
...
...
lib/peponator_app.dart
View file @
de48da35
...
...
@@ -17,7 +17,7 @@ class PeponatorApp extends StatelessWidget {
),
darkTheme:
ThemeData
.
dark
(),
themeMode:
ThemeMode
.
system
,
home:
Pantalla
Records
(
)
home:
Pantalla
Juego
(
fromHome:
true
)
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment