Commit daaf0f42 authored by Fardale's avatar Fardale

plop

parent 541d90ed
...@@ -3,7 +3,7 @@ import Array._ ...@@ -3,7 +3,7 @@ import Array._
import javax.swing.ImageIcon import javax.swing.ImageIcon
import scala.math._ import scala.math._
class Demineur extends Jeu[MonBouton] { class Demineur extends Jeu[BoumBouton] {
valeur_defaut = Array(9,9,10) valeur_defaut = Array(9,9,10)
// Taille du champ de mine. Par défaut, réglé en "Facile". // Taille du champ de mine. Par défaut, réglé en "Facile".
...@@ -32,7 +32,7 @@ class Demineur extends Jeu[MonBouton] { ...@@ -32,7 +32,7 @@ class Demineur extends Jeu[MonBouton] {
// private var champ = ofDim[Int](tailleX,tailleY) // 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). // Matrice des boutons associés aux cases (il me semble plus pertinent de l'inclure dans le jeu).
override protected var boutons = ofDim[MonBouton](tailleX,tailleY) override protected var boutons = ofDim[BoumBouton](tailleX,tailleY)
// Réinitialise les paramètres ci-dessus en cas de changement de difficulté. // Réinitialise les paramètres ci-dessus en cas de changement de difficulté.
def reparametrage (x: Int, y: Int, n: Int) = { def reparametrage (x: Int, y: Int, n: Int) = {
...@@ -40,7 +40,7 @@ class Demineur extends Jeu[MonBouton] { ...@@ -40,7 +40,7 @@ class Demineur extends Jeu[MonBouton] {
tailleY = y tailleY = y
nb_mines = n nb_mines = n
c_restantes = tailleX*tailleY - nb_mines c_restantes = tailleX*tailleY - nb_mines
boutons = ofDim[MonBouton](tailleX, tailleY) boutons = ofDim[BoumBouton](tailleX, tailleY)
} }
// On n'aura normalement pas à utiliser cette fonction, mais elle doit exister // On n'aura normalement pas à utiliser cette fonction, mais elle doit exister
...@@ -62,7 +62,7 @@ class Demineur extends Jeu[MonBouton] { ...@@ -62,7 +62,7 @@ class Demineur extends Jeu[MonBouton] {
// (Re)crée un champ de boutons sans toucher aux valeurs // (Re)crée un champ de boutons sans toucher aux valeurs
def creation_boutons = { def creation_boutons = {
map_init((i,j) => new MonBouton(i,j), boutons) map_init((i,j) => new BoumBouton(i,j), boutons)
} }
// Initialisation basique d'un champ de mine. // Initialisation basique d'un champ de mine.
......
...@@ -2,13 +2,24 @@ import swing._ ...@@ -2,13 +2,24 @@ import swing._
import java.awt.Color import java.awt.Color
import javax.swing.ImageIcon import javax.swing.ImageIcon
class MonBouton(protected var x : Int, protected var y : Int) extends Button { abstract class MonBouton(protected val x : Int, protected val y : Int) extends Button {
preferredSize = new Dimension(50, 50) preferredSize = new Dimension(50, 50)
borderPainted = true borderPainted = true
def getTheX = x def getTheX = x
def getTheY = y 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 // Gestion des éléments du Démineur
private var contenu = 0 // 0-8 nbre mines, 9 mine private var contenu = 0 // 0-8 nbre mines, 9 mine
private var libre = true //case sans rien private var libre = true //case sans rien
...@@ -29,14 +40,10 @@ class MonBouton(protected var x : Int, protected var y : Int) extends Button { ...@@ -29,14 +40,10 @@ class MonBouton(protected var x : Int, protected var y : Int) extends Button {
def reset = def reset =
libre = true libre = true
drapeau = false 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 // Gestion de la couleur du bouton
private var couleur = Color.gray private var couleur = Color.gray
private var colore = false private var colore = false
...@@ -69,4 +76,3 @@ class MonBouton(protected var x : Int, protected var y : Int) extends Button { ...@@ -69,4 +76,3 @@ class MonBouton(protected var x : Int, protected var y : Int) extends Button {
} }
} }
...@@ -2,7 +2,7 @@ import scala.util.Random ...@@ -2,7 +2,7 @@ import scala.util.Random
import Array._ import Array._
import java.awt.Color import java.awt.Color
class Flip extends Jeu[MonBouton] { class Flip extends Jeu[ColoredBouton] {
valeur_defaut = Array(5,5) valeur_defaut = Array(5,5)
// Cotés du terrain. // Cotés du terrain.
...@@ -10,7 +10,7 @@ class Flip extends Jeu[MonBouton] { ...@@ -10,7 +10,7 @@ class Flip extends Jeu[MonBouton] {
tailleY = valeur_defaut(1) tailleY = valeur_defaut(1)
// Matrice des boutons. // Matrice des boutons.
override protected var boutons = ofDim[MonBouton](tailleX,tailleY) override protected var boutons = ofDim[ColoredBouton](tailleX,tailleY)
// Sauvegarde nécessaire pour le redémarrage // Sauvegarde nécessaire pour le redémarrage
private var sauvegardeMat = ofDim[Color](tailleX,tailleY) private var sauvegardeMat = ofDim[Color](tailleX,tailleY)
...@@ -19,7 +19,7 @@ class Flip extends Jeu[MonBouton] { ...@@ -19,7 +19,7 @@ class Flip extends Jeu[MonBouton] {
def reparametrage(x: Int, y: Int) = { def reparametrage(x: Int, y: Int) = {
tailleX = x tailleX = x
tailleY = y tailleY = y
boutons = ofDim[MonBouton](tailleX,tailleY) boutons = ofDim[ColoredBouton](tailleX,tailleY)
sauvegardeMat = ofDim[Color](tailleX,tailleY) sauvegardeMat = ofDim[Color](tailleX,tailleY)
} }
...@@ -35,9 +35,9 @@ class Flip extends Jeu[MonBouton] { ...@@ -35,9 +35,9 @@ class Flip extends Jeu[MonBouton] {
// Génération d'une grille de départ aléatoire. // Génération d'une grille de départ aléatoire.
def initialise() = { def initialise() = {
map_init((i,j) => new MonBouton(i,j), boutons) map_init((i,j) => new ColoredBouton(i,j), boutons)
var x = Random.nextBoolean var x = Random.nextBoolean
def f (b: MonBouton) = { def f (b: ColoredBouton) = {
var i = b.getTheX var i = b.getTheX
var j = b.getTheY var j = b.getTheY
if (x) { boutons(i)(j).active_couleur(Color.black) } if (x) { boutons(i)(j).active_couleur(Color.black) }
...@@ -45,7 +45,7 @@ class Flip extends Jeu[MonBouton] { ...@@ -45,7 +45,7 @@ class Flip extends Jeu[MonBouton] {
x = Random.nextBoolean x = Random.nextBoolean
} }
map_apply(f, boutons) map_apply(f, boutons)
def init (b: MonBouton) = { def init (b: ColoredBouton) = {
var i = b.getTheX var i = b.getTheX
var j = b.getTheY var j = b.getTheY
sauvegardeMat(i)(j) = boutons(i)(j).getCouleur sauvegardeMat(i)(j) = boutons(i)(j).getCouleur
...@@ -55,17 +55,17 @@ class Flip extends Jeu[MonBouton] { ...@@ -55,17 +55,17 @@ class Flip extends Jeu[MonBouton] {
// Génération aléatoire avec graine // Génération aléatoire avec graine
def initialise(n: Int) = { def initialise(n: Int) = {
map_init((i,j) => new MonBouton(i,j), boutons) map_init((i,j) => new ColoredBouton(i,j), boutons)
var ran = new Random(n) var ran = new Random(n)
var x = ran.nextBoolean var x = ran.nextBoolean
def f (b : MonBouton) = { def f (b : ColoredBouton) = {
var i = b.getTheX var i = b.getTheX
var j = b.getTheY var j = b.getTheY
if (x) { boutons(i)(j).active_couleur(Color.black) } if (x) { boutons(i)(j).active_couleur(Color.black) }
else { boutons(i)(j).active_couleur(Color.white) } else { boutons(i)(j).active_couleur(Color.white) }
x = Random.nextBoolean} x = Random.nextBoolean}
map_apply(f, boutons) map_apply(f, boutons)
def init (b: MonBouton) = { def init (b: ColoredBouton) = {
var i = b.getTheX var i = b.getTheX
var j = b.getTheY var j = b.getTheY
sauvegardeMat(i)(j) = boutons(i)(j).getCouleur sauvegardeMat(i)(j) = boutons(i)(j).getCouleur
...@@ -85,7 +85,7 @@ class Flip extends Jeu[MonBouton] { ...@@ -85,7 +85,7 @@ class Flip extends Jeu[MonBouton] {
// Renvoire true si toutes les cases du terrain sont blanches // Renvoire true si toutes les cases du terrain sont blanches
def victoire = { def victoire = {
var res = true var res = true
def f (b : MonBouton) = { def f (b : ColoredBouton) = {
var i = b.getTheX var i = b.getTheX
var j = b.getTheY var j = b.getTheY
res = (res && boutons(i)(j).estColore(Color.white)) res = (res && boutons(i)(j).estColore(Color.white))
......
...@@ -4,7 +4,7 @@ import Array._ ...@@ -4,7 +4,7 @@ import Array._
import javax.swing.ImageIcon import javax.swing.ImageIcon
import scala.math._ import scala.math._
abstract class Jeu[T<:Button] { abstract class Jeu[+T<:Button] {
// Variables de base // Variables de base
protected var tailleX : Int = 9 protected var tailleX : Int = 9
protected var tailleY : Int = 9 protected var tailleY : Int = 9
......
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 to comment