Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Fardale
Prog2
Commits
643bd12b
Commit
643bd12b
authored
Mar 13, 2015
by
Fardale
Browse files
abstraction Jeu
parent
175daf98
Changes
2
Hide whitespace changes
Inline
Side-by-side
boum.scala
View file @
643bd12b
...
...
@@ -3,10 +3,10 @@ import Array._
import
javax.swing.ImageIcon
import
scala.math._
class
Demineur
{
class
Demineur
extends
Jeu
[
MonBouton
]
{
// Taille du champ de mine. Par défaut, réglé en "Facile".
private
var
tailleX
=
9
private
var
tailleY
=
9
tailleX
=
9
tailleY
=
9
// Propage le clic pour le premier coup après non
private
var
premierCoup
=
true
...
...
@@ -18,11 +18,12 @@ class Demineur {
private
var
m_trouvees
=
0
// Compteur du nombre de cases restantes.
private
var
c_restantes
=
tailleX
*
tailleY
-
nb_mines
private
var
c_restantes
=
{
tailleX
*
tailleY
-
nb_mines
}
// Détermine si on a gagné.
def
victoire
:
Boolean
=
(
nb_mines
==
m_trouvees
)
||
c_restantes
==
0
def
victoire
()
=
{
(
nb_mines
==
m_trouvees
)
||
c_restantes
==
0
}
// Matrice représentant le champ de mines. Ses valeurs sont comprises entre 0 et 9.
// 0-8 : Nombre de mines autour de la case vide.
...
...
@@ -31,7 +32,7 @@ class Demineur {
// private var champ = ofDim[Int](tailleX,tailleY)
// Matrice des boutons associés aux cases (il me semble plus pertinent de l'inclure dans le jeu).
var
boutons
=
ofDim
[
MonBouton
](
tailleX
,
tailleY
)
protected
var
boutons
=
ofDim
[
MonBouton
](
tailleX
,
tailleY
)
// Réinitialise les paramètres ci-dessus en cas de changement de difficulté.
def
reparametrage
(
x
:
Int
,
y
:
Int
,
n
:
Int
)
=
{
...
...
@@ -52,14 +53,10 @@ class Demineur {
// Réactive la variable de premier coup
def
resetPremierCoup
=
premierCoup
=
true
// (Re)crée un champ de boutons sans toucher aux valeurs
def
creation_boutons
=
{
for
(
i
<-
0
to
(
tailleX
-
1
))
{
for
(
j
<-
0
to
(
tailleY
-
1
))
{
boutons
(
i
)(
j
)
=
new
MonBouton
(
i
,
j
)
}
}
map_init
((
i
,
j
)
=>
new
MonBouton
(
i
,
j
),
boutons
)
}
// Initialisation basique d'un champ de mine.
...
...
jeu.scala
0 → 100644
View file @
643bd12b
import
scala.util.Random
import
swing._
import
Array._
import
javax.swing.ImageIcon
import
scala.math._
abstract
class
Jeu
[
T
<:
Button
]
{
protected
var
tailleX
:
Int
=
9
protected
var
tailleY
:
Int
=
9
protected
var
boutons
:
Array
[
Array
[
T
]]
protected
def
map_init
(
f
:
(
Int
,
Int
)
=>
T
,
a
:
Array
[
Array
[
T
]])
=
{
for
(
i
<-
0
to
(
tailleX
-
1
))
for
(
j
<-
0
to
(
tailleY
-
1
))
a
(
i
)(
j
)
=
f
(
i
,
j
)
}
protected
def
map_apply
(
f
:
T
=>
Unit
,
a
:
Array
[
Array
[
T
]])
=
{
a
.
map
(
x
=>
x
.
map
(
f
))
}
def
victoire
()
:
Boolean
}
Write
Preview
Supports
Markdown
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