Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Fardale
Prog2
Commits
daaf0f42
Commit
daaf0f42
authored
Apr 06, 2015
by
Fardale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
plop
parent
541d90ed
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
29 additions
and
23 deletions
+29
-23
boum.scala
boum.scala
+4
-4
boutons.scala
boutons.scala
+14
-8
flip.scala
flip.scala
+10
-10
jeu.scala
jeu.scala
+1
-1
No files found.
boum.scala
View file @
daaf0f42
...
...
@@ -3,7 +3,7 @@ import Array._
import
javax.swing.ImageIcon
import
scala.math._
class
Demineur
extends
Jeu
[
Mon
Bouton
]
{
class
Demineur
extends
Jeu
[
Boum
Bouton
]
{
valeur_defaut
=
Array
(
9
,
9
,
10
)
// Taille du champ de mine. Par défaut, réglé en "Facile".
...
...
@@ -32,7 +32,7 @@ class Demineur extends Jeu[MonBouton] {
// 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).
override
protected
var
boutons
=
ofDim
[
Mon
Bouton
](
tailleX
,
tailleY
)
override
protected
var
boutons
=
ofDim
[
Boum
Bouton
](
tailleX
,
tailleY
)
// Réinitialise les paramètres ci-dessus en cas de changement de difficulté.
def
reparametrage
(
x
:
Int
,
y
:
Int
,
n
:
Int
)
=
{
...
...
@@ -40,7 +40,7 @@ class Demineur extends Jeu[MonBouton] {
tailleY
=
y
nb_mines
=
n
c_restantes
=
tailleX
*
tailleY
-
nb_mines
boutons
=
ofDim
[
Mon
Bouton
](
tailleX
,
tailleY
)
boutons
=
ofDim
[
Boum
Bouton
](
tailleX
,
tailleY
)
}
// On n'aura normalement pas à utiliser cette fonction, mais elle doit exister
...
...
@@ -62,7 +62,7 @@ class Demineur extends Jeu[MonBouton] {
// (Re)crée un champ de boutons sans toucher aux valeurs
def
creation_boutons
=
{
map_init
((
i
,
j
)
=>
new
Mon
Bouton
(
i
,
j
),
boutons
)
map_init
((
i
,
j
)
=>
new
Boum
Bouton
(
i
,
j
),
boutons
)
}
// Initialisation basique d'un champ de mine.
...
...
boutons.scala
View file @
daaf0f42
...
...
@@ -2,13 +2,24 @@ import swing._
import
java.awt.Color
import
javax.swing.ImageIcon
class
MonBouton
(
protected
va
r
x
:
Int
,
protected
va
r
y
:
Int
)
extends
Button
{
abstract
class
MonBouton
(
protected
va
l
x
:
Int
,
protected
va
l
y
:
Int
)
extends
Button
{
preferredSize
=
new
Dimension
(
50
,
50
)
borderPainted
=
true
def
getTheX
=
x
def
getTheY
=
y
// Gestion des icones
def
chgIconEtEnable
(
im
:
ImageIcon
,
en
:
Boolean
)
=
{
icon
=
im
enabled
=
en
disabledIcon
=
im
}
}
class
BoumBouton
(
protected
val
x1
:
Int
,
protected
val
y1
:
Int
)
extends
MonBouton
(
x1
,
y1
)
{
// Gestion des éléments du Démineur
private
var
contenu
=
0
// 0-8 nbre mines, 9 mine
private
var
libre
=
true
//case sans rien
...
...
@@ -29,14 +40,10 @@ class MonBouton(protected var x : Int, protected var y : Int) extends Button {
def
reset
=
libre
=
true
drapeau
=
false
}
// Gestion des icones
def
chgIconEtEnable
(
im
:
ImageIcon
,
en
:
Boolean
)
=
{
icon
=
im
enabled
=
en
disabledIcon
=
im
}
class
ColoredBouton
(
protected
val
x1
:
Int
,
protected
val
y1
:
Int
)
extends
MonBouton
(
x1
,
y1
)
{
// Gestion de la couleur du bouton
private
var
couleur
=
Color
.
gray
private
var
colore
=
false
...
...
@@ -69,4 +76,3 @@ class MonBouton(protected var x : Int, protected var y : Int) extends Button {
}
}
flip.scala
View file @
daaf0f42
...
...
@@ -2,7 +2,7 @@ import scala.util.Random
import
Array._
import
java.awt.Color
class
Flip
extends
Jeu
[
Mon
Bouton
]
{
class
Flip
extends
Jeu
[
Colored
Bouton
]
{
valeur_defaut
=
Array
(
5
,
5
)
// Cotés du terrain.
...
...
@@ -10,7 +10,7 @@ class Flip extends Jeu[MonBouton] {
tailleY
=
valeur_defaut
(
1
)
// Matrice des boutons.
override
protected
var
boutons
=
ofDim
[
Mon
Bouton
](
tailleX
,
tailleY
)
override
protected
var
boutons
=
ofDim
[
Colored
Bouton
](
tailleX
,
tailleY
)
// Sauvegarde nécessaire pour le redémarrage
private
var
sauvegardeMat
=
ofDim
[
Color
](
tailleX
,
tailleY
)
...
...
@@ -19,7 +19,7 @@ class Flip extends Jeu[MonBouton] {
def
reparametrage
(
x
:
Int
,
y
:
Int
)
=
{
tailleX
=
x
tailleY
=
y
boutons
=
ofDim
[
Mon
Bouton
](
tailleX
,
tailleY
)
boutons
=
ofDim
[
Colored
Bouton
](
tailleX
,
tailleY
)
sauvegardeMat
=
ofDim
[
Color
](
tailleX
,
tailleY
)
}
...
...
@@ -35,9 +35,9 @@ class Flip extends Jeu[MonBouton] {
// Génération d'une grille de départ aléatoire.
def
initialise
()
=
{
map_init
((
i
,
j
)
=>
new
Mon
Bouton
(
i
,
j
),
boutons
)
map_init
((
i
,
j
)
=>
new
Colored
Bouton
(
i
,
j
),
boutons
)
var
x
=
Random
.
nextBoolean
def
f
(
b
:
Mon
Bouton
)
=
{
def
f
(
b
:
Colored
Bouton
)
=
{
var
i
=
b
.
getTheX
var
j
=
b
.
getTheY
if
(
x
)
{
boutons
(
i
)(
j
).
active_couleur
(
Color
.
black
)
}
...
...
@@ -45,7 +45,7 @@ class Flip extends Jeu[MonBouton] {
x
=
Random
.
nextBoolean
}
map_apply
(
f
,
boutons
)
def
init
(
b
:
Mon
Bouton
)
=
{
def
init
(
b
:
Colored
Bouton
)
=
{
var
i
=
b
.
getTheX
var
j
=
b
.
getTheY
sauvegardeMat
(
i
)(
j
)
=
boutons
(
i
)(
j
).
getCouleur
...
...
@@ -55,17 +55,17 @@ class Flip extends Jeu[MonBouton] {
// Génération aléatoire avec graine
def
initialise
(
n
:
Int
)
=
{
map_init
((
i
,
j
)
=>
new
Mon
Bouton
(
i
,
j
),
boutons
)
map_init
((
i
,
j
)
=>
new
Colored
Bouton
(
i
,
j
),
boutons
)
var
ran
=
new
Random
(
n
)
var
x
=
ran
.
nextBoolean
def
f
(
b
:
Mon
Bouton
)
=
{
def
f
(
b
:
Colored
Bouton
)
=
{
var
i
=
b
.
getTheX
var
j
=
b
.
getTheY
if
(
x
)
{
boutons
(
i
)(
j
).
active_couleur
(
Color
.
black
)
}
else
{
boutons
(
i
)(
j
).
active_couleur
(
Color
.
white
)
}
x
=
Random
.
nextBoolean
}
map_apply
(
f
,
boutons
)
def
init
(
b
:
Mon
Bouton
)
=
{
def
init
(
b
:
Colored
Bouton
)
=
{
var
i
=
b
.
getTheX
var
j
=
b
.
getTheY
sauvegardeMat
(
i
)(
j
)
=
boutons
(
i
)(
j
).
getCouleur
...
...
@@ -85,7 +85,7 @@ class Flip extends Jeu[MonBouton] {
// Renvoire true si toutes les cases du terrain sont blanches
def
victoire
=
{
var
res
=
true
def
f
(
b
:
Mon
Bouton
)
=
{
def
f
(
b
:
Colored
Bouton
)
=
{
var
i
=
b
.
getTheX
var
j
=
b
.
getTheY
res
=
(
res
&&
boutons
(
i
)(
j
).
estColore
(
Color
.
white
))
...
...
jeu.scala
View file @
daaf0f42
...
...
@@ -4,7 +4,7 @@ import Array._
import
javax.swing.ImageIcon
import
scala.math._
abstract
class
Jeu
[
T
<:
Button
]
{
abstract
class
Jeu
[
+
T
<:
Button
]
{
// Variables de base
protected
var
tailleX
:
Int
=
9
protected
var
tailleY
:
Int
=
9
...
...
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