Commit daaf0f42 authored by Fardale's avatar Fardale

plop

parent 541d90ed
......@@ -3,7 +3,7 @@ import Array._
import javax.swing.ImageIcon
import scala.math._
class Demineur extends Jeu[MonBouton] {
class Demineur extends Jeu[BoumBouton] {
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[MonBouton](tailleX,tailleY)
override protected var boutons = ofDim[BoumBouton](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[MonBouton](tailleX, tailleY)
boutons = ofDim[BoumBouton](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 MonBouton(i,j), boutons)
map_init((i,j) => new BoumBouton(i,j), boutons)
}
// Initialisation basique d'un champ de mine.
......
......@@ -2,13 +2,24 @@ import swing._
import java.awt.Color
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)
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 {
}
}
......@@ -2,7 +2,7 @@ import scala.util.Random
import Array._
import java.awt.Color
class Flip extends Jeu[MonBouton] {
class Flip extends Jeu[ColoredBouton] {
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[MonBouton](tailleX,tailleY)
override protected var boutons = ofDim[ColoredBouton](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[MonBouton](tailleX,tailleY)
boutons = ofDim[ColoredBouton](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 MonBouton(i,j), boutons)
map_init((i,j) => new ColoredBouton(i,j), boutons)
var x = Random.nextBoolean
def f (b: MonBouton) = {
def f (b: ColoredBouton) = {
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: MonBouton) = {
def init (b: ColoredBouton) = {
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 MonBouton(i,j), boutons)
map_init((i,j) => new ColoredBouton(i,j), boutons)
var ran = new Random(n)
var x = ran.nextBoolean
def f (b : MonBouton) = {
def f (b : ColoredBouton) = {
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: MonBouton) = {
def init (b: ColoredBouton) = {
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 : MonBouton) = {
def f (b : ColoredBouton) = {
var i = b.getTheX
var j = b.getTheY
res = (res && boutons(i)(j).estColore(Color.white))
......
......@@ -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
......
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