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
daaf0f42
Commit
daaf0f42
authored
Apr 06, 2015
by
Fardale
Browse files
plop
parent
541d90ed
Changes
4
Hide whitespace changes
Inline
Side-by-side
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
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