diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..fc13218
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..5b21cf5
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ hexagone
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3a21537
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/bin/bd/DB.class b/bin/bd/DB.class
new file mode 100644
index 0000000..ba9ccd6
Binary files /dev/null and b/bin/bd/DB.class differ
diff --git a/bin/hexagone/Accueil$1.class b/bin/hexagone/Accueil$1.class
new file mode 100644
index 0000000..2d86fbe
Binary files /dev/null and b/bin/hexagone/Accueil$1.class differ
diff --git a/bin/hexagone/Accueil$10.class b/bin/hexagone/Accueil$10.class
new file mode 100644
index 0000000..1ef3e92
Binary files /dev/null and b/bin/hexagone/Accueil$10.class differ
diff --git a/bin/hexagone/Accueil$2.class b/bin/hexagone/Accueil$2.class
new file mode 100644
index 0000000..0768311
Binary files /dev/null and b/bin/hexagone/Accueil$2.class differ
diff --git a/bin/hexagone/Accueil$3.class b/bin/hexagone/Accueil$3.class
new file mode 100644
index 0000000..2985e56
Binary files /dev/null and b/bin/hexagone/Accueil$3.class differ
diff --git a/bin/hexagone/Accueil$4.class b/bin/hexagone/Accueil$4.class
new file mode 100644
index 0000000..feeac6d
Binary files /dev/null and b/bin/hexagone/Accueil$4.class differ
diff --git a/bin/hexagone/Accueil$5.class b/bin/hexagone/Accueil$5.class
new file mode 100644
index 0000000..0b33f28
Binary files /dev/null and b/bin/hexagone/Accueil$5.class differ
diff --git a/bin/hexagone/Accueil$6.class b/bin/hexagone/Accueil$6.class
new file mode 100644
index 0000000..0cd0da0
Binary files /dev/null and b/bin/hexagone/Accueil$6.class differ
diff --git a/bin/hexagone/Accueil$7.class b/bin/hexagone/Accueil$7.class
new file mode 100644
index 0000000..19b7283
Binary files /dev/null and b/bin/hexagone/Accueil$7.class differ
diff --git a/bin/hexagone/Accueil$8.class b/bin/hexagone/Accueil$8.class
new file mode 100644
index 0000000..ec80074
Binary files /dev/null and b/bin/hexagone/Accueil$8.class differ
diff --git a/bin/hexagone/Accueil$9.class b/bin/hexagone/Accueil$9.class
new file mode 100644
index 0000000..7ed1807
Binary files /dev/null and b/bin/hexagone/Accueil$9.class differ
diff --git a/bin/hexagone/Accueil.class b/bin/hexagone/Accueil.class
new file mode 100644
index 0000000..efd1301
Binary files /dev/null and b/bin/hexagone/Accueil.class differ
diff --git a/bin/hexagone/AlgoJeu.class b/bin/hexagone/AlgoJeu.class
new file mode 100644
index 0000000..582ad0c
Binary files /dev/null and b/bin/hexagone/AlgoJeu.class differ
diff --git a/bin/hexagone/EtatJeu.class b/bin/hexagone/EtatJeu.class
new file mode 100644
index 0000000..a764be0
Binary files /dev/null and b/bin/hexagone/EtatJeu.class differ
diff --git a/bin/hexagone/Hexagone.class b/bin/hexagone/Hexagone.class
new file mode 100644
index 0000000..52c9324
Binary files /dev/null and b/bin/hexagone/Hexagone.class differ
diff --git a/bin/hexagone/Joueur.class b/bin/hexagone/Joueur.class
new file mode 100644
index 0000000..e475d51
Binary files /dev/null and b/bin/hexagone/Joueur.class differ
diff --git a/bin/hexagone/Logowithname.png b/bin/hexagone/Logowithname.png
new file mode 100644
index 0000000..dc9a8f4
Binary files /dev/null and b/bin/hexagone/Logowithname.png differ
diff --git a/bin/hexagone/Parametre.class b/bin/hexagone/Parametre.class
new file mode 100644
index 0000000..64aa41d
Binary files /dev/null and b/bin/hexagone/Parametre.class differ
diff --git a/bin/hexagone/Plateau.class b/bin/hexagone/Plateau.class
new file mode 100644
index 0000000..02b8f1f
Binary files /dev/null and b/bin/hexagone/Plateau.class differ
diff --git a/bin/hexagone/cursor.png b/bin/hexagone/cursor.png
new file mode 100644
index 0000000..9d33616
Binary files /dev/null and b/bin/hexagone/cursor.png differ
diff --git a/bin/hexagone/iconBleu.png b/bin/hexagone/iconBleu.png
new file mode 100644
index 0000000..c938457
Binary files /dev/null and b/bin/hexagone/iconBleu.png differ
diff --git a/bin/hexagone/iconNoir.png b/bin/hexagone/iconNoir.png
new file mode 100644
index 0000000..f83bd4a
Binary files /dev/null and b/bin/hexagone/iconNoir.png differ
diff --git a/bin/hexagone/iconRouge.png b/bin/hexagone/iconRouge.png
new file mode 100644
index 0000000..cb2bd62
Binary files /dev/null and b/bin/hexagone/iconRouge.png differ
diff --git a/bin/hexagone/iconVert.png b/bin/hexagone/iconVert.png
new file mode 100644
index 0000000..7c85063
Binary files /dev/null and b/bin/hexagone/iconVert.png differ
diff --git a/bin/hexagone/logo.png b/bin/hexagone/logo.png
new file mode 100644
index 0000000..7e05a34
Binary files /dev/null and b/bin/hexagone/logo.png differ
diff --git a/src/bd/DB.java b/src/bd/DB.java
new file mode 100644
index 0000000..4f9adac
--- /dev/null
+++ b/src/bd/DB.java
@@ -0,0 +1,226 @@
+package bd;
+
+import hexagone.Joueur;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.Date;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Time;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.JOptionPane;
+
+public class DB {
+
+ private static Connection conn;
+ String url = "jdbc:mysql://localhost:3306/hexagone";
+
+ public DB() throws SQLException {
+ this.conn = DriverManager.getConnection(url, "root", "");
+ }
+
+ public void insert_Joueur(int num, String nom, int score, int perdu,
+ int actif, int idPartie) {
+
+ PreparedStatement ps;
+ try {
+ ps = (PreparedStatement) conn
+ .prepareStatement("INSERT INTO `hexagone`.`joueur` (`id`, `num`, `nom`, `score`, `perdu`, `actif`,`idPartie`) "
+ + "VALUES (?, ?, ?, ?, ?, ?,?)");
+ ps.setString(1, null);
+ ps.setInt(2, num);
+ ps.setString(3, nom);
+ ps.setInt(4, score);
+ ps.setInt(5, perdu);
+ ps.setInt(6, actif);
+ ps.setInt(7, idPartie);
+
+ ps.executeUpdate();
+
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ public ResultSet getScore() {
+
+ Statement statement;
+ ResultSet resultats = null;
+ try {
+ statement = (Statement) conn.createStatement(
+ ResultSet.TYPE_SCROLL_INSENSITIVE,
+ ResultSet.CONCUR_READ_ONLY);
+ resultats = statement
+ .executeQuery("SELECT * FROM `joueur` ORDER BY `score` DESC Limit 0 , 5");
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return resultats;
+
+ }
+
+ public int getIdPartie() {
+
+ int id = 0;
+
+ Statement statement;
+ ResultSet resultats = null;
+ try {
+ statement = (Statement) conn.createStatement(
+ ResultSet.TYPE_SCROLL_INSENSITIVE,
+ ResultSet.CONCUR_READ_ONLY);
+ resultats = statement
+ .executeQuery("SELECT * FROM `partie` ORDER BY `datesave` DESC Limit 0 , 1");
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ try {
+ while (resultats.next()) {
+ id = resultats.getInt(1);
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return id;
+ }
+
+
+ public ResultSet getPartie() {
+
+ int id = 0;
+
+ Statement statement;
+ ResultSet resultats = null;
+ try {
+ statement = (Statement) conn.createStatement(
+ ResultSet.TYPE_SCROLL_INSENSITIVE,
+ ResultSet.CONCUR_READ_ONLY);
+ resultats = statement
+ .executeQuery("SELECT * FROM `partie` ORDER BY `datesave` DESC Limit 0 , 1");
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return resultats;
+ }
+
+
+ public ResultSet getJoueurs() {
+
+ int id = 0;
+
+ Statement statement;
+ ResultSet resultats = null;
+ try {
+ statement = (Statement) conn.createStatement(
+ ResultSet.TYPE_SCROLL_INSENSITIVE,
+ ResultSet.CONCUR_READ_ONLY);
+ resultats = statement
+ .executeQuery("SELECT * FROM `joueur` where `idPartie`="+this.getIdPartie()
+ + "");
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return resultats;
+ }
+
+ public ResultSet getHexagons() {
+
+ int id = 0;
+
+ Statement statement;
+ ResultSet resultats = null;
+ try {
+ statement = (Statement) conn.createStatement(
+ ResultSet.TYPE_SCROLL_INSENSITIVE,
+ ResultSet.CONCUR_READ_ONLY);
+ resultats = statement
+ .executeQuery("SELECT * FROM `hexagon` where `idPartie`="+this.getIdPartie()
+ + "");
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return resultats;
+ }
+
+ public void insert_Partie(int longjeu, int nbjoueur, int nbclick,
+ int ptclickX, int ptclickY, int iteration, int nbhexagone) {
+
+ PreparedStatement ps;
+ try {
+ ps = (PreparedStatement) conn
+ .prepareStatement("INSERT INTO `partie`(`id`, `datesave`, `longjeu`, `nbjoueur`, `nbclick`, "
+ + "`ptclickX`, `ptclickY`, `iteration`, `nbhexagone`) "
+ + "VALUES (?, ?, ?, ?, ?, ?,?,?,?)");
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Calendar cal = Calendar.getInstance();
+
+ ps.setString(1, null);
+ ps.setString(2, dateFormat.format(cal.getTime()));
+ ps.setInt(3, longjeu);
+ ps.setInt(4, nbjoueur);
+ ps.setInt(5, nbclick);
+ ps.setInt(6, ptclickX);
+ ps.setInt(7, ptclickY);
+ ps.setInt(8, iteration);
+ ps.setInt(9, nbhexagone);
+
+ ps.executeUpdate();
+
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ }
+
+ public void insert_Hexagone(int cenrtreX, int centreY, int couleur, int numjoueur,
+ int radius, int col, int row, int rotation, int sides, int idPartie) {
+
+ PreparedStatement ps;
+ try {
+ ps = (PreparedStatement) conn
+ .prepareStatement("INSERT INTO `hexagon`(`id` ,`cenrtreX`, `centreY`,`couleur`, `numjoueur`, "
+ + "`radius`, `col`, `row`, `rotation`, `sides`, `idPartie`) "
+ + "VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?)");
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Calendar cal = Calendar.getInstance();
+ Date date = new Date(0);
+
+ ps.setString(1, null);
+ ps.setInt(2, cenrtreX);
+ ps.setInt(3, centreY);
+ ps.setInt(4, couleur);
+ ps.setInt(5, numjoueur);
+ ps.setInt(6, radius);
+ ps.setInt(7, col);
+ ps.setInt(8, row);
+ ps.setInt(9, rotation);
+ ps.setInt(10, sides);
+ ps.setInt(11, idPartie);
+
+ ps.executeUpdate();
+
+ } catch (SQLException ex) {
+ Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ }
+
+
+
+
+}
diff --git a/src/hexagone/Accueil.java b/src/hexagone/Accueil.java
new file mode 100644
index 0000000..ee0fe7b
--- /dev/null
+++ b/src/hexagone/Accueil.java
@@ -0,0 +1,1533 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package hexagone;
+
+import java.awt.Color;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.Point;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseEvent;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import javax.swing.BorderFactory;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.border.Border;
+
+import bd.DB;
+
+
+
+
+
+public class Accueil extends javax.swing.JFrame {
+ public Joueur [] JOUEUR = new Joueur[4];
+ public static Plateau p;
+ public static int jaune = 0xeaf111; // on utilise cette variabele lors de l'appel de saut d'une case
+ public static JPanel jeu;
+ public static AlgoJeu j;
+ public static int iteration = 0;
+
+
+ public static int iterationInitialisation=0;
+ public static int iterationPrecedente = 0; // utiliser dans le cas de 4 joueur
+ public static int nbHexagone = 0;
+ public static int nbClick = 0;// pour memoriser le nombre de click du joueur
+ public static Point ptClick = new Point(-1, -1);// la premiere point cliqué
+ // par le joueur
+
+ public static int longJeu = 5;
+ public static int nbJoueur = 1;
+ public static boolean jeuTermine =false;
+ public int x = 0, y = 0;
+
+ boolean reprendreJeuSauvgarde=false;
+
+ Joueur j1 = new Joueur();
+ Joueur j2 = new Joueur();
+ Joueur j3 = new Joueur();
+ Joueur j4 = new Joueur();
+
+
+ /**
+ * Creates new form NewJFrame
+ */
+ public Accueil() {
+ initComponents();
+ this.setTitle("Hexagone");
+ this.setResizable(false);
+ this.setLocation(new Point(200,100));
+ this.setSize(new Dimension(500,370));
+ }
+
+
+ @SuppressWarnings("unchecked")
+ //
+ private void initComponents() {
+
+
+ barMenu = new javax.swing.JMenuBar();
+ jeuMenu = new javax.swing.JMenu();
+ reprendre = new javax.swing.JMenu();
+ reprendreDernierePartie= new javax.swing.JMenu();
+ sauvegarder = new javax.swing.JMenu();
+ quitter = new javax.swing.JMenu();
+ score = new javax.swing.JMenu();
+
+
+ scoreMenu1= new javax.swing.JMenu();
+ scoreMenuItem1= new javax.swing.JMenuItem();
+ scoreMenu2= new javax.swing.JMenu();
+ scoreMenuItem2= new javax.swing.JMenuItem();
+ scoreMenu3= new javax.swing.JMenu();
+ scoreMenuItem3= new javax.swing.JMenuItem();
+ scoreMenu4= new javax.swing.JMenu();
+ scoreMenuItem4= new javax.swing.JMenuItem();
+ scoreMenu5= new javax.swing.JMenu();
+ scoreMenuItem5= new javax.swing.JMenuItem();
+
+ logoLabel = new javax.swing.JLabel();
+ jouer = new javax.swing.JButton();
+ lesJoueurs = new javax.swing.JPanel();
+ psJoueur1Label = new javax.swing.JLabel();
+ psJoueur3Label = new javax.swing.JLabel();
+ psJoueur2Label = new javax.swing.JLabel();
+ joueur1 = new javax.swing.JTextField();
+ joueur2 = new javax.swing.JTextField();
+ joueur3 = new javax.swing.JTextField();
+ ParametreJeu = new javax.swing.JPanel();
+ nbJoeurLabel = new javax.swing.JLabel();
+ longJeuLabel = new javax.swing.JLabel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ nbjoueur = new javax.swing.JList();
+ longjeu = new javax.swing.JTextField();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+
+ logoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource(
+ "Logowithname.png")));
+
+ jouer.setText("Saisir");
+ jouer.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jouerActionPerformed(evt);
+ }
+ });
+
+ psJoueur1Label.setText("Psoeudo joueur1");
+
+ psJoueur3Label.setText("Psoeudo joueur3");
+
+ psJoueur2Label.setText("Psoeudo joueur2");
+
+ joueur1.setText("");
+
+ joueur2.setText("");
+
+ joueur3.setText("");
+
+
+ javax.swing.GroupLayout lesJoueursLayout = new javax.swing.GroupLayout(
+ lesJoueurs);
+ lesJoueurs.setLayout(lesJoueursLayout);
+ lesJoueurs.setVisible(false);
+ lesJoueursLayout
+ .setHorizontalGroup(lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ lesJoueursLayout
+ .createSequentialGroup()
+ .addGap(19, 19, 19)
+ .addGroup(
+ lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING,
+ false)
+ .addComponent(
+ psJoueur3Label,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addComponent(
+ psJoueur1Label,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 84,
+ Short.MAX_VALUE)
+ .addComponent(
+ psJoueur2Label,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE))
+ .addPreferredGap(
+ javax.swing.LayoutStyle.ComponentPlacement.RELATED,
+ 40, Short.MAX_VALUE)
+ .addGroup(
+ lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING,
+ false)
+ .addComponent(
+ joueur2,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 140,
+ Short.MAX_VALUE)
+ .addComponent(
+ joueur3,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 140,
+ Short.MAX_VALUE)
+ .addComponent(
+ joueur1,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 140,
+ Short.MAX_VALUE))
+ .addGap(30, 30, 30)));
+ lesJoueursLayout
+ .setVerticalGroup(lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ lesJoueursLayout
+ .createSequentialGroup()
+ .addGroup(
+ lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(
+ psJoueur1Label,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 27,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ joueur1,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18, 18)
+ .addGroup(
+ lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(
+ psJoueur2Label,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 27,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ joueur2,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18, 18)
+ .addGroup(
+ lesJoueursLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(
+ psJoueur3Label,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 27,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ joueur3,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(14, Short.MAX_VALUE)));
+
+ nbJoeurLabel.setText("Nombre de joueur");
+
+ longJeuLabel.setText("longueur de jeu");
+
+ nbjoueur.setModel(new javax.swing.AbstractListModel() {
+ String[] strings = { "Humain vs Ord", "Humain vs Humain",
+ "3 Humains + Ord" };
+
+ public int getSize() {
+ return strings.length;
+ }
+
+ public Object getElementAt(int i) {
+ return strings[i];
+ }
+ });
+ jScrollPane2.setViewportView(nbjoueur);
+
+ javax.swing.GroupLayout ParametreJeuLayout = new javax.swing.GroupLayout(
+ ParametreJeu);
+ ParametreJeu.setLayout(ParametreJeuLayout);
+ ParametreJeuLayout
+ .setHorizontalGroup(ParametreJeuLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ ParametreJeuLayout
+ .createSequentialGroup()
+ .addContainerGap(
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addGroup(
+ ParametreJeuLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING,
+ false)
+ .addComponent(
+ longJeuLabel,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addComponent(
+ nbJoeurLabel,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 106,
+ Short.MAX_VALUE))
+ .addGap(28, 28, 28)
+ .addGroup(
+ ParametreJeuLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(
+ longjeu,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 140,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ jScrollPane2,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 140,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(31, Short.MAX_VALUE)));
+ ParametreJeuLayout
+ .setVerticalGroup(ParametreJeuLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ ParametreJeuLayout
+ .createSequentialGroup()
+ .addContainerGap()
+ .addGroup(
+ ParametreJeuLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(
+ nbJoeurLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 33,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ jScrollPane2,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 23,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18, 18)
+ .addGroup(
+ ParametreJeuLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(
+ longJeuLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 27,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ longjeu,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)));
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
+ getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(layout
+ .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ layout.createSequentialGroup()
+ .addGap(42, 42, 42)
+ .addGroup(
+ layout.createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(logoLabel)
+ .addGroup(
+ layout.createSequentialGroup()
+ .addGroup(
+ layout.createParallelGroup(
+ javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(
+ ParametreJeu,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(
+ lesJoueurs,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18,
+ 18)
+ .addComponent(
+ jouer,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 87,
+ javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addContainerGap(25, Short.MAX_VALUE)));
+ layout.setVerticalGroup(layout
+ .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ layout.createSequentialGroup()
+ .addGap(17, 17, 17)
+ .addComponent(logoLabel)
+ .addPreferredGap(
+ javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(ParametreJeu,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(
+ layout.createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ layout.createSequentialGroup()
+ .addComponent(
+ lesJoueurs,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(
+ 44,
+ Short.MAX_VALUE))
+ .addGroup(
+ javax.swing.GroupLayout.Alignment.TRAILING,
+ layout.createSequentialGroup()
+ .addComponent(
+ jouer,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 33,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(87, 87,
+ 87)))));
+
+
+
+
+
+ //menu barr***********************************
+
+
+
+
+
+
+
+ jeuMenu.setText("Jeu");
+
+ reprendre.setText("reprendre");
+ reprendre.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ reprendreMouseClicked(evt);
+ }
+ });
+
+
+ jeuMenu.add(reprendreDernierePartie);
+
+
+
+
+ reprendreDernierePartie.setText("reprendre Derniere Partie");
+ reprendreDernierePartie.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ try {
+ reprendreDernierePartieMouseClicked(evt);
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+
+
+ jeuMenu.add(reprendre);
+
+ sauvegarder.setText("Sauvegader Score");
+ sauvegarder.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ try {
+ sauvegarderMouseClicked(evt);
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ jeuMenu.add(sauvegarder);
+
+ quitter.setText("Quitter");
+ quitter.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ quitterMouseClicked(evt);
+ }
+ });
+ jeuMenu.add(quitter);
+
+ barMenu.add(jeuMenu);
+
+ score.setText("Meilleur Score");
+ score.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ try {
+ scoreMouseClicked(evt);
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+
+
+
+
+ barMenu.add(score);
+
+
+
+
+
+
+
+
+ pack();
+ }//
+
+
+
+
+ // les evennement
+
+
+ private void reprendreMouseClicked(java.awt.event.MouseEvent evt) {
+ iteration =1;
+
+
+ if (p.countComponents() > 0)
+ p.remove(0);
+
+ jeu.remove(p);
+ validate();
+ repaint();
+
+ p.add(j);
+ jeu.add(p);
+
+ revalidate();
+
+ }
+
+
+
+ private void reprendreDernierePartieMouseClicked(java.awt.event.MouseEvent evt) throws SQLException {
+
+ reprendreJeuSauvgarde=true;
+
+ if (iteration >1){
+
+ DB db = new DB();
+ ResultSet resultatJoueurs = db.getJoueurs();
+ ResultSet resultatHexagones = db.getHexagons();
+ ResultSet resultatPartie = db.getPartie();
+
+
+ while (resultatPartie.next()) {
+
+
+
+ // extraire les joueurs
+
+ longJeu=resultatPartie.getInt(3);
+ nbJoueur=resultatPartie.getInt(4);
+ this.nbClick=resultatPartie.getInt(5);
+ iteration=resultatPartie.getInt(8);
+ nbHexagone=resultatPartie.getInt(9);
+
+
+
+ //remplissage des joueurs
+
+
+
+
+ int ietration =1;
+ while(resultatJoueurs.next()){
+ if(nbJoueur==1){
+
+ if(iteration==1){
+
+
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(resultatJoueurs.getInt(2));
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j1.setScore(resultatJoueurs.getInt(4));
+ j1.setPsoeudo(resultatJoueurs.getString(3));
+
+ }
+ else
+ {
+
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(resultatJoueurs.getInt(2));
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j2.setScore(resultatJoueurs.getInt(4));
+ j2.setPsoeudo(resultatJoueurs.getString(3));
+ }
+
+ }
+ if(nbJoueur==2){
+ if(iteration==1){
+
+
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(resultatJoueurs.getInt(2));
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j1.setScore(resultatJoueurs.getInt(4));
+ j1.setPsoeudo(resultatJoueurs.getString(3));
+ }
+ else {
+
+ j2.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j2.setBackground(new java.awt.Color(255, 255, 255));
+ j2.setNum(resultatJoueurs.getInt(2));
+ j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j2.setScore(resultatJoueurs.getInt(4));
+ j2.setPsoeudo(resultatJoueurs.getString(3));
+ }
+
+
+ }
+ if(nbJoueur==3){
+
+ if(iteration==1){
+
+
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(resultatJoueurs.getInt(2));
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j1.setScore(resultatJoueurs.getInt(4));
+ j1.setPsoeudo(resultatJoueurs.getString(3));
+
+ }
+
+ if(iteration==2){
+
+
+ j2.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j2.setBackground(new java.awt.Color(255, 255, 255));
+ j2.setNum(resultatJoueurs.getInt(2));
+ j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+ j2.setScore(resultatJoueurs.getInt(4));
+ j2.setPsoeudo(resultatJoueurs.getString(3));
+ }
+
+ if(iteration==3){
+
+ j3.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j3.setBackground(new java.awt.Color(255, 255, 255));
+ j3.setNum(resultatJoueurs.getInt(2));
+ j3.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j3.setScore(resultatJoueurs.getInt(4));
+ j3.setPsoeudo(resultatJoueurs.getString(3));
+ j3.setVisible(true);
+ }
+
+ if(iteration==4){
+
+
+ j4.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j4.setBackground(new java.awt.Color(255, 255, 255));
+ j4.setNum(resultatJoueurs.getInt(2));
+ j4.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j4.setScore(resultatJoueurs.getInt(4));
+ j4.setPsoeudo(resultatJoueurs.getString(3));
+ j4.setVisible(true);
+
+ }
+
+
+ }
+
+ ietration++;
+
+
+ }
+
+
+ // extraire les hexagone et remplire les le tableau hexTab
+ while(resultatHexagones.next()){
+
+ }
+
+ }
+
+ }
+
+ }
+ private void sauvegarderMouseClicked(java.awt.event.MouseEvent evt) throws SQLException {
+ // TODO add your handling code here:
+ DB db = new DB();
+ int idPartie =db.getIdPartie();
+
+
+ if(nbJoueur ==1){
+ db.insert_Joueur(JOUEUR[0].getNum(), JOUEUR[0].getPsoeudo(), JOUEUR[0].getScore(),JOUEUR[0].getPerd(), JOUEUR[0].getActif(), idPartie);
+ db.insert_Joueur(JOUEUR[3].getNum(), JOUEUR[3].getPsoeudo(), JOUEUR[3].getScore(),JOUEUR[3].getPerd(), JOUEUR[3].getActif(), idPartie);
+
+ }
+ else if (nbJoueur ==2) {
+
+ db.insert_Joueur(JOUEUR[0].getNum(), JOUEUR[0].getPsoeudo(), JOUEUR[0].getScore(),JOUEUR[1].getPerd(), JOUEUR[0].getActif(), idPartie);
+ db.insert_Joueur(JOUEUR[1].getNum(), JOUEUR[1].getPsoeudo(), JOUEUR[1].getScore(),JOUEUR[1].getPerd(), JOUEUR[1].getActif(), idPartie);
+
+
+ }
+
+ else
+ {
+ for(int i =0 ; i <4 ; i++ ){
+
+ db.insert_Joueur(JOUEUR[i].getNum(), JOUEUR[i].getPsoeudo(), JOUEUR[i].getScore(),JOUEUR[i].getPerd(), JOUEUR[i].getActif(), idPartie);
+
+ }
+ }
+
+ db.insert_Partie( this.longJeu, this.nbJoueur , this.nbClick , (int)this.ptClick.getX() , (int)this.ptClick.getY() , this.iteration , this.nbHexagone);
+
+ // trouver dernier partie puis enregistrer les hexagone
+
+
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+
+ if (Plateau.hextab[i][j]!=null){
+ db.insert_Hexagone( Plateau.hextab[i][j].getPointCentre().x, Plateau.hextab[i][j].getPointCentre().y,Plateau.hextab[i][j].getCouleur() ,Plateau.hextab[i][j].getNumJoueur()
+ ,Plateau.hextab[i][j].getRadius() , j , i , Plateau.hextab[i][j].getRotation(),6,idPartie );
+
+ }
+ }
+ }
+
+
+
+ }
+
+ private void quitterMouseClicked(java.awt.event.MouseEvent evt) {
+ // TODO add your handling code here:
+ System.exit(0);
+
+ }
+
+ private void scoreMouseClicked(java.awt.event.MouseEvent evt) throws SQLException {
+
+
+ ResultSet resultats = null;
+ DB db = new DB();
+ resultats= db.getScore();
+
+ int i =1;
+ while (resultats.next()) {
+ String nomRes = resultats.getString(3);
+ int scoreRes = resultats.getInt(4);
+ if(i==1){
+
+
+ scoreMenuItem1.setText(""+scoreRes);
+ scoreMenu1.setText(nomRes);
+ scoreMenu1.add(scoreMenuItem1);
+ score.add(scoreMenu1);
+
+ }
+ if(i==2){
+
+
+ scoreMenuItem2.setText(""+scoreRes);
+ scoreMenu2.setText(nomRes);
+ scoreMenu2.add(scoreMenuItem1);
+ score.add(scoreMenu2);
+ }
+ if(i==3){
+
+
+ scoreMenuItem3.setText(""+scoreRes);
+ scoreMenu3.setText(nomRes);
+ scoreMenu3.add(scoreMenuItem3);
+ score.add(scoreMenu3);
+ }
+ if(i==4){
+
+
+ scoreMenuItem4.setText(""+scoreRes);
+ scoreMenu4.setText(nomRes);
+ scoreMenu4.add(scoreMenuItem4);
+ score.add(scoreMenu4);
+ }
+ if(i==5){
+
+
+ scoreMenuItem5.setText(""+scoreRes);
+ scoreMenu5.setText(nomRes);
+ scoreMenu5.add(scoreMenuItem5);
+ score.add(scoreMenu5);
+ }
+
+
+
+
+
+
+ i++;
+ }
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // changer le curseur du jeu
+ public void pmouseEntered(MouseEvent evt) {
+
+ Toolkit toolkit = Toolkit.getDefaultToolkit();
+ Image image = toolkit.getImage("cursor.png"); // le cursor peut etre
+ // personnaliser % au
+ // joueur actif
+ Cursor a = toolkit.createCustomCursor(image, new Point(this.getX(),
+ this.getY()), "");
+ this.setCursor(a);
+ }
+
+
+
+
+
+
+ // fonctionne qui organise le role du joueur
+
+ public void quiJoue1(MouseEvent evt, Joueur j1, Joueur j2) {
+
+
+ if (Accueil.nbHexagone != 0) {
+
+//
+ if(iteration>1){
+ nbClick++;
+ if(nbClick>2)nbClick=1;
+ if (nbClick == 1) {
+ ptClick.setLocation(
+ (int) p.dinstanceMinimale(evt.getPoint().x,
+ evt.getPoint().y).getX(),
+ (int) p.dinstanceMinimale(evt.getPoint().x,
+ evt.getPoint().y).getY());
+
+ if((int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getX()>=0&&(int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getY()>=0)
+ if (p.hextab[(int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getX()]
+ [(int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getY()].getNumJoueur() != j1.getNum())
+ {
+ nbClick--;//le test de la premiere click
+
+
+ }
+
+ }
+ if (nbClick == 2) {
+ Point newPoint = new Point(p.dinstanceMinimale(
+ evt.getPoint().x, evt.getPoint().y));
+ if ((int) newPoint.getX()>=0 && (int) newPoint.getY()>=0)
+ if (p.hextab[(int) newPoint.getX()][(int) newPoint.getY()]
+ .getNumJoueur() == 0) {
+//
+ if (p.saut(ptClick, newPoint) == true) {
+
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setNumJoueur(j1.getNum());
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setCouleur(j1.getCouleur());;
+
+ p.hextab[(int) ptClick.getX()][(int) ptClick.getY()]
+ .setNumJoueur(0);
+ p.hextab[(int) ptClick.getX()][(int) ptClick.getY()]
+ .setCouleur(jaune);
+
+
+ //j1.setScore(j1.getScore()+5);
+ iteration++;
+ iterationPrecedente=1;
+
+ p.mangePointVoisin(newPoint,j1);
+
+ //nbHexagone--;
+
+
+
+// if (nbHexagone != 0) {
+
+ if (nbHexagone != 0&&p.deplaceOrdi(j2)) {
+
+// Point pointOrd = p.caseOrdiIter1();
+//
+// p.hextab[pointOrd.x][pointOrd.y].setCouleur(j2.getCouleur());
+// j2.setScore(j2.getScore() + 5);
+
+ nbHexagone--;
+ }
+
+ j1.setScore(j1.getScore());
+ j2.setScore(j2.getScore());
+
+ }
+ if (p.clonage(ptClick, newPoint) == true) {
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setNumJoueur(j1.getNum());
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setCouleur(j1.getCouleur());
+
+ //j1.setScore(j1.getScore()+5);
+ p.mangePointVoisin(newPoint,j1);
+
+ iteration++;
+
+ iterationPrecedente=1;
+ nbHexagone--;
+
+ //if (nbHexagone != 0) {
+ if (nbHexagone != 0&&p.deplaceOrdi(j2)) {
+
+
+ nbHexagone--;
+ }
+
+ j1.setScore(j1.getScore());
+ j2.setScore(j2.getScore());
+ }
+ }
+ }
+
+
+
+ }
+ } else {// le cas ou tous les case sont pleine le jeu est terminer
+
+ JPanel fin = new JPanel();
+ fin.setBackground(new Color(200, 200, 0));
+ // fin.add();
+
+ this.setContentPane(jeu);
+
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ this.pack();
+ this.setLocationRelativeTo(null);
+ this.setVisible(true);
+ }
+
+ }
+
+
+
+ //humain vs Humain
+
+ public void quiJoue2(MouseEvent evt, Joueur j1, Joueur j2) {
+ if(p.testDeplace(j1)==false){iteration++;
+ if(this.nbJoueur==2)p.mangeTous(j2);
+
+ }
+
+ if(j1.getPerd()==0){
+
+ if (Accueil.nbHexagone != 0) {
+ if(iteration>1){
+ nbClick++;
+ if(nbClick>2)nbClick=1;
+ if (nbClick == 1) {
+ ptClick.setLocation(
+ (int) p.dinstanceMinimale(evt.getPoint().x,
+ evt.getPoint().y).getX(),
+ (int) p.dinstanceMinimale(evt.getPoint().x,
+ evt.getPoint().y).getY());
+
+ if (p.hextab[(int) p.dinstanceMinimale(evt.getPoint().x,
+ evt.getPoint().y).getX()][(int) p
+ .dinstanceMinimale(evt.getPoint().x,
+ evt.getPoint().y).getY()].getNumJoueur() != j1
+ .getNum()) {
+ nbClick--;//le test de la premiere click
+
+
+ }
+
+ }
+ if (nbClick == 2) {
+ Point newPoint = new Point(p.dinstanceMinimale(
+ evt.getPoint().x, evt.getPoint().y));
+ if ((int) newPoint.getX()>=0 && (int) newPoint.getY()>=0)
+ if (p.hextab[(int) newPoint.getX()][(int) newPoint.getY()]
+ .getNumJoueur() == 0) {
+//
+ if (p.saut(ptClick, newPoint) == true) {
+
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setNumJoueur(j1.getNum());
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setCouleur(j1.getCouleur());;
+
+ p.hextab[(int) ptClick.getX()][(int) ptClick.getY()]
+ .setNumJoueur(0);
+ p.hextab[(int) ptClick.getX()][(int) ptClick.getY()]
+ .setCouleur(jaune);
+ p.mangePointVoisin(newPoint,j1);
+
+
+
+ j1.setScore(j1.getScore());
+ j2.setScore(j2.getScore());
+
+ iteration++;
+ iterationPrecedente++;
+
+ }
+ if (p.clonage(ptClick, newPoint) == true) {
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setNumJoueur(j1.getNum());
+ p.hextab[(int) newPoint.getX()][(int) newPoint
+ .getY()].setCouleur(j1.getCouleur());
+
+ p.mangePointVoisin(newPoint,j1);
+
+ iteration++;
+ iterationPrecedente++;
+
+ nbHexagone--;
+ j1.setScore(j1.getScore());
+ j2.setScore(j2.getScore());
+ }
+ }
+ }
+ if(j1.getScore()==0){iteration++;
+
+ iterationPrecedente++;
+
+ j1.setPerd(1);
+ }
+
+
+ }
+ } else {// le cas ou tous les case sont pleine le jeu est terminer
+
+ JPanel fin = new JPanel();
+ fin.setBackground(new Color(200, 200, 0));
+ // fin.add();
+
+ this.setContentPane(jeu);
+
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ this.pack();
+ this.setLocationRelativeTo(null);
+ this.setVisible(true);
+ }
+ }
+ }
+
+
+
+
+ // position de la souris dans le plan
+ public void positionMouse(MouseEvent e) {
+
+ // longJeu--;
+
+ if (p.countComponents() > 0)
+ p.remove(0);
+
+ jeu.remove(p);
+ validate();
+ repaint();
+
+ p.add(j);
+ jeu.add(p);
+
+
+ }
+
+ private void jouerActionPerformed(java.awt.event.ActionEvent evt) {
+ if (longjeu.getText().length() > 0) {
+ int passe = 0; // passe c'est fait pour passer vers le jeu
+ if(Integer.parseInt(longjeu.getText()) < 8){
+ if (Integer.parseInt(longjeu.getText()) < 3)
+ longJeu = 3;
+ else
+ longJeu = Integer.parseInt(longjeu.getText());
+ //
+ if (nbjoueur.getSelectedIndex() == 1)
+ nbJoueur = 2;
+ if (nbjoueur.getSelectedIndex() == 2)
+ nbJoueur = 3;
+
+
+ jeu = new JPanel();
+ jeu.setPreferredSize(new Dimension(900, 700));
+
+ jouer.setText("jouer");
+
+ nbjoueur.disable();
+ longjeu.disable();
+
+ psJoueur2Label.setVisible(false);
+ joueur2.setVisible(false);
+ psJoueur3Label.setVisible(false);
+ joueur3.setVisible(false);
+
+ lesJoueurs.setVisible(true);
+
+
+ j1.setActif(1);//pou lui rendre le joueur actif numero 1
+ EtatJeu etat =new EtatJeu();
+ etat.setBackground(new Color(230,200,150));
+ JOUEUR[0]=j1;
+ JOUEUR[1]=j2;
+ JOUEUR[2]=j3;
+ JOUEUR[3]=j4;
+
+ // setvisible false dans la grille
+
+ // Plateau p = new Plateau();
+ p = new Plateau();
+ // p.getComponents();
+
+ j = new AlgoJeu();
+
+
+
+ j1.setScore(10);
+ j2.setScore(10);
+ j3.setScore(10);
+ j4.setScore(10);
+
+ // // pour changer le curseur
+ j.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ // lorsque l'utilisateur reprendre la derniere jeu sauvegareder
+
+ if (reprendreJeuSauvgarde==true){
+
+ }
+
+
+ if (iteration ==2){
+ j1.setScore(10);
+ j2.setScore(10);
+ j3.setScore(10);
+ j4.setScore(10);}
+
+ JOUEUR[0]=j1;
+ JOUEUR[1]=j2;
+ JOUEUR[2]=j3;
+ JOUEUR[3]=j4;
+
+ if (nbJoueur == 1){
+ iterationInitialisation=3;
+ quiJoue1(evt, j1, j2);
+
+
+
+ }
+
+ else if (nbJoueur == 2){
+
+ iterationInitialisation=3;
+
+ if(j1.getPerd()==1)quiJoue2(evt, j2, j1);
+ else if (j2.getPerd()==1)quiJoue2(evt, j1, j2);
+ else {
+ if(iteration %2==0)
+ quiJoue2(evt, j1, j2);
+ else quiJoue2(evt, j2, j1);
+ }
+ }
+
+ else{
+ iterationInitialisation=12;
+ if(iteration%3==1){
+
+ quiJoue1(evt, j1, j4);
+ j2.setBorder(BorderFactory.createEmptyBorder(0,10,10,10));
+
+// j2.setActif(1);
+// j1.setActif(0);
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+
+ }
+ else if (iteration%3==2){
+// j3.setActif(1);
+// j2.setActif(0);
+
+ quiJoue2(evt, j2, j1);
+ j3.setBorder(BorderFactory.createEmptyBorder(0,10,10,10));
+ j2.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+
+ }
+ else {
+
+ quiJoue2(evt, j3, j2);
+ j1.setBorder(BorderFactory.createEmptyBorder(0,10,10,10));
+// j1.setActif(1);
+// j3.setActif(0);
+ j3.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+
+
+ }
+
+
+ //quiJoue1(evt, j3, j4);
+
+ }
+ positionMouse(evt);
+
+ //pour terminer le jeu
+ int joueurGagne =etat.changeEtatJeu();
+ j1.setScore(j1.getScore());
+ j2.setScore(j2.getScore());
+ j3.setScore(j3.getScore());
+ j4.setScore(j4.getScore());
+
+ //afficher le gagnat du jeu
+
+
+ //afficher le gagnat du jeu
+
+ if (joueurGagne==0) {
+ int posMax=0;
+ for(int i =1 ; i <4 ; i++){
+ if(JOUEUR[i].getScore()>JOUEUR[posMax].getScore())
+ posMax=i;
+ }
+ etat.gangnatLabel.setText(JOUEUR[posMax].getPsoeudo() + ": gagne");
+ }
+ if (joueurGagne==1) etat.gangnatLabel.setText(j1.getPsoeudo() + ": gagne");
+ if (joueurGagne==2) etat.gangnatLabel.setText(j2.getPsoeudo() + ": gagne");
+ if (joueurGagne==3) etat.gangnatLabel.setText(j3.getPsoeudo() + ": gagne");
+ if (joueurGagne==4) etat.gangnatLabel.setText(j4.getPsoeudo() + ": gagne");
+
+ }
+ });
+
+ // pour changer le curseur
+ p.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ positionMouse(evt);
+
+ }
+ });
+ //
+ // j.refresh();
+
+ p.add(j);
+
+
+ // j.refresh();
+
+ p.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(
+ 255, 153, 0), 1, true));
+
+ if (nbJoueur == 1) {
+ if (joueur1.getText().length() > 0) {
+
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(1);
+ j1.setPsoeudo(joueur1.getText());
+
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j2.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j2.setBackground(new java.awt.Color(255, 255, 255));
+ j2.setNum(4);
+
+ j2.setPsoeudo("Ordinateur");
+
+ j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconNoir.png")));
+
+ jeu.add(logoLabel);
+ jeu.add(j1);
+ jeu.add(j2);
+
+ setJMenuBar(barMenu);
+ jeu.add(etat);
+ jeu.add(p);
+
+ this.setContentPane(jeu);
+
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ this.pack();
+ this.setLocationRelativeTo(null);
+ this.setVisible(true);
+ iteration++;
+
+ }
+
+ }
+
+ if (nbJoueur == 2) {
+
+ psJoueur2Label.setVisible(true);
+ joueur2.setVisible(true);
+
+ if (joueur2.getText().length() > 0
+ && joueur1.getText().length() > 0) {
+
+ passe = 1;
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(1);
+ j1.setPsoeudo(joueur1.getText());
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j2.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j2.setBackground(new java.awt.Color(255, 255, 255));
+ j2.setNum(2);
+ j2.setPsoeudo(joueur2.getText());
+ j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconBleu.png")));
+
+ jeu.add(logoLabel);
+ jeu.add(j1);
+ jeu.add(j2);
+
+ setJMenuBar(barMenu);
+ jeu.add(etat);
+ jeu.add(p);
+
+ this.setContentPane(jeu);
+
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ this.pack();
+ this.setLocationRelativeTo(null);
+ this.setVisible(true);
+ iteration++;
+
+ }
+
+ }
+
+ if (nbJoueur == 3) {
+
+ psJoueur2Label.setVisible(true);
+ joueur2.setVisible(true);
+ psJoueur3Label.setVisible(true);
+ joueur3.setVisible(true);
+
+ if (joueur1.getText().length() > 0
+ && joueur2.getText().length() > 0
+ && joueur3.getText().length() > 0) {
+
+ j1.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j1.setBackground(new java.awt.Color(255, 255, 255));
+ j1.setNum(1);
+ j1.setPsoeudo(joueur1.getText());
+ j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconVert.png")));
+
+ j2.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j2.setBackground(new java.awt.Color(255, 255, 255));
+ j2.setNum(2);
+ j2.setPsoeudo(joueur2.getText());
+ j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconBleu.png")));
+
+ j3.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j3.setBackground(new java.awt.Color(255, 255, 255));
+ j3.setNum(3);
+ j3.setPsoeudo(joueur3.getText());
+ j3.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconRouge.png")));
+
+ j4.setBorder(new javax.swing.border.LineBorder(
+ new java.awt.Color(255, 0, 255), 1, true));
+ j4.setBackground(new java.awt.Color(255, 255, 255));
+ j4.setNum(4);
+ j4.setPsoeudo("Ordianteur");
+ j4.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass()
+ .getResource("iconNoir.png")));
+
+ jeu.add(logoLabel);
+ jeu.add(j1);
+ jeu.add(j2);
+ jeu.add(j3);
+ jeu.add(j4);
+
+
+ setJMenuBar(barMenu);
+ jeu.add(etat);
+ jeu.add(p);
+
+ this.setContentPane(jeu);
+
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ this.pack();
+ this.setLocationRelativeTo(null);
+ this.setVisible(true);
+ iteration++;
+
+ }
+
+ }
+
+ }else {
+ longjeu.setText("saisir entier <=8 ");
+ longjeu.setBackground(new Color(255,0,0));
+ }
+ }
+
+ }
+
+ /**
+ * @param args
+ * the command line arguments
+ */
+ public static void main(String args[]) {
+
+ /* Set the Nimbus look and feel */
+ //
+ /*
+ * If Nimbus (introduced in Java SE 6) is not available, stay with the
+ * default look and feel. For details see
+ * http://download.oracle.com/javase
+ * /tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager
+ .getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(Accueil.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(Accueil.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(Accueil.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(Accueil.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new Accueil().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify
+ private javax.swing.JButton jouer;
+ private javax.swing.JLabel nbJoeurLabel;
+ private javax.swing.JLabel longJeuLabel;
+ private javax.swing.JLabel logoLabel;
+
+ private javax.swing.JLabel psJoueur1Label;
+ private javax.swing.JLabel psJoueur2Label;
+ private javax.swing.JLabel psJoueur3Label;
+
+ private javax.swing.JList nbjoueur;
+ private javax.swing.JPanel ParametreJeu;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JTextField longjeu;
+ private javax.swing.JTextField joueur1;
+ private javax.swing.JTextField joueur2;
+ private javax.swing.JTextField joueur3;
+ private javax.swing.JPanel lesJoueurs;
+ private javax.swing.JMenuBar barMenu;
+
+ private javax.swing.JMenu scoreMenu1;
+ private javax.swing.JMenuItem scoreMenuItem1;
+ private javax.swing.JMenu scoreMenu2;
+ private javax.swing.JMenuItem scoreMenuItem2;
+ private javax.swing.JMenu scoreMenu3;
+ private javax.swing.JMenuItem scoreMenuItem3;
+ private javax.swing.JMenu scoreMenu4;
+ private javax.swing.JMenuItem scoreMenuItem4;
+ private javax.swing.JMenu scoreMenu5;
+ private javax.swing.JMenuItem scoreMenuItem5;
+
+ private javax.swing.JMenu jeuMenu;
+ private javax.swing.JMenu quitter;
+ private javax.swing.JMenu reprendre;
+ private javax.swing.JMenu reprendreDernierePartie;
+ private javax.swing.JMenu sauvegarder;
+ private javax.swing.JMenu score;
+ // End of variables declaration
+}
diff --git a/src/hexagone/AlgoJeu.java b/src/hexagone/AlgoJeu.java
new file mode 100644
index 0000000..989cf97
--- /dev/null
+++ b/src/hexagone/AlgoJeu.java
@@ -0,0 +1,96 @@
+package hexagone;
+
+import java.awt.BasicStroke;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Event;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Point;
+import java.awt.Toolkit;
+import java.awt.event.MouseEvent;
+
+import javax.swing.JPanel;
+
+public class AlgoJeu extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+ private final int largeur = 800;
+ private final int haut = 700;
+ private int size = 15;
+
+ private Font font = new Font("Arial", Font.BOLD, 18);
+ FontMetrics metrics;
+
+ public AlgoJeu() {
+
+ // chaque joueur capable de deplacer un point de deux pas au maximum.
+ // lorsque il presse sur entrer alor le point ser fixe dans sa place.
+ // impossible de placer un point dans une case pleine/bloquée
+ // impossible de sortir de la grille
+ // à chaque point gangé le joueur gangne son score sera additionné avec
+ // 5.
+ // il pert sa partie lorsque il ne trouve pas un emplacement pour
+ // deplacé ses point
+
+ setPreferredSize(new Dimension(largeur, haut));
+ // this.setLocation(50,50);
+
+ }
+
+ public void refresh() {
+ removeAll();
+ revalidate();
+
+ // revalidate();
+ // repaint();
+
+ }
+
+ public void paintComponent(Graphics g) {
+ Graphics2D pl2d = (Graphics2D) g;
+ Point origin = new Point(largeur / 2, haut / 2);
+
+ pl2d.setStroke(new BasicStroke(4.0f, BasicStroke.CAP_SQUARE,
+ BasicStroke.JOIN_MITER));
+
+ metrics = g.getFontMetrics();
+
+ GridHexagone(pl2d, origin, Accueil.longJeu * 2 - 1, 15, 8);
+ }
+
+ private void GridHexagone(Graphics g, Point origin, int size, int radius,
+ int padding) {
+
+ for (int row = 0; row < size; row++) {
+ for (int col = 0; col < size; col++) {
+ if (Plateau.hextab[row][col] != null) {
+ if (Plateau.hextab[row][col].getStatut() == 0)
+ dessinerHexagone(g,
+ Plateau.hextab[row][col].getCouleur(),
+ (int) Plateau.hextab[row][col].getPointCentre()
+ .getX(), //
+ (int) Plateau.hextab[row][col].getPointCentre()
+ .getY(), //
+ radius);
+ // Plateau.hextab[row][col].setStatut(0);
+ }
+ }
+ }
+ }
+
+ private void dessinerHexagone(Graphics g, int couleur, int x, int y, int r) {
+ Graphics2D pl2d = (Graphics2D) g;
+
+ Hexagone hexagon = new Hexagone(x, y, r);
+ hexagon.draw(pl2d, x, y, 0, couleur, true); // ce couleur va être
+ // changer c'est le couleur
+ // du fond
+ hexagon.draw(pl2d, x, y, 5, 0xf111ee, false);
+
+ }
+
+}
diff --git a/src/hexagone/EtatJeu.java b/src/hexagone/EtatJeu.java
new file mode 100644
index 0000000..4f37232
--- /dev/null
+++ b/src/hexagone/EtatJeu.java
@@ -0,0 +1,171 @@
+package hexagone;
+
+import java.awt.Dimension;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+public class EtatJeu extends JPanel {
+
+ JLabel etatLabel;
+ JLabel etatJeuLabel;
+ JLabel gangnatLabel;
+
+ public EtatJeu() {
+
+ this.setPreferredSize(new Dimension(100, 112));
+ gangnatLabel = new javax.swing.JLabel();
+ etatLabel = new javax.swing.JLabel();
+ etatJeuLabel = new javax.swing.JLabel();
+
+ javax.swing.GroupLayout thisLayout = new javax.swing.GroupLayout(this);
+ this.setLayout(thisLayout);
+ thisLayout
+ .setHorizontalGroup(thisLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ thisLayout
+ .createSequentialGroup()
+ .addContainerGap()
+ .addGroup(
+ thisLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(
+ gangnatLabel,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addComponent(
+ etatJeuLabel,
+ javax.swing.GroupLayout.Alignment.TRAILING,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 80,
+ Short.MAX_VALUE)
+ .addComponent(
+ etatLabel,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 80,
+ Short.MAX_VALUE))
+ .addContainerGap()));
+ thisLayout
+ .setVerticalGroup(thisLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ thisLayout
+ .createSequentialGroup()
+ .addContainerGap(
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addComponent(
+ etatLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 24,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(
+ javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(
+ etatJeuLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 24,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(
+ javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(
+ gangnatLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 24,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(7, 7, 7)));
+
+ // setPreferredSize(new Dimension(40, 40));
+ etatLabel.setText(" etat de Jeu: ");
+ etatJeuLabel.setText(" En cours ");
+
+ }
+
+ public int changeEtatJeu() {
+ int nb0=0;
+ int nb1=0;
+ int nb2=0;
+ int nb3=0;
+ int nb4=0;
+ boolean termine=false;
+
+ if (Accueil.iteration >= 2) {
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (Plateau.hextab[i][j] != null) {
+ if(Plateau.hextab[i][j].getNumJoueur()==0) nb0++;
+ if(Plateau.hextab[i][j].getNumJoueur()==1) nb1++;
+ if(Plateau.hextab[i][j].getNumJoueur()==2) nb2++;
+ if(Plateau.hextab[i][j].getNumJoueur()==3) nb3++;
+ if(Plateau.hextab[i][j].getNumJoueur()==4) nb4++;
+
+ }
+ }
+ }
+ }
+
+ if(nb0==0)etatJeuLabel.setText(" Terminé ");
+ else{
+ gangnatLabel.setText("");
+ etatJeuLabel.setText(" En cours ");}
+ if(nb1!=0&&nb2==0&&nb3==0&&nb4==0){etatJeuLabel.setText(" Terminé "); termine=true;
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (Plateau.hextab[i][j] != null) {
+ Plateau.hextab[i][j].setNumJoueur(1);
+ Plateau.hextab[i][j].setCouleur(0x1df307);
+
+ }
+ }
+ }
+ return 1;
+ }
+ if(nb1==0&&nb2!=0&&nb3==0&&nb4==0){etatJeuLabel.setText(" Terminé "); termine=true;
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (Plateau.hextab[i][j] != null) {
+ Plateau.hextab[i][j].setNumJoueur(2);
+ Plateau.hextab[i][j].setCouleur(0x2d1fea);
+
+ }
+ }
+ }
+ return 2;
+ }
+ if(nb1==0&&nb2==0&&nb3!=0&&nb4==0){etatJeuLabel.setText(" Terminé "); termine=true;
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (Plateau.hextab[i][j] != null) {
+ Plateau.hextab[i][j].setNumJoueur(3);
+ Plateau.hextab[i][j].setCouleur(0xef8f82);
+
+ }
+ }
+ }
+
+ return 3;
+ }
+ if(nb1==0&&nb2==0&&nb3==0&&nb4!=0){etatJeuLabel.setText(" Terminé ");
+ termine=true;
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (Plateau.hextab[i][j] != null) {
+ Plateau.hextab[i][j].setNumJoueur(4);
+ Plateau.hextab[i][j].setCouleur(0x000000);
+
+ }
+ }
+ }
+ return 4;
+ }
+
+ return -1;
+
+ }
+
+}
diff --git a/src/hexagone/Hexagone.java b/src/hexagone/Hexagone.java
new file mode 100644
index 0000000..ecfe54f
--- /dev/null
+++ b/src/hexagone/Hexagone.java
@@ -0,0 +1,155 @@
+package hexagone;
+
+import java.awt.*;
+
+public class Hexagone extends Polygon {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final int sides = 6;
+
+ private Point[] points = new Point[sides];
+ private Point centre = new Point(0, 0);
+ private int radius;
+ private int rotation = 90;
+
+ ///
+ private int row = 0;//
+ private int col = 0;//
+ private int couleur = 0;//
+ private int numJoueur = 0;//
+
+
+ public void setNumJoueur(int numJoueur) {
+ this.numJoueur = numJoueur;
+ }
+
+ public int getNumJoueur() {
+ return this.numJoueur;
+ }
+
+ public void setCouleur(int Couleur) {
+ this.couleur = Couleur;
+ }
+
+ public int getCouleur() {
+ return this.couleur;
+ }
+
+ public void setRow(int row) {
+ this.row = row;
+ }
+
+ public int getRow() {
+ return this.row;
+ }
+
+ public void setCol(int col) {
+ this.col = col;
+ }
+
+ public int getCol() {
+ return this.col;
+ }
+
+ public Point getPointCentre() {
+ return this.centre;
+ }
+
+
+ private int statut = 0; // si statut ==1 alors la case est pleine sinon la
+ // case est vide
+
+ public Hexagone(Point centre, int radius) {
+ npoints = sides;
+ xpoints = new int[sides];
+ ypoints = new int[sides];
+
+ this.centre = centre;
+ this.radius = radius;
+
+ genererPoints();
+ }
+
+ public Hexagone(int x, int y, int radius) {
+ this(new Point(x, y), radius);
+ }
+
+ public int getRadius() {
+ return radius;
+ }
+
+ public int getStatut() {
+ return this.statut;
+ }
+
+ public void setStatut(int statut) {
+ this.statut = statut;
+ }
+
+ public void setRadius(int radius) {
+ this.radius = radius;
+
+ genererPoints();
+ }
+
+ public int getRotation() {
+ return rotation;
+ }
+
+ public void setRotation(int rotation) {
+ this.rotation = rotation;
+
+ genererPoints();
+ }
+
+ public void setCentre(Point centre) {
+ this.centre = centre;
+
+ genererPoints();
+ }
+
+ public void setCentre(int x, int y) {
+ setCentre(new Point(x, y));
+ }
+
+ private double getAngle(double fraction) {
+ return fraction * Math.PI * 2 + Math.toRadians((rotation + 180) % 360);
+ }
+
+ private Point getPoint(double angle) {
+ int x = (int) (centre.x + Math.cos(angle) * radius);
+ int y = (int) (centre.y + Math.sin(angle) * radius);
+
+ return new Point(x, y);
+ }
+
+ protected void genererPoints() {
+ for (int p = 0; p < sides; p++) {
+ double angle = getAngle((double) p / sides);
+ Point point = getPoint(angle);
+ xpoints[p] = point.x;
+ ypoints[p] = point.y;
+ points[p] = point;
+ }
+ }
+
+ public void draw(Graphics2D g, int x, int y, int lineThickness, int colorValue, boolean filled) {
+ // Store before changing.
+ Stroke tmpS = g.getStroke();
+ Color tmpC = g.getColor();
+
+ g.setColor(new Color(colorValue));
+ g.setStroke(new BasicStroke(lineThickness, BasicStroke.CAP_SQUARE,BasicStroke.JOIN_MITER));
+
+ if (filled) {
+ g.fillPolygon(xpoints, ypoints, npoints);
+ } else {
+ g.drawPolygon(xpoints, ypoints, npoints);
+ }
+
+ // Set values to previous when done.
+ g.setColor(tmpC);
+ g.setStroke(tmpS);
+ }
+}
diff --git a/src/hexagone/Joueur.java b/src/hexagone/Joueur.java
new file mode 100644
index 0000000..96117e0
--- /dev/null
+++ b/src/hexagone/Joueur.java
@@ -0,0 +1,216 @@
+package hexagone;
+
+import java.awt.Dimension;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+public class Joueur extends JPanel {
+
+ // chaque joueur est caracterise par son score, son psoeudo, sa couleur
+
+ private int score = 0;
+ private int actif = 0;
+ private int perdu = 0;
+ private int num = 0; // le numero du joueur dans le jeu [0,1,2,3]
+ private String psoeudo = "";
+ private int couleurs[] = { 0x1df307, 0x2d1fea, 0xef8f82, 0x000000 };
+ private int couleur = 0xeeee;
+
+ JLabel nomLabel;
+ JLabel scoreLabel;
+ JLabel coleurLabel;
+
+ public Joueur() {
+
+ this.setPreferredSize(new Dimension(100, 112));
+ coleurLabel = new javax.swing.JLabel();
+ nomLabel = new javax.swing.JLabel();
+ scoreLabel = new javax.swing.JLabel();
+
+ javax.swing.GroupLayout thisLayout = new javax.swing.GroupLayout(this);
+ this.setLayout(thisLayout);
+ thisLayout
+ .setHorizontalGroup(thisLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ thisLayout
+ .createSequentialGroup()
+ .addContainerGap()
+ .addGroup(
+ thisLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(
+ coleurLabel,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addComponent(
+ scoreLabel,
+ javax.swing.GroupLayout.Alignment.TRAILING,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 80,
+ Short.MAX_VALUE)
+ .addComponent(
+ nomLabel,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ 80,
+ Short.MAX_VALUE))
+ .addContainerGap()));
+ thisLayout
+ .setVerticalGroup(thisLayout
+ .createParallelGroup(
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(
+ thisLayout
+ .createSequentialGroup()
+ .addContainerGap(
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ Short.MAX_VALUE)
+ .addComponent(
+ nomLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 24,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(
+ javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(
+ scoreLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 24,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(
+ javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(
+ coleurLabel,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 24,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(7, 7, 7)));
+
+ // setPreferredSize(new Dimension(40, 40));
+ nomLabel.setText("Nom: " + psoeudo);
+ scoreLabel.setText("Score: " + score);
+ // coleurLabel.setText("Couleur: ...");
+
+ }
+
+ public int getScore() {
+ return score;
+ }
+
+ public void setScore(int score) {
+
+ this.score = score;
+ this.updateScore();
+ //this.scoreLabel.setText("Score: " + score);
+
+ }
+
+ // changer récupérer la valeur du champ psoeudo
+
+ public String getPsoeudo() {
+ return psoeudo;
+ }
+
+
+
+ public void setPsoeudo(String psoeudo) {
+ this.psoeudo = psoeudo;
+ this.nomLabel.setText("Nom: " + psoeudo);
+ }
+
+ // changer récupérer la valeur du champ num
+
+ public int getNum() {
+ return this.num;
+ }
+
+ public void setNum(int num) {
+ this.num = num;
+
+ }
+ //le joueur perdu ou non
+ // changer récupérer la valeur du champ num
+
+ public int getPerd() {
+ return this.perdu;
+ }
+
+ public void setPerd(int perdu) {
+ this.perdu = perdu;
+
+ }
+//le joueur actif
+ public int getActif() {
+ return this.actif;
+ }
+
+ public void setActif(int actif) {
+ this.actif = actif ;
+
+ }
+
+ // mise a joure le score le score
+ public void updateScore(){
+
+ int scor=0;
+ boolean jeuTermine = true;
+
+ boolean faireTerminerJeu=true;
+
+
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (Plateau.hextab[i][j]!=null){
+ if (Plateau.hextab[i][j].getNumJoueur()==this.num){
+ scor ++;
+
+ }
+
+ if(Plateau.hextab[i][j].getNumJoueur()!=this.num&&Plateau.hextab[i][j].getNumJoueur()!=0&&this.num!=0){
+ faireTerminerJeu=false;
+
+ }
+
+ if(Plateau.hextab[i][j].getNumJoueur()==0)
+ {
+ jeuTermine=false;
+
+ }
+ }
+
+
+
+ //hexOrdi[i][j] = null;
+
+ }
+
+
+
+
+ }
+
+
+
+ if (jeuTermine==true)Accueil.jeuTermine=true;
+
+
+ System.out.println("");//************************************");
+ this.score=scor*5;
+ this.scoreLabel.setText("Score: " + scor*5);
+
+ }
+
+
+ // changer récupérer la valeur du champ couleur
+
+ public int getCouleur() {
+ return couleurs[this.num-1];
+ }
+
+}
diff --git a/src/hexagone/Logowithname.png b/src/hexagone/Logowithname.png
new file mode 100644
index 0000000..dc9a8f4
Binary files /dev/null and b/src/hexagone/Logowithname.png differ
diff --git a/src/hexagone/Parametre.java b/src/hexagone/Parametre.java
new file mode 100644
index 0000000..2caf81d
--- /dev/null
+++ b/src/hexagone/Parametre.java
@@ -0,0 +1,9 @@
+package hexagone;
+
+public class Parametre {
+
+ public Parametre() {
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/src/hexagone/Plateau.java b/src/hexagone/Plateau.java
new file mode 100644
index 0000000..53ec41d
--- /dev/null
+++ b/src/hexagone/Plateau.java
@@ -0,0 +1,713 @@
+package hexagone;
+
+import java.awt.*;
+import java.util.Random;
+
+import javax.swing.*;
+
+
+public class Plateau extends JPanel {
+
+ private int iteration = 0; // pour avoir qu'elle notre etat (initalisation
+ // du plteau, initialisation du jeu, jeu )
+
+ public static Hexagone[][] hextab = new Hexagone[900][900];//
+ //public static Hexagone[][] hexOrdi = new Hexagone[900][900];//tableau de case de lor
+ public Graphics2D pl2d;
+
+ private static final long serialVersionUID = 1L;
+ private final int largeur = 800;
+ private final int haut = 550;
+ private int size = 15;
+
+ private Font font = new Font("Arial", Font.BOLD, 18);
+ FontMetrics metrics;
+
+ public Plateau() {
+ setPreferredSize(new Dimension(largeur, haut));
+
+ // a refaire
+
+ if (Accueil.iteration == 0) {
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+
+ hextab[i][j] = null;
+ //hexOrdi[i][j] = null;
+
+ }
+ }
+ }
+
+ }
+
+ public int getHexLength() {
+ return hextab.length;
+ }
+
+ public void paintComponent(Graphics g) {
+ this.pl2d = (Graphics2D) g;
+ Point origin = new Point(largeur / 2, haut / 2);
+
+ pl2d.setStroke(new BasicStroke(4.0f, BasicStroke.CAP_SQUARE,
+ BasicStroke.JOIN_MITER));
+
+ metrics = g.getFontMetrics();
+
+
+ // a refaire
+ if (Accueil.iteration == 1){// pour eliminer la grille du plateau
+ // principale
+
+ //Accueil.longJeu * 2 - 1
+ GridHexagone(pl2d, origin, Accueil.longJeu * 2 - 1, this.size, 8);
+ initialiserPointDdepart();
+ Accueil.iteration++;
+
+ }
+ }
+
+ private void GridHexagone(Graphics g, Point origin, int size, int radius,int padding) {
+ double angle30 = Math.toRadians(30);
+ int milieu = size / 2;
+ //padding espace entre les exagones
+ double y = Math.sin(angle30) * (radius + padding);
+ double x = Math.cos(angle30) * (radius + padding);
+
+ for (int row = 0; row < size; row++) {
+ int cols = size - java.lang.Math.abs(row - milieu);
+
+ for (int col = 0; col < cols; col++) {
+
+ dessinerHexagone(g, //
+ (int) (origin.x + x * (col * 2 + 1 - cols)), //
+ (int) (origin.y + y * (row - milieu) * 3), //
+ radius, col, row);
+ }
+ }
+ }
+
+ private void dessinerHexagone(Graphics g, int x, int y, int r, int col, int row) {
+ Graphics2D pl2d = (Graphics2D) g;
+
+ Hexagone hexagon = new Hexagone(x, y, r);
+ //
+
+
+ if (Accueil.iteration == 1) {
+ Accueil.nbHexagone++;
+
+ // hextab[row][col].x=x;
+ // hextab[row][col].y=y;
+ hextab[row][col] = hexagon;
+ hextab[row][col].setCouleur(0xeaf111);
+ // hextab[row][col].setNumJoueur(-1);
+ } else
+ hexagon.draw(pl2d, x, y, 0, 0xeaf111, true);
+ hexagon.draw(pl2d, x, y, 5, 0xf111ee, false);
+
+ }
+
+ // initialisation des point de depart
+
+
+ public void initialiserPointDdepart(){
+
+
+ ///0x1df307, 0x2d1fea, 0xef8f82,
+ if(Accueil.nbJoueur==1){
+ hextab[0][0].setCouleur(0x1df307);
+ hextab[0][0].setNumJoueur(1);
+
+ hextab[Accueil.longJeu * 2 - 2][0].setCouleur(0x1df307);
+ hextab[Accueil.longJeu * 2 - 2][0].setNumJoueur(1);
+
+ this.caseOrdiIter1();
+ this.caseOrdiIter1();
+ }
+ else if(Accueil.nbJoueur==2){
+ hextab[0][0].setCouleur(0x1df307);
+ hextab[0][0].setNumJoueur(1);
+ hextab[Accueil.longJeu * 2 - 2][0].setCouleur(0x1df307);
+ hextab[Accueil.longJeu * 2 - 2][0].setNumJoueur(1);
+
+
+ hextab[Accueil.longJeu-1][0].setCouleur(0x2d1fea);
+ hextab[Accueil.longJeu-1][0].setNumJoueur(2);
+ hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setCouleur(0x2d1fea);
+ hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setNumJoueur(2);
+
+
+
+ }
+ else {
+ hextab[0][0].setCouleur(0x1df307);
+ hextab[0][0].setNumJoueur(1);
+ hextab[Accueil.longJeu * 2 - 2][0].setCouleur(0x1df307);
+ hextab[Accueil.longJeu * 2 - 2][0].setNumJoueur(1);
+
+
+ hextab[Accueil.longJeu-1][0].setCouleur(0x2d1fea);
+ hextab[Accueil.longJeu-1][0].setNumJoueur(2);
+ hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setCouleur(0x2d1fea);
+ hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setNumJoueur(2);
+
+
+ hextab[0][Accueil.longJeu-1].setCouleur(0xef8f82);
+ hextab[0][Accueil.longJeu-1].setNumJoueur(3);
+ hextab[Accueil.longJeu * 2 - 2][Accueil.longJeu-1].setCouleur(0xef8f82);
+ hextab[Accueil.longJeu * 2 - 2][Accueil.longJeu-1].setNumJoueur(3);
+
+ this.caseOrdiIter1();
+ this.caseOrdiIter1();
+
+
+
+ }
+
+
+ }
+
+
+
+ public double getSizeHex() {
+ return (double) this.size;
+ }
+
+ public int getIteration() {
+ return iteration;
+ }
+
+ public void setIteration(int iteration) {
+ this.iteration = iteration;
+ }
+
+ // fonctionnel
+ // cette fonction rendre (row, col) de la matrice qui contient le point le
+ // plus proche du click souris
+
+ public Point dinstanceMinimale(int x, int y) {
+
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (hextab[i][j] != null) {
+ if (Math.sqrt((x - hextab[i][j].getPointCentre().getX())
+ * (x - hextab[i][j].getPointCentre().getX())
+ + (y - hextab[i][j].getPointCentre().getY())
+ * (y - hextab[i][j].getPointCentre().getY())) <= getSizeHex()) {
+
+ Hexagone hexagon = new Hexagone(x, y, 15);
+ return new Point(i, j);
+ }
+ }
+
+ }
+ }
+
+ return new Point(-1, -1);
+ }
+
+ // pour vérifier le deplacement est possible ou non
+ public boolean exist(int i, int j) {
+ return true;
+ }
+
+ // pour verifier la possibilete de clonage ou pas
+ public boolean clonage(Point prevPoint, Point newPoint) {
+
+
+ if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() ) return true;
+ if (newPoint.getX() == prevPoint.getX() && newPoint.getY() == prevPoint.getY() - 1) return true;
+ if (newPoint.getX() == prevPoint.getX() && newPoint.getY() == prevPoint.getY() + 1) return true;
+ if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY()) return true;
+
+
+
+ if(newPoint.getX()>Accueil.longJeu){//dans le cas où le joueur clique sur une case de la partie basse
+ if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() + 1) return true;
+ if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY() -1) return true;
+
+ }
+ else if(newPoint.getX()Accueil.longJeu){//dans le cas où le joueur clique sur une case de la partie basse
+
+
+ if (newPoint.getX() == prevPoint.getX() + 2 && newPoint.getY() == prevPoint.getY() - 2) return true;//oki
+
+ if (newPoint.getX() == prevPoint.getX() - 2 && newPoint.getY() == prevPoint.getY() + 2) return true;//oki
+
+ if (newPoint.getX() == prevPoint.getX() + 2 && newPoint.getY() == prevPoint.getY() - 1) return true;
+ if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY() - 2) return true;
+ if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY() + 1) return true;
+ if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() + 2) return true;
+ if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() - 1) return true;
+ if (newPoint.getX() == prevPoint.getX() - 2 && newPoint.getY() == prevPoint.getY() + 1) return true;
+ if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() - 2) return true;
+
+ }
+
+ else if (newPoint.getX()=0 && (int) newPoint.getY() - 1>=0 )
+ if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()){
+ hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+ if( (int)newPoint.getX() >=0 && (int) newPoint.getY() + 1>=0 )
+ if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1]!=null)
+ if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()){
+ hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+ if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY()>=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()]!=null)
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].getNumJoueur()!=j.getNum()) {
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY()>=0 )
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()]!=null)
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].getNumJoueur()!=j.getNum()) {
+ hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+
+
+
+
+
+
+
+
+
+ if(newPoint.getX()>Accueil.longJeu){//dans le cas où le joueur clique sur une case de la partie basse
+
+
+
+ if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1]!=null)
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum())
+ { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) {
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+
+
+
+
+
+ }
+ else if(newPoint.getX()=0 && (int) newPoint.getY() - 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum())
+ { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1]!=null)
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()+ 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()) {
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+
+
+ }
+ else if(newPoint.getX()==Accueil.longJeu-2){//oki _2
+
+
+ if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum())
+ { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1]!=null)
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()) {
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+
+
+ }
+
+
+
+ else if(newPoint.getX()==Accueil.longJeu-1){//Milieuu oki
+
+
+
+
+ if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum())
+ { hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) {
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ }
+ else if(newPoint.getX()==Accueil.longJeu){//apres milieu oki
+
+
+
+
+ if((int)newPoint.getX() + 1>=0 && (int) newPoint.getY() - 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1]!=null)
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum())
+ { hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+ if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif..........
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1]!=null)
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=0 )
+ if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum())
+ { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur());
+ hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum());
+ score =score +5;
+ }
+
+
+
+
+
+ }
+
+
+
+ j.setScore(j.getScore()+score);
+ }
+
+ // choix de l'ordianteur
+
+ public Point caseOrdiIter1() {
+ boolean trouve = false;
+ int x = 0, y = 0;
+ Random rand = new Random();
+ while (trouve == false) {
+ x = rand.nextInt(Accueil.longJeu * 2 - 1);
+ y = rand.nextInt(Accueil.longJeu * 2 - 1);
+ if (hextab[x][y] != null) {
+ if (hextab[x][y].getNumJoueur() == 0) { // si la case est
+ // contient comme num
+ // joueur -1 donc elle
+ // est vide
+ hextab[x][y].setNumJoueur(4);
+ hextab[x][y].setCouleur(0x000000);
+ trouve = true;
+ }
+ }
+ }
+
+ return new Point(x, y);
+ }
+
+ public boolean deplaceOrdi(Joueur joueur){
+ //lorsque l'ordianteur il cherche tous d'abord un point des ses points dans le tableau des hexagone
+ //si son point alors
+ // si il est possible de cloner alors
+ // il clone
+ // il appel la fontion de mager par le point par son nom
+ // si non si il est possible de sauter
+ // il saute
+ // il mange
+ //
+ //
+ //
+ //
+
+
+ int x = 0, y = 0;
+ Random rand = new Random();
+ Point[] possiblePoint = {new Point(2,2), new Point(2,1), new Point(2,0), new Point(2,-1), new Point(2,-2),
+ new Point(1,2), new Point(1,1), new Point(1,0), new Point(1,-1), new Point(1,-2),
+ new Point(0,2), new Point(0,1), new Point(0,-1), new Point(0,-2),
+ new Point(-1,2), new Point(-1,1), new Point(-1,0), new Point(-1,-1), new Point(1,-2),
+ new Point(-2,2), new Point(-2,1), new Point(-2,0), new Point(-2,-1), new Point(-2,-2),
+ };
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (hextab[i][j] != null) {
+ if (hextab[i][j].getNumJoueur()==joueur.getNum()){
+
+ for (int p =0; p <=23; p++){
+ Point prevPoint=new Point(i,j);
+ Point newPoint=new Point((int)possiblePoint[p].getX()+i,(int)possiblePoint[p].getY()+j );
+ if((int)newPoint.getX()>=0&&(int)newPoint.getY()>=0)
+ if(hextab[(int)newPoint.getX()][(int)newPoint.getY()]!=null)
+ if(hextab[(int)newPoint.getX()][(int)newPoint.getY()].getNumJoueur()==0){
+
+ if(clonage(prevPoint,newPoint )){
+ hextab[(int)newPoint.getX()][(int)newPoint.getY()].setNumJoueur(joueur.getNum());
+ hextab[(int)newPoint.getX()][(int)newPoint.getY()].setCouleur(joueur.getCouleur());
+
+ this.mangePointVoisin(newPoint, joueur);
+
+
+ return true;
+ }else if(saut(prevPoint,newPoint) == true){
+
+ hextab[(int)newPoint.getX()][(int)newPoint.getY()].setNumJoueur(joueur.getNum());
+ hextab[(int)newPoint.getX()][(int)newPoint.getY()].setCouleur(joueur.getCouleur());
+ this.mangePointVoisin(newPoint, joueur);
+
+ return true;
+
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return false ;
+
+
+
+
+
+}
+
+
+ public void mangeTous(Joueur joueur){
+
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (hextab[i][j] != null) {
+ if (hextab[i][j].getNumJoueur()==0){
+
+
+ hextab[i][j].setNumJoueur(joueur.getNum());
+ hextab[i][j].setCouleur(joueur.getCouleur());
+
+
+
+ }
+ }
+ }
+ }
+
+
+
+
+
+}
+
+ public boolean testDeplace(Joueur j1){
+
+ int x = 0, y = 0;
+ Random rand = new Random();
+ Point[] possiblePoint = {new Point(2,2), new Point(2,1), new Point(2,0), new Point(2,-1), new Point(2,-2),
+ new Point(1,2), new Point(1,1), new Point(1,0), new Point(1,-1), new Point(1,-2),
+ new Point(0,2), new Point(0,1), new Point(0,-1), new Point(0,-2),
+ new Point(-1,2), new Point(-1,1), new Point(-1,0), new Point(-1,-1), new Point(1,-2),
+ new Point(-2,2), new Point(-2,1), new Point(-2,0), new Point(-2,-1), new Point(-2,-2),
+ };
+ for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) {
+ for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) {
+ if (hextab[i][j] != null) {
+ if (hextab[i][j].getNumJoueur()==j1.getNum()){
+
+ for (int p =0; p <=23; p++){
+ Point prevPoint=new Point(i,j);
+ Point newPoint=new Point((int)possiblePoint[p].getX()+i,(int)possiblePoint[p].getY()+j );
+ if((int)newPoint.getX()>=0&&(int)newPoint.getY()>=0)
+ if(hextab[(int)newPoint.getX()][(int)newPoint.getY()]!=null)
+ if(hextab[(int)newPoint.getX()][(int)newPoint.getY()].getNumJoueur()==0){
+
+ if(clonage(prevPoint,newPoint )){
+
+ return true;
+ }else if(saut(prevPoint,newPoint) == true){
+ return true;
+
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return false ;
+
+
+
+
+
+}
+
+}
diff --git a/src/hexagone/cursor.png b/src/hexagone/cursor.png
new file mode 100644
index 0000000..9d33616
Binary files /dev/null and b/src/hexagone/cursor.png differ
diff --git a/src/hexagone/iconBleu.png b/src/hexagone/iconBleu.png
new file mode 100644
index 0000000..c938457
Binary files /dev/null and b/src/hexagone/iconBleu.png differ
diff --git a/src/hexagone/iconNoir.png b/src/hexagone/iconNoir.png
new file mode 100644
index 0000000..f83bd4a
Binary files /dev/null and b/src/hexagone/iconNoir.png differ
diff --git a/src/hexagone/iconRouge.png b/src/hexagone/iconRouge.png
new file mode 100644
index 0000000..cb2bd62
Binary files /dev/null and b/src/hexagone/iconRouge.png differ
diff --git a/src/hexagone/iconVert.png b/src/hexagone/iconVert.png
new file mode 100644
index 0000000..7c85063
Binary files /dev/null and b/src/hexagone/iconVert.png differ
diff --git a/src/hexagone/logo.png b/src/hexagone/logo.png
new file mode 100644
index 0000000..7e05a34
Binary files /dev/null and b/src/hexagone/logo.png differ