80 lines
3.7 KiB
Java
80 lines
3.7 KiB
Java
import java.awt.*;
|
|
/**
|
|
* La class Attente inclu un KeyListener, cette classe a pour objectif d'attendre une entré sur la touche espace du clavier
|
|
* pour regarder le parcours qu'emprunte l'algorithme
|
|
* @version 1.1
|
|
* @author Matthis Fauvet
|
|
*/
|
|
public class FenetreImpGrille extends Fenetre {
|
|
private boolean[][] grille;
|
|
private Cellules[][] grilleCell;
|
|
|
|
public FenetreImpGrille(){
|
|
super();
|
|
}
|
|
/**
|
|
* Class qui créer un objet Algo determinatif pour résoudre le Labyrinthe
|
|
* @param unPerso On rentre
|
|
* @param grille c'est la grille de true et false qui permet de savoir si une cellules est un mur ou un couloir
|
|
* @param coord tableau double dimension qui stock les différentes Cellules.
|
|
*/
|
|
public void ImporterGrille(int taille, int Lentre, int Centre, int Lortie, int Cortie, int[] tabGrille){
|
|
/* ================================================================ Déclaration des variables ============================================================================= */
|
|
int[][] ce_double_tab = new int[taille][taille];
|
|
this.grille = new boolean[taille][taille];
|
|
this.grilleCell = new Cellules[taille][taille];
|
|
//System.out.println("LA TAILLE DE LA GRRILLE VAUT : "+tabGrille.length);
|
|
|
|
/* =============================================================== Gestion des paramètres de la fenètre ========================================================================== */
|
|
/*Création de la fenètre */
|
|
this.fenetre.setSize(600, 600);
|
|
this.fenetre.setLocation(300, 150);
|
|
/*Mise en place du grid layout */
|
|
GridLayout gestionnaire = new GridLayout(taille,taille);
|
|
this.fenetre.setLayout(gestionnaire);
|
|
/* ================================================================================================================================================================ */
|
|
|
|
/* remplissage du tab 1 */
|
|
int compteur=0;
|
|
for(int i=0; i<taille; i++){
|
|
for(int j=0; j<taille; j++){
|
|
ce_double_tab[j][i] = tabGrille[compteur];
|
|
compteur++;
|
|
}
|
|
}
|
|
/* ======================================================================================================================================= */
|
|
// Gestion du remplissage des case
|
|
for(int i=0; i<taille; i++){
|
|
for(int j=0; j<taille; j++){
|
|
|
|
if(ce_double_tab[i][j] == 0){
|
|
this.grille[i][j] = false;
|
|
} else {
|
|
this.grille[i][j] = true;
|
|
}
|
|
|
|
if((i*taille+j)==(Lentre*taille+Centre)){
|
|
Cellules cellules = new Cellules(i, j, Cellules.ENTREE);
|
|
this.grilleCell[i][j] = cellules;
|
|
this.fenetre.add(cellules);
|
|
} else if((i*taille+j)==(Lortie*taille+Cortie)){
|
|
Cellules cellules = new Cellules(i, j, Cellules.SORTIE);
|
|
this.grilleCell[i][j] = cellules;
|
|
this.fenetre.add(cellules);
|
|
} else if(ce_double_tab[i][j] == 1){
|
|
Cellules cellules = new Cellules(i, j, Cellules.MUR);
|
|
this.grilleCell[i][j] = cellules;
|
|
this.fenetre.add(cellules);
|
|
} else{
|
|
Cellules cellules = new Cellules(i, j, Cellules.COULOIR);
|
|
this.grilleCell[i][j] = cellules;
|
|
this.fenetre.add(cellules);
|
|
}
|
|
}
|
|
}
|
|
this.fenetre.setVisible(true);
|
|
ChoixAlgo Suite = new ChoixAlgo(taille, this.fenetre, this.grille, this.grilleCell);
|
|
Suite.setUp();
|
|
}
|
|
}
|