UPDATE 1>10 - Creation bon GIT - voir SAE21_2023

This commit is contained in:
fauvet 2023-04-18 12:29:43 +02:00
parent 2d542997bf
commit 180a4e23fe
23 changed files with 1150 additions and 0 deletions

21
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,21 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "test",
"request": "launch",
"mainClass": "test",
"projectName": "SAE21_2023_49188ab1"
}
]
}

26
Exporter.java Normal file
View File

@ -0,0 +1,26 @@
import javax.swing.JPanel;
public class Exporter {
private int[] infos_grille;
private JPanel[][] composanteGrille;
private FenetreRndmGrille cetteFrg;
private int Taille;
public Exporter(FenetreRndmGrille uneFrg){
this.cetteFrg = uneFrg;
}
protected void jsp(){
this.infos_grille=this.cetteFrg.get_info();
this.Taille=this.infos_grille[0];
this.composanteGrille=this.cetteFrg.getGrille();
for(int i=0; i<this.infos_grille.length;i++){
System.out.println(i+" elt : "+this.infos_grille[i]);
}
for(int i=0; i<this.Taille;i++){
for(int j=0; j<this.Taille; j++){
System.out.println("la couleur que je ne vois pas haha : "+this.composanteGrille[i][j].getBackground());
}
}
}
}

17
Fenetre.java Normal file
View File

@ -0,0 +1,17 @@
import javax.swing.*;
public class Fenetre extends JFrame{
protected JFrame fenetre;
public Fenetre() {
this.fenetre = new JFrame("Creation du programme");
this.fenetre.setSize(400, 500);
this.fenetre.setLocationRelativeTo(null); // centre la fenêtre sur l'écran
this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
protected void closeFrame() {
dispose();
}
}

81
FenetreDefSize.java Normal file
View File

@ -0,0 +1,81 @@
import javax.swing.*;
import java.awt.*;
public class FenetreDefSize extends Fenetre{
public FenetreDefSize(){
super();
}
protected void MiseEnPlace(){
/*============================== --------------- Fenetre --------------- ==============================*/
GridLayout gestionnaire = new GridLayout(2,1);
this.fenetre.setLayout(gestionnaire);
/*============================== --------------- premier panneau --------------- ==============================*/
JPanel ce_panneau = new JPanel();
ce_panneau.setBackground(Color.CYAN);
JLabel ce_text = new JLabel("Donnez la taille de la grille");
ce_panneau.add(ce_text);
/* ============================== --------------- deuxième panneau --------------- ==============================*/
JPanel ce_panneau2 = new JPanel();
ce_panneau2.setBackground(Color.CYAN);
ce_panneau2.setLayout(gestionnaire);
/*----------------- Panneau 3 -----------------*/
JPanel ce_panneau3 = new JPanel();
ce_panneau3.setBackground(Color.CYAN);
JTextField ce_champ = new JTextField();
ce_champ.setPreferredSize(new Dimension(50, 30));
JButton ce_boutton = new JButton("créer");
ce_panneau3.add(ce_champ);
ce_panneau3.add(ce_boutton);
/*----------------- Panneau 4 - les radios boutons -----------------*/
JPanel ce_panneau4 = new JPanel();
ce_panneau4.setBackground(Color.CYAN);
JRadioButton radio1 = new JRadioButton("Grille randomisée");
JRadioButton radio2 = new JRadioButton("Grille vide");
radio1.setSelected(true);
radio1.setBackground(Color.CYAN);
radio2.setBackground(Color.CYAN);
radio1.setActionCommand("Grille randomisée");
radio2.setActionCommand("Grille vide");
ButtonGroup group = new ButtonGroup();
group.add(radio1);
group.add(radio2);
ce_panneau4.add(radio1);
ce_panneau4.add(radio2);
/* ----------------- Global ----------------- */
ce_panneau2.add(ce_panneau3);
ce_panneau2.add(ce_panneau4);
/*----------------- event -----------------*/
taille_su b_taille = new taille_su(this.fenetre, ce_champ, group);
ce_boutton.addActionListener(b_taille);
/*----------------- reste -----------------*/
this.fenetre.add(ce_panneau, BorderLayout.CENTER);
this.fenetre.add(ce_panneau2);
this.fenetre.setVisible(true);
}
}

68
FenetreImpGrille.java Normal file
View File

@ -0,0 +1,68 @@
import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;
public class FenetreImpGrille extends Fenetre {
protected FenetreImpGrille(){
super();
}
protected void ImporterGrille(int Taille, int Lentre, int Centre, int Lortie, int Cortie, int[] un_tab){
/* ================================================================ Déclaration des variables ============================================================================= */
int compteur=0;
int[][] ce_double_tab = new int[Taille][Taille];
/* =============================================================== Gestion des paramètres de la fenètre ========================================================================== */
/*Création de la fenètre */
this.fenetre.setSize(600, 600);
/*Mise en place du grid layout */
GridLayout gestionnaire = new GridLayout(Taille,Taille);
this.fenetre.setLayout(gestionnaire);
/* ================================================================================================================================================================ */
/* remplissage du tab 1 */
for(int i=0; i<Taille; i++){
for(int j=0; j<Taille; j++){
ce_double_tab[j][i] = un_tab[compteur];
compteur++;
}
}
/* ======================================================================================================================================= */
// Gestion du remplissage des case
for(int i=0; i<Taille; i++){
for(int j=0; j<Taille; j++){
JPanel ce_pannel = new JPanel();
if((i*4+j)==(Lentre*4+Centre)){
ce_pannel.setBackground(Color.RED);
this.fenetre.add(ce_pannel);
} else if((i*4+j)==(Lortie*4+Cortie)){
ce_pannel.setBackground(Color.BLUE);
this.fenetre.add(ce_pannel);
} else if(ce_double_tab[i][j] == 1){
ce_pannel.setBackground(Color.BLACK);
this.fenetre.add(ce_pannel);
} else{
JPanel ce_panel = new JPanel();
Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
ce_panel.setBorder(border);
ce_panel.setBackground(Color.WHITE);
this.fenetre.add(ce_panel);
}
}
}
this.fenetre.setVisible(true);
}
}

57
FenetreInit.java Normal file
View File

@ -0,0 +1,57 @@
import javax.swing.*;
import java.awt.*;
public class FenetreInit extends Fenetre
{
public FenetreInit(){
super();
}
protected void Initialisation(){
GridLayout gestionnaire = new GridLayout(2,1);
this.fenetre.setLayout(gestionnaire);
/* Création du premier panneau */
JLabel un_text = new JLabel("Que voulez vous faire ?");
JPanel un_Panel = new JPanel();
un_Panel.setBackground(Color.CYAN);
un_Panel.add(un_text, BorderLayout.CENTER);
JPanel un_Panel2 = new JPanel(null);
un_Panel2.setBackground(Color.CYAN);
un_Panel2.setLayout(new BoxLayout(un_Panel2, BoxLayout.Y_AXIS));
un_Panel2.add(Box.createVerticalGlue());
un_Panel2.add(un_Panel);
un_Panel2.add(Box.createVerticalGlue());
/*Création du deuxième panneau */
JPanel un_Panel3 = new JPanel();
FlowLayout gestionnaire2 = new FlowLayout(FlowLayout.CENTER);
un_Panel3.setLayout(gestionnaire2);
un_Panel3.setBackground(Color.CYAN);
JButton un_Button0 = new JButton("Nouvelle Grille");
JButton un_Button1 = new JButton("Importer Grille");
un_Panel3.add(un_Button0);
un_Panel3.add(un_Button1);
/*Gestion des événements */
creer salut = new creer(fenetre);
un_Button0.addActionListener(salut);
importer bImporter = new importer(this.fenetre);
un_Button1.addActionListener(bImporter);
/*Ajouts des elts à la fenètre */
this.fenetre.add(un_Panel2, BorderLayout.CENTER);
this.fenetre.add(un_Panel3);
this.fenetre.setVisible(true);
}
}

116
FenetreRndmGrille.java Normal file
View File

@ -0,0 +1,116 @@
import javax.swing.*;
import java.awt.*;
import java.util.Random;
import javax.swing.border.Border;
public class FenetreRndmGrille extends Fenetre{
private int[] tab_de_int;
private int Taille;
private int ValeurEntre;
private int ValeurSortie;
private JPanel[][] TabDePanel;
public FenetreRndmGrille(int Taille){
super();
this.tab_de_int = new int[] {1, 1};
this.Taille = Taille;
this.TabDePanel = new JPanel[this.Taille][this.Taille];
}
protected void RandomGrille(){
this.fenetre.setSize(600, 600);
this.fenetre.setLocation(450, 200);
GridLayout gestionnaire = new GridLayout(this.Taille,this.Taille);
this.fenetre.setLayout(gestionnaire);
OptionsFRG un_Test = new OptionsFRG(this);
un_Test.SetUp();
Random rand = new Random();
this.ValeurEntre = rand.nextInt(this.Taille*this.Taille);
this.ValeurSortie = rand.nextInt(this.Taille*this.Taille);
if(this.ValeurSortie == this.ValeurEntre){
while(this.ValeurSortie == this.ValeurEntre)
{
this.ValeurSortie = rand.nextInt(this.Taille*this.Taille);
}
}
int compteur=0;
for(int i=0; i<Taille; i++){
for(int j=0; j<Taille; j++){
int nombreAleatoire = rand.nextInt(3); // génère un nombre entre 0 et 10
JPanel ce_panel = new JPanel();
this.TabDePanel[j][i] = ce_panel;
if(compteur==this.ValeurEntre){
Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
ce_panel.setBorder(border);
ce_panel.setBackground(Color.BLUE);
this.fenetre.add(ce_panel);
ModificationsFRG testee = new ModificationsFRG(un_Test, this.tab_de_int);
ce_panel.addMouseListener(testee);
this.tab_de_int=testee.getValues();
} else if(compteur==this.ValeurSortie){
Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
ce_panel.setBorder(border);
ce_panel.setBackground(Color.RED);
this.fenetre.add(ce_panel);
ModificationsFRG testee = new ModificationsFRG(un_Test, this.tab_de_int);
ce_panel.addMouseListener(testee);
this.tab_de_int=testee.getValues();
} else if(nombreAleatoire == 0){
Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
ce_panel.setBorder(border);
ce_panel.setBackground(Color.BLACK);
this.fenetre.add(ce_panel);
ModificationsFRG testee = new ModificationsFRG(un_Test, this.tab_de_int);
ce_panel.addMouseListener(testee);
this.tab_de_int=testee.getValues();
} else{
Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
ce_panel.setBorder(border);
ce_panel.setBackground(Color.WHITE);
this.fenetre.add(ce_panel);
ModificationsFRG testee = new ModificationsFRG(un_Test, this.tab_de_int);
ce_panel.addMouseListener(testee);
this.tab_de_int=testee.getValues();
}
compteur++;
}
}
this.fenetre.setVisible(true);
}
protected int[] get_info(){
int[] infos_grille = new int[5];
infos_grille[0] = this.Taille;
infos_grille[1] = (this.ValeurEntre/this.Taille);
infos_grille[2] = (this.ValeurEntre%this.Taille);
infos_grille[3] = (this.ValeurSortie/this.Taille);
infos_grille[4] = (this.ValeurSortie%this.Taille);
return infos_grille;
}
protected JPanel[][] getGrille(){
return this.TabDePanel;
}
}

38
FenetreVideGrille.java Normal file
View File

@ -0,0 +1,38 @@
import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;
public class FenetreVideGrille extends Fenetre{
private int[] tab_de_int;
public FenetreVideGrille(){
super();
this.tab_de_int = new int[] {0, 0};
}
protected void create_empty(int Taille){
this.fenetre.setSize(600, 600);
this.fenetre.setLocation(450, 200);
OptionsFVG un_Test = new OptionsFVG(this);
un_Test.set_up();
GridLayout gestionnaire = new GridLayout(Taille,Taille);
this.fenetre.setLayout(gestionnaire);
for(int i=0; i<Taille; i++){
for(int j=0; j<Taille; j++){
JPanel ce_panel = new JPanel();
Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
ce_panel.setBorder(border);
ce_panel.setBackground(Color.WHITE);
this.fenetre.add(ce_panel);
ModificationsFVG testee = new ModificationsFVG(un_Test, this.tab_de_int);
ce_panel.addMouseListener(testee);
this.tab_de_int=testee.getValues();
}
}
this.fenetre.setVisible(true);
}
}

22
FileImport.java Normal file
View File

@ -0,0 +1,22 @@
import javax.swing.*;
import java.io.File;
public class FileImport {
String ce_chemin;
public FileImport(){
this.ce_chemin = "";
};
protected String Parcours(){
JFileChooser fileChooser = new JFileChooser();
int option = fileChooser.showOpenDialog(null);
if (option == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
this.ce_chemin = selectedFile.getAbsolutePath();
} else {
System.out.println("No file selected");
}
return this.ce_chemin;
}
}

119
Lecture.java Normal file
View File

@ -0,0 +1,119 @@
import java.io.InputStream;
import java.io.*;
import java.io.IOException;
public class Lecture {
private String ce_chemin;
private int data;
/* ===========================================================================================================================================================================
*
* CONSTRUCTEUR
*
* ===========================================================================================================================================================================
*/
public Lecture(String un_chemin)
{
this.ce_chemin = un_chemin;
}
/* ===========================================================================================================================================================================
*
* GET_HEADER
*
* ===========================================================================================================================================================================
*/
protected int GetHeader(int n){
try {
/* Ouverture du flux */
InputStream fis = new FileInputStream(this.ce_chemin);
for(int i=-1; i<n; i++){
this.data = fis.read();
}
try{
fis.close();
}
catch(IOException e){
System.out.println("Erreur de fermeture");
return 0;
}
return this.data;
} catch (IOException e) {
System.err.println("Erreur relevé");
return 0;
}
}
/* ===========================================================================================================================================================================
*
* GET_OFFSET
*
* ===========================================================================================================================================================================
*/
protected int[] GetOffset(){
//Renvoie le paylodad. Dans notre cas tous les états de nos cases.
// Renvoie le payload dans un tableau ou chaque elt du tableau en est un du payload.
try{
/* Ouverture d'un flux */
InputStream fis = new FileInputStream(this.ce_chemin);
int cette_taille=fis.available();/*cette_taille prend une aproximation de la taille du flux */
int ce_compteur = 0, temp;
int [] ce_tableau = new int[cette_taille-4]; /*-5 pour le header mais +1 pour le -1 de fin de fichier. */
int [] ce_tableau_temp = new int[8]; /*C'est le tab qui va stocker les différents octets */
int[] ce_tab_to_return = new int[0];; /*Tableau qui va être renvoyé et qui va contenir tous les bits dans le non ordre */
/*On skip les 5 premiers octets */
for(int i=0;i<5;i++){
this.data = fis.read();
}
/* ============================= Création tu tableau avec les différents octets en int ========================================== */
while(data != -1){
this.data = fis.read();
ce_tableau[ce_compteur]=this.data;
ce_compteur=ce_compteur+1;
}
/* =============================================================================================================================== */
//Utilisation du tableau différent pour créer un tableau avec tout les octets mais dans le bon sens grace a ma superbe classe Outils ;)
outils ToolBox = new outils();
for(int m=0; m<ce_tableau.length-1; m++){ //length -1 car on ne veux pas traiter le -1;
temp = ce_tableau[m];
for(int n=0; n<8; n++){ //repetition 8 fois pour traiter les 8 bits
ce_tableau_temp[n] = temp&1;
temp = temp >> 1;
}
ce_tab_to_return = ToolBox.concatenate(ce_tab_to_return, ToolBox.reverse(ce_tableau_temp));
}
/* =================================================================================================================================== */
try{
fis.close();
} catch(IOException e){
System.out.println("erreur lors de la fermeture");
return null;
}
return ce_tab_to_return;
}
catch(IOException e){
System.out.println("erreur d'ouverture");
return null;
}
}
}

59
ModificationsFRG.java Normal file
View File

@ -0,0 +1,59 @@
import java.awt.event.*;
import javax.swing.JPanel;
import java.awt.*;
public class ModificationsFRG implements MouseListener {
private int[] ce_tableau ;
private OptionsFRG options;
public ModificationsFRG(OptionsFRG options, int[] un_tab){
this.options = options;
this.ce_tableau = un_tab;
}
public void mouseClicked(MouseEvent e) {
JPanel notre_Panel = (JPanel) e.getSource();
Color test = notre_Panel.getBackground();
// Accéder aux boutons radios de l'objet Options
boolean radio1Selected = options.GetButtonBW().isSelected();
boolean radio2Selected = options.GetButtonE().isSelected();
boolean radio3Selected = options.GetButtonS().isSelected();
if(test==Color.WHITE && radio1Selected==true){
notre_Panel.setBackground(Color.BLACK);
} else if(test==Color.BLACK && radio1Selected==true){
notre_Panel.setBackground(Color.WHITE);
}else if(radio1Selected==true && (test==Color.RED || test==Color.BLUE)){
if(test==Color.BLUE){
notre_Panel.setBackground(Color.WHITE);
this.ce_tableau[0] = 0;
} else if(test==Color.RED){
notre_Panel.setBackground(Color.WHITE);
this.ce_tableau[1] = 0;
}
} else if(test!=Color.BLUE && radio2Selected==true && this.ce_tableau[0]==0){
notre_Panel.setBackground(Color.BLUE);
this.ce_tableau[0]=1;
} else if(test!=Color.RED && radio3Selected==true && this.ce_tableau[1]==0){
this.ce_tableau[1]=1;
notre_Panel.setBackground(Color.RED);
}
}
protected int[] getValues(){
return this.ce_tableau;
}
public void mouseExited(MouseEvent e) {
// Laisser cette méthode vide si vous n'avez pas besoin de l'utiliser
}
// Les méthodes suivantes ne sont pas utilisées dans cet exemple, donc nous les laissons vides
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
}

59
ModificationsFVG.java Normal file
View File

@ -0,0 +1,59 @@
import java.awt.event.*;
import javax.swing.JPanel;
import java.awt.*;
public class ModificationsFVG implements MouseListener {
private int[] ce_tableau ;
private OptionsFVG options;
public ModificationsFVG(OptionsFVG options, int[] un_tab){
this.options = options;
this.ce_tableau = un_tab;
}
public void mouseClicked(MouseEvent e) {
JPanel notre_Panel = (JPanel) e.getSource();
Color test = notre_Panel.getBackground();
// Accéder aux boutons radios de l'objet Options
boolean radio1Selected = options.GetButtonBW().isSelected();
boolean radio2Selected = options.GetButtonE().isSelected();
boolean radio3Selected = options.GetButtonS().isSelected();
if(test==Color.WHITE && radio1Selected==true){
notre_Panel.setBackground(Color.BLACK);
} else if(test==Color.BLACK && radio1Selected==true){
notre_Panel.setBackground(Color.WHITE);
}else if(radio1Selected==true && (test==Color.RED || test==Color.BLUE)){
if(test==Color.BLUE){
notre_Panel.setBackground(Color.WHITE);
this.ce_tableau[0] = 0;
} else if(test==Color.RED){
notre_Panel.setBackground(Color.WHITE);
this.ce_tableau[1] = 0;
}
} else if(test!=Color.BLUE && radio2Selected==true && this.ce_tableau[0]==0){
notre_Panel.setBackground(Color.BLUE);
this.ce_tableau[0]=1;
} else if(test!=Color.RED && radio3Selected==true && this.ce_tableau[1]==0){
this.ce_tableau[1]=1;
notre_Panel.setBackground(Color.RED);
}
}
protected int[] getValues(){
return this.ce_tableau;
}
public void mouseExited(MouseEvent e) {
// Laisser cette méthode vide si vous n'avez pas besoin de l'utiliser
}
// Les méthodes suivantes ne sont pas utilisées dans cet exemple, donc nous les laissons vides
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
}

24
OptionsBoutonsFRG.java Normal file
View File

@ -0,0 +1,24 @@
import java.awt.event.*;
public class OptionsBoutonsFRG implements ActionListener{
private String Reponses1="Quitter", Reponses2="Sauvegarder";
private String cet_event;
private Exporter test;
private FenetreRndmGrille ce_frg;
protected OptionsBoutonsFRG(FenetreRndmGrille un_frg){
this.ce_frg = un_frg;
}
public void actionPerformed(ActionEvent e){
this.cet_event=e.getActionCommand();
if (cet_event.equals(this.Reponses1)){
System.exit(1);
}
else if (cet_event.equals(this.Reponses2)){
System.out.println("Test1");
this.test = new Exporter(this.ce_frg);
this.test.jsp();
}
}
}

19
OptionsBoutonsFVG.java Normal file
View File

@ -0,0 +1,19 @@
import java.awt.event.*;
public class OptionsBoutonsFVG implements ActionListener{
private String Reponses1="Quitter", Reponses2="Sauvegarder";
private String cet_event;
protected OptionsBoutonsFVG(FenetreVideGrille FVG){
}
public void actionPerformed(ActionEvent e){
this.cet_event=e.getActionCommand();
if (cet_event.equals(this.Reponses1)){
System.exit(1);
}
else if (cet_event.equals(this.Reponses2)){
}
}
}

130
OptionsFRG.java Normal file
View File

@ -0,0 +1,130 @@
import java.awt.*;
import javax.swing.*;
public class OptionsFRG extends Fenetre {
public JRadioButton radio1;
public JRadioButton radio2;
public JRadioButton radio3;
private FenetreRndmGrille ce_frg;
public OptionsFRG(FenetreRndmGrille un_frg){
super();
this.fenetre.setSize(400, 600);
this.fenetre.setLocation(1100, 200);
this.ce_frg = un_frg;
}
protected void SetUp(){
GridLayout gestionnaire = new GridLayout(4,1);
this.fenetre.setLayout(gestionnaire);
/* Création du premier panneau */
JLabel un_d_text = new JLabel(" Etape 1 : création du labyrinthe");
JPanel un_Panel = new JPanel();
un_Panel.setBackground(Color.CYAN);
un_Panel.add(un_d_text, BorderLayout.CENTER);
JPanel un_Panel2 = new JPanel();
un_Panel2.setBackground(Color.CYAN);
un_Panel2.setLayout(new BoxLayout(un_Panel2, BoxLayout.Y_AXIS));
un_Panel2.add(Box.createVerticalGlue());
un_Panel2.add(un_Panel);
un_Panel2.add(Box.createVerticalGlue());
this.fenetre.add(un_Panel2, BorderLayout.CENTER);
/*Création du deuxième panneau */
JPanel un_Panel3 = new JPanel();
JButton un_Button1 = new JButton("Sauvegarder");
JPanel un_Panel4 = new JPanel();
un_Panel4.add(un_Button1);
un_Panel3.setBackground(Color.CYAN);
un_Panel4.setBackground(Color.CYAN);
un_Panel3.setBackground(Color.CYAN);
un_Panel3.setLayout(new BoxLayout(un_Panel3, BoxLayout.Y_AXIS));
un_Panel3.add(Box.createVerticalGlue());
un_Panel3.add(un_Panel4);
un_Panel3.add(Box.createVerticalGlue());
this.fenetre.add(un_Panel3, BorderLayout.CENTER);
/* Nouveau panneau grille choix */
JPanel un_Panel10 = new JPanel();
JPanel un_Panel11 = new JPanel();
radio1 = new JRadioButton("Construire ou Effacer");
radio2 = new JRadioButton("Entrée");
radio3 = new JRadioButton("Sortie");
radio1.setBackground(Color.CYAN);
radio2.setBackground(Color.CYAN);
radio3.setBackground(Color.CYAN);
radio1.setSelected(true);
ButtonGroup group = new ButtonGroup();
group.add(radio1);group.add(radio2); group.add(radio3);
un_Panel11.add(radio1);
un_Panel11.add(radio2);
un_Panel11.add(radio3);
un_Panel10.setBackground(Color.CYAN);
un_Panel10.setLayout(new BoxLayout(un_Panel10, BoxLayout.Y_AXIS));
un_Panel10.add(Box.createVerticalGlue());
un_Panel10.add(un_Panel11);
un_Panel10.add(Box.createVerticalGlue());
un_Panel10.setBackground(Color.CYAN);
un_Panel11.setBackground(Color.CYAN);
this.fenetre.add(un_Panel10, BorderLayout.CENTER);
/*Création du deuxième panneau */
JPanel un_Panel5 = new JPanel();
JButton un_Button2 = new JButton("Quitter");
JPanel un_Panel6 = new JPanel();
un_Panel6.add(un_Button2, BorderLayout.CENTER);
un_Panel5.setBackground(Color.CYAN);
un_Panel6.setBackground(Color.CYAN);
un_Panel5.setBackground(Color.CYAN);
un_Panel5.setLayout(new BoxLayout(un_Panel5, BoxLayout.Y_AXIS));
un_Panel5.add(Box.createVerticalGlue());
un_Panel5.add(un_Panel6);
un_Panel5.add(Box.createVerticalGlue());
this.fenetre.add(un_Panel5, BorderLayout.CENTER);
/* */
OptionsBoutonsFRG hahaha = new OptionsBoutonsFRG(this.ce_frg);
un_Button1.addActionListener(hahaha);
un_Button2.addActionListener(hahaha);
/* Evenement */
this.fenetre.setVisible(true);
}
protected JRadioButton GetButtonBW() {
return radio1;
}
protected JRadioButton GetButtonE() {
return radio2;
}
protected JRadioButton GetButtonS() {
return radio3;
}
}

129
OptionsFVG.java Normal file
View File

@ -0,0 +1,129 @@
import java.awt.*;
import javax.swing.*;
public class OptionsFVG extends Fenetre {
public JRadioButton radio1;
public JRadioButton radio2;
public JRadioButton radio3;
private FenetreVideGrille FVG;
public OptionsFVG(FenetreVideGrille FVG) {
super();
this.fenetre.setSize(400, 600);
this.fenetre.setLocation(1100, 200);
}
protected void set_up(){
GridLayout gestionnaire = new GridLayout(4,1);
this.fenetre.setLayout(gestionnaire);
/* Création du premier panneau */
JLabel un_d_text = new JLabel(" Etape 1 : création du labyrinthe");
JPanel un_Panel = new JPanel();
un_Panel.setBackground(Color.CYAN);
un_Panel.add(un_d_text, BorderLayout.CENTER);
JPanel un_Panel2 = new JPanel();
un_Panel2.setBackground(Color.CYAN);
un_Panel2.setLayout(new BoxLayout(un_Panel2, BoxLayout.Y_AXIS));
un_Panel2.add(Box.createVerticalGlue());
un_Panel2.add(un_Panel);
un_Panel2.add(Box.createVerticalGlue());
this.fenetre.add(un_Panel2, BorderLayout.CENTER);
/*Création du deuxième panneau */
JPanel un_Panel3 = new JPanel();
JButton un_Button1 = new JButton("Sauvegrder");
JPanel un_Panel4 = new JPanel();
un_Panel4.add(un_Button1);
un_Panel3.setBackground(Color.CYAN);
un_Panel4.setBackground(Color.CYAN);
un_Panel3.setBackground(Color.CYAN);
un_Panel3.setLayout(new BoxLayout(un_Panel3, BoxLayout.Y_AXIS));
un_Panel3.add(Box.createVerticalGlue());
un_Panel3.add(un_Panel4);
un_Panel3.add(Box.createVerticalGlue());
this.fenetre.add(un_Panel3, BorderLayout.CENTER);
/* Nouveau panneau grille choix */
JPanel un_Panel10 = new JPanel();
JPanel un_Panel11 = new JPanel();
radio1 = new JRadioButton("Mur et Couloir");
radio2 = new JRadioButton("Entrée");
radio3 = new JRadioButton("Sortie");
radio1.setBackground(Color.CYAN);
radio2.setBackground(Color.CYAN);
radio3.setBackground(Color.CYAN);
radio1.setSelected(true);
ButtonGroup group = new ButtonGroup();
group.add(radio1);group.add(radio2); group.add(radio3);
un_Panel11.add(radio1);
un_Panel11.add(radio2);
un_Panel11.add(radio3);
un_Panel10.setBackground(Color.CYAN);
un_Panel10.setLayout(new BoxLayout(un_Panel10, BoxLayout.Y_AXIS));
un_Panel10.add(Box.createVerticalGlue());
un_Panel10.add(un_Panel11);
un_Panel10.add(Box.createVerticalGlue());
un_Panel10.setBackground(Color.CYAN);
un_Panel11.setBackground(Color.CYAN);
this.fenetre.add(un_Panel10, BorderLayout.CENTER);
/*Création du deuxième panneau */
JPanel un_Panel5 = new JPanel();
JButton un_Button2 = new JButton("Quitter");
JPanel un_Panel6 = new JPanel();
un_Panel6.add(un_Button2, BorderLayout.CENTER);
un_Panel5.setBackground(Color.CYAN);
un_Panel6.setBackground(Color.CYAN);
un_Panel5.setBackground(Color.CYAN);
un_Panel5.setLayout(new BoxLayout(un_Panel5, BoxLayout.Y_AXIS));
un_Panel5.add(Box.createVerticalGlue());
un_Panel5.add(un_Panel6);
un_Panel5.add(Box.createVerticalGlue());
this.fenetre.add(un_Panel5, BorderLayout.CENTER);
/* */
OptionsBoutonsFVG hahaha = new OptionsBoutonsFVG(this.FVG);
un_Button1.addActionListener(hahaha);
un_Button2.addActionListener(hahaha);
/* Evenement */
this.fenetre.setVisible(true);
}
protected JRadioButton GetButtonBW() {
return radio1;
}
protected JRadioButton GetButtonE() {
return radio2;
}
protected JRadioButton GetButtonS() {
return radio3;
}
}

6
Start.java Normal file
View File

@ -0,0 +1,6 @@
public class Start {
public static void main(String[] args) {
FenetreInit une_fenetre = new FenetreInit();
une_fenetre.Initialisation();
}
}

19
azert.java Normal file
View File

@ -0,0 +1,19 @@
public class azert {
public static void main(String[] Args){
int i = 6, j, compteur=0;
int[] tab = new int[8];
int[] copie = new int[8];
for(j=0; j<8; j++){
tab[j] = i&1;
i = i >> 1;
/*System.out.println(j+" bits reverse = "+tab[j]);*/
}
for(j=7; j>0; j--){
copie[j]=tab[compteur];
compteur++;
}
for(j=0; j<8; j++){
System.out.println(j+" bits reverse = "+copie[j]);
}
}
}

21
creer.java Normal file
View File

@ -0,0 +1,21 @@
import javax.swing.*;
import java.awt.event.*;
public class creer implements ActionListener {
private String cet_event, f_option = "Nouvelle Grille";
private JFrame cette_frame;
public creer(JFrame frame_initial){
super();
this.cette_frame=frame_initial;
}
public void actionPerformed(ActionEvent e){
this.cet_event=e.getActionCommand();
this.cette_frame.dispose();
if (cet_event.equals(f_option)){
FenetreDefSize hehe = new FenetreDefSize();
hehe.MiseEnPlace();
}
}
}

46
importer.java Normal file
View File

@ -0,0 +1,46 @@
import java.awt.event.*;
import javax.swing.JFrame;
public class importer implements ActionListener {
String cette_option;
String cet_event;
String ce_chemin;
JFrame cette_frame;
Lecture cette_lecture;
FenetreImpGrille cette_fenetre;
int valeur0, valeur1, valeur2, valeur3, valeur4;
public importer(JFrame une_frame){
this.cette_option="Importer Grille";
this.cette_frame = une_frame;
}
public void actionPerformed(ActionEvent e){
this.cet_event=e.getActionCommand();
if(cet_event.equals(this.cette_option)){
System.out.println("Importation de la grille");
/*cherche le chemin du fichier */
FileImport un_test = new FileImport();
this.ce_chemin = un_test.Parcours();
/*lecture du fichier */
this.cette_lecture = new Lecture(this.ce_chemin);
this.valeur0=this.cette_lecture.GetHeader(0);
this.valeur1=this.cette_lecture.GetHeader(1);
this.valeur2=this.cette_lecture.GetHeader(2);
this.valeur3=this.cette_lecture.GetHeader(3);
this.valeur4=this.cette_lecture.GetHeader(4);
/*Fermeture de la première fenètre */
cette_frame.dispose();
/* Ouverture de la nouvelle */
this.cette_fenetre = new FenetreImpGrille();
cette_fenetre.ImporterGrille(this.valeur0, this.valeur1, this.valeur2, this.valeur3, this.valeur4, this.cette_lecture.GetOffset());
}
}
}

43
outils.java Normal file
View File

@ -0,0 +1,43 @@
public class outils {
protected outils(){
}
public int[] reverse(int[] un_tableau) {
int taille = un_tableau.length;
int[] cette_copie;
cette_copie = new int[un_tableau.length];
int compteur=taille;
for(int j=0; j<cette_copie.length; j++){
cette_copie[j]=un_tableau[compteur-1];
compteur--;
}
return cette_copie;
}
public int[] concatenate(int[] first_tab, int[] tab_to_add){
int taille = first_tab.length;
int[] tableau_temp = new int[taille+tab_to_add.length];
int compteur = 0;
if(first_tab != null){
for(int i=0;i<taille;i++){
tableau_temp[compteur]=first_tab[i];
compteur++;
}
}
if(tab_to_add != null){
for(int i=0;i<tab_to_add.length;i++){
tableau_temp[compteur]=tab_to_add[i];
compteur++;
}
}
return tableau_temp;
}
}

BIN
petit.lab Normal file

Binary file not shown.

30
taille_su.java Normal file
View File

@ -0,0 +1,30 @@
import javax.swing.*;
import java.awt.event.*;
public class taille_su extends JFrame implements ActionListener {
private JFrame cette_frame;
private JTextField ce_tfield;
private ButtonGroup ce_group;
public taille_su(JFrame une_frame, JTextField un_tfield, ButtonGroup group){
this.cette_frame = une_frame;
this.ce_tfield = un_tfield;
this.ce_group = group;
}
public void actionPerformed(ActionEvent e){
this.cette_frame.dispose();
String valleur_taille = this.ce_tfield.getText();
if(this.ce_group.getSelection().getActionCommand()=="Grille randomisée"){
FenetreRndmGrille cette_fenetre = new FenetreRndmGrille(Integer.parseInt(valleur_taille));
cette_fenetre.RandomGrille();
}
else if(this.ce_group.getSelection().getActionCommand()=="Grille vide"){
FenetreVideGrille cette_fenetre = new FenetreVideGrille();
cette_fenetre.create_empty(Integer.parseInt(valleur_taille));
}
}
}