/**
* Travail fait par Aravinthan Sivaneswaran
* Date: 27-Sep-2011
* Nom du projet: Projet d'intégration (La guerre des pions)
*/
/**
* Cette classe permet d'avoir les differents fenetres
* necessaire pour le projet ainsi que les
* �v�nements de gestion ( clavier et souris )
*/
// Les imports necessaire au projet
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
class views extends JFrame {
// Declarer le panneau de jeu
JPanel gameplayPanel;
// D�clarer les boutons qui sera utilis� a travers la classe.
JComboBox moveWhite;
JComboBox moveBlack;
// Declarer les formes qui sera utilise a travers la classe.
Rectangle2D.Double[] rectangle;
ZEllipse[] cercle;
// Fonction qui permet d'avoir les differents f�netres du fonction.
public views() {
super("Creer les formes pour le jeu");
setTitle("Game window");
setSize(1200, 700);
gameplayPanel = new JPanel();
JPanel movesPanel = new JPanel();
GestEvt listener=new GestEvt();
gameplayPanel.addMouseListener(listener);
Container contentPane = getContentPane();
JLabel white_label = new JLabel("Bouger les pions blanc");
moveWhite = new JComboBox();
//moveWhite.addItemListener(this);
moveWhite.addItem("Bouger pion 1");
moveWhite.addItem("Bouger pion 2");
JLabel black_label = new JLabel("Bouger les pions noir");
moveBlack = new JComboBox();
//moveBlack.addItemListener(this);
moveBlack.addItem("Bouger pion 1");
moveBlack.addItem("Bouger pion 2");
JTextArea userMoves = new JTextArea(20, 100);
gameplayPanel.add(white_label);
gameplayPanel.add(moveWhite);
gameplayPanel.add(black_label);
gameplayPanel.add(moveBlack);
movesPanel.add(userMoves);
contentPane.add(gameplayPanel, BorderLayout.CENTER);
contentPane.add(movesPanel, BorderLayout.SOUTH);
}
// Fonction qui permet de dessiner les diff�rent formes 2D.
public void paint(Graphics g) {
// Appeler la méthode paint de la superclasse.
super.paint(g);
// Créer la 2D par le remplacement du type de g en Graphics2D.
Graphics2D g2d = (Graphics2D) g;
// Tracer autant de rectangles demandes par l'utilisateur.
rectangle = new Rectangle.Double[5];
for (int x = 0; x < 5; x++) {
rectangle[x] = new Rectangle2D.Double(250 + (x * 100), 250, 100, 100);
rectangle[x].setFrame(250 + (x * 100), 250, 100, 100);
g2d.draw(rectangle[x]);
}
// Tracer autant de cercles necessaire.
cercle = new ZEllipse[4];
int y = 0;
for (int x = 0; x < 5; x++) {
g2d.setPaint(Color.black);
if (x == 2) {
g2d.setPaint(Color.white);
x = 3;
} else if (x == 4) {
g2d.setPaint(Color.white);
}
cercle[y] = new ZEllipse(300 + (x * 100), 300, 10, 10);
g2d.fill(cercle[y]);
y++;
}
}
class ZEllipse extends Ellipse2D.Float {
public ZEllipse(float x, float y, float width, float height) {
setFrame(x, y, width, height);
}
public void addX(float x) {
this.x += x;
}
public void addY(float y) {
this.y += y;
}
}
class validation{
public boolean isHit(int s, int c, int x, int y){
double cercleX = cercle[c].getX();
double cercleY = cercle[c].getY();
System.out.println("Square"+s+"Cercle"+c);
if(rectangle[s].contains(cercleX, cercleY)){
return true;
}
else{
return false;
}
}
}
private class GestEvt extends MouseAdapter{
public void mousePressed(MouseEvent event){
int x = event.getX();
int y = event.getY();
int square;
int point;
validation v = new validation();
// Creer la zone du rectangle
if(((y>249 && y<351) && (x>250 && x<(250+(5*100))))){
square = (x-250)/100;
point = square;
if(square == 4){
point = 3;
}
// Verifier s'il contient un point
for (int i = 0; i < 4; i++) {
if(v.isHit(square, i, x, y)){
System.out.println("IS HIT");
System.out.println("X before:" +cercle[i].getX());
cercle[i].addX(100);
cercle[i].addY(100);
repaint();
System.out.println("X after:" +cercle[i].getX());
}
}
}
}
}
}