Commit 1bd44450 authored by Tristan MAISONNEUVE's avatar Tristan MAISONNEUVE
Browse files

Fenetre Connexion Commentaires part1

parent d343844b
......@@ -45,26 +45,26 @@ public class FenetreConnexion extends JFrame {
public FenetreConnexion(String titre){
super(titre);
JPanel principal = new JPanel(new BorderLayout());
JPanel principal = new JPanel(new BorderLayout()); // Création du panel principal qui regroupe tout les autres panel
this.setContentPane(principal);
JPanel north = new JPanel(new FlowLayout());
JLabel labelpseudo = new JLabel("Pseudo : ");
north.add(labelpseudo);
pseudo = new JTextField();
pseudo.setPreferredSize(new Dimension(100,30));
JPanel north = new JPanel(new FlowLayout()); //Création du panel North en Flow layout pour pouvoir centrer l'entré de pseudo
JLabel labelpseudo = new JLabel("Pseudo : "); //Création du label pseudo
north.add(labelpseudo); // ajout du label pseudo au panel north
pseudo = new JTextField(); //Création d'un JTextField pour pouvoir rentrer le pseudo
pseudo.setPreferredSize(new Dimension(100,30)); //On set une pprefered size pour pouvoir bien voir le TextField
north.add(pseudo);
north.add(pseudo); //on ajoute le textfield pseudo au panel north
//north.add(envoyepseudo);
principal.add(north,BorderLayout.NORTH);
principal.add(north,BorderLayout.NORTH); //On ajoute le panel north au panel principal
JPanel grille = new JPanel();
grille.setLayout(new GridLayout(11,11));
grille.setLayout(new GridLayout(11,11)); //On crée le Panel grille qui va nous servir pour la grille de bataille navale
for (int i = 0; i < 11; i++) {
for (int i = 0; i < 11; i++) { //Création de la première ligne de la grille avec une boucle for de 11 occurences.
String[] lettres = {" ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
final JLabel labellettre = new JLabel(lettres[i], SwingConstants.CENTER);
labellettre.setBorder(BorderFactory.createLineBorder(Color.BLACK));
labellettre.setBorder(BorderFactory.createLineBorder(Color.BLACK)); //Remplissage et création des JLabels en fonction de i.
grille.add(labellettre);
}
......@@ -74,97 +74,96 @@ public class FenetreConnexion extends JFrame {
int chiffre = 1;
char lettre = 'A';
final String[] co = new String[2];
Bouttons[] bouttons = new Bouttons[100];
for (int i = 0; i < (11 * 10); i++) {
String[] nombres = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
if (i % 11 == 0) {
final JLabel labelchiffres = new JLabel(nombres[j], SwingConstants.CENTER);
labelchiffres.setBorder(BorderFactory.createLineBorder(Color.BLACK));
grille.add(labelchiffres);
Bouttons[] bouttons = new Bouttons[100]; //Initialisations d'une liste de Bouttons, les objets Bouttons
//contiennent un JButton et un String pour décrire le coordonnées.
for (int i = 0; i < (11 * 10); i++) { //Boucle for avec 110 occurences pour remplir le reste du tableaux
String[] nombres = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}; //Init du tableaux pour la partie gauche de la grille
if (i % 11 == 0) { //si i modulo 11 est égal à 0 alors ca veut dire qu'on est retourné sur la première colonne.
final JLabel labelchiffres = new JLabel(nombres[j], SwingConstants.CENTER); //Alors on crée un Jlabel contenant un chiffre de la listes nombres.
labelchiffres.setBorder(BorderFactory.createLineBorder(Color.BLACK)); //On set une border pour chaque label pour bien séparer les colonne/lignes.
grille.add(labelchiffres); //on ajoute le JLabel tout juste crée au panel Grille
j++;
} else {
if (i % 11 == 1) {
} else { //Si i n'est pas modulo 11 cela veut dire qu'on est dans la partie jouable de la grille.
if (i % 11 == 1) { //donc si i modulo 11 est égal à 1 cela veut dire que nous somme sur la colonne de droite, donc nous allons réinitialiser le tableaux lettre à la lettre A
lettre = 'A';
if (i != 1)
chiffre++;
chiffre++; //si i !=1 alors on ajoute aussi un chiffre car on change de ligne, si on ne met pas cette conditions la boucle viendra des la première ligne passer à 2.
}
final Bouttons boutton = new Bouttons(new JButton(), lettre + String.valueOf(chiffre));
boutton.getButton().setBackground(Color.WHITE);
boutton.getButton().setEnabled(false);
bouttons[o] = boutton;
final Bouttons boutton = new Bouttons(new JButton(), lettre + String.valueOf(chiffre)); //Maintenant on crée un Bouttons avec un new JButton et une concaténation de la lettre de la colonne plus de l'int de ligne.
boutton.getButton().setBackground(Color.WHITE); //On fait en sorte que le JButton qu'on à assigné au Bouttons est blanc pour l'esthétique
boutton.getButton().setEnabled(false); //On fait en sorte que le bouton soit désactiver quand il est créé.
bouttons[o] = boutton; //On fait en sorte que le Bouttons qu'on vient de créé soit ajouter à notre liste de Bouttons.
o++;
boutton.getButton().setBorder(BorderFactory.createLineBorder(Color.BLACK));
boutton.getButton().addActionListener(new ActionListener() {
boutton.getButton().setBorder(BorderFactory.createLineBorder(Color.BLACK)); //On set les Border en noir
boutton.getButton().addActionListener(new ActionListener() { //On créé l'action Listener qui va nous permettre de créer nos bateaux.
@Override
public void actionPerformed(ActionEvent e) {
if(co[0]==null){
co[0]=boutton.getString();
boutton.getButton().setBackground(Color.LIGHT_GRAY);
} else {
co[1] = boutton.getString();
final CreationB c = new CreationB(co[0],co[1],pays);
try {if(c.TestCreation()!=null){
if(flotte.add(c.TestCreation())==0){
c.TestCreation().gettheCategory();
ShipCategory s = c.TestCreation().gettheCategory();
if(co[0]==null){ //Si quand on clique sur un Boutton et que co[0] est null alors c'est la première coordonées d'un bateaux
co[0]=boutton.getString(); // Donc on fait en sorte que la string de la coordonéé du bouton sur lequel on a cliqué soit assigné à co[0]
boutton.getButton().setBackground(Color.LIGHT_GRAY); // On colore le bouton en gris pour faire en sorte de se répérer sur la grille
} else { // Si co[0] n'est pas null alors cela veut dire que l'utilisateur clique pour la deuxième fois.].
co[1] = boutton.getString(); //donc on assigne les coordonées du deuxième click à co[1
final CreationB c = new CreationB(co[0],co[1],pays); //à partir de la on crée une classe qui va nous permettre de tester la taille des coordonées por créer le bon bateau.
try {if(c.TestCreation()!=null){ //Si le résultat du return de test création n'est pas null
if(flotte.add(c.TestCreation())==0){ //Si le résultat du Test Création est 0 alors le bateaux a bien été ajouté.
ShipCategory s = c.TestCreation().gettheCategory(); //Maintenant on récupère la catégorie du Bateau qu'on vient de créer
if(s==ShipCategory.SUBMARINE){
pays[0]--;
} if (s==ShipCategory.DESTROYER) {
pays[1]--;
} if (s==ShipCategory.CRUISER) {
pays[2]--;
} if (s==ShipCategory.CRUISER) { //Ici on va faire en sorte que notre liste de bateaux décrémente en fonction du type de bateaux qu'on a créé
pays[2]--; //C'est très important pour compter le nombre de bateaux restant pour l'utilisateurs.
} if (s==ShipCategory.BATTLESHIP) {
pays[3]--;
} if (s==ShipCategory.AIRCRAFT_CARRIER) {
pays[4]--;
}
System.out.println(Arrays.toString(pays));
System.out.println(flotte.getShips());
List<ICoord> listec = c.TestCreation().getCoords();
final Color randomColor = new Color((int)(Math.random() * (255-50)),(int)(Math.random() * (255-50)),(int)(Math.random() * (255-50)));
for(int i=0;i<100;i++){
if(listec.contains(new Coord(bouttons[i].getString()))){
bouttons[i].getButton().setBackground(randomColor);
bouttons[i].getButton().setEnabled(false);
System.out.println(Arrays.toString(pays)); //On print à l'utilisateur ce qui lui reste comme Bateau
System.out.println(flotte.getShips()); //On print à l'utilisateur sa flotte.
List<ICoord> listec = c.TestCreation().getCoords(); //on créé une liste de coordonée qui va récup les coordonées du bateaux qu'on vient de créer
final Color randomColor = new Color((int)(Math.random() * (255-50)),(int)(Math.random() * (255-50)),(int)(Math.random() * (255-50))); //on initialise une couleur rgb aléatoire.
for(int i=0;i<100;i++){ //On fait un parcours de la liste de boutons pour savoir ou il faut colorer les cases correspondant au bateau qu'on a créé.
if(listec.contains(new Coord(bouttons[i].getString()))){ //on vérifie si le bouton sur lequel on est correspond à un de ceux de la liste de coordonées du bateaux.
bouttons[i].getButton().setBackground(randomColor); //maintenant on fait en sorte que le bateau soit de la couleur aléatoire initialisé plus tôt
bouttons[i].getButton().setEnabled(false); // Maintenant on désactive les bouttons sur lesquels sont positionnés les bateaux.
}
}
} else if(flotte.add(c.TestCreation())==-2) {
JOptionPane.showMessageDialog(null, "Flotte déja pleine");
for(int i=0;i<100;i++){
} else if(flotte.add(c.TestCreation())==-2) { //Si le résultat de la création du bateaux est -2 cela signigie qu'on dépasse le seuil de case pour la flotte.
JOptionPane.showMessageDialog(null, "Flotte déja pleine"); // donc on fait apparaitre un pop-up
for(int i=0;i<100;i++){ //On fait un parcours de la liste de boutons pour pouvoir remettre une couleur blanche sur le premier bouton sur lequel on a cliqué
if(bouttons[i].getString().equals(co[0])){
bouttons[i].getButton().setBackground(Color.WHITE);
}
}
}else{
}else{ //si la réponse est autre que 0 ou -2 alors cela veut dire que le bateaux qu'on a créé chevauche un autre bateaux déja créé.
JOptionPane.showMessageDialog(null, "les bateux ne doivent pas se chevaucher");
for(int i=0;i<100;i++){
if(bouttons[i].getString().equals(co[0])){
bouttons[i].getButton().setBackground(Color.WHITE);
}
for(int i=0;i<100;i++){ //On fait un parcours de la liste
if(bouttons[i].getString().equals(co[0])){ //de boutons pour pouvoir remettre une
bouttons[i].getButton().setBackground(Color.WHITE); //couleur blanche sur le premier bouton sur lequel
} // on a cliqué.
}
}
} else {
} else { //Ce else réfere au moment où l'utilisateur essaye de créer un bateaux en diagonale.
for(int i=0;i<100;i++){
if(bouttons[i].getString().equals(co[0])){
bouttons[i].getButton().setBackground(Color.WHITE);
}
}
co[0]=null;
co[0]=null; // on réinitialise la première coordonée.
}
} catch (CoordsBadShipException coordsBadShipException) {coordsBadShipException.printStackTrace();} catch (BadCoordException badCoordException) {badCoordException.printStackTrace();}
co[0]=null;
co[0]=null; //ici on réinitialise les deux coordonées après avoir créé un bateaux.
co[1]=null;
}
}
});
grille.add(boutton.getButton());
grille.add(boutton.getButton()); // On ajoute le JButton de notre bouttons a la grille
}
lettre++;
lettre++; // on incrémente la lettre a chaque changement de colonne.
}
principal.add(grille,BorderLayout.CENTER);
principal.add(grille,BorderLayout.CENTER); //On ajoute notre grille de bataille navale à notre Panel.
JPanel bas = new JPanel(new BorderLayout());
JPanel bas2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
......
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