Skip to content

Commit 401179a

Browse files
authored
Merge pull request #3 from Harfeur/dev
Dev push -> Menu fonctionnel et jeu local aussi
2 parents d0455d7 + e312782 commit 401179a

32 files changed

+269310
-234
lines changed

src/fr/scrabble/Modele.java

Lines changed: 692 additions & 61 deletions
Large diffs are not rendered by default.

src/fr/scrabble/Scrabble.java

Lines changed: 0 additions & 61 deletions
This file was deleted.

src/fr/scrabble/Solo.java

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package fr.scrabble;
2+
3+
import javax.swing.*;
4+
5+
import java.awt.BorderLayout;
6+
import java.awt.Container;
7+
import java.awt.Dimension;
8+
import java.awt.Toolkit;
9+
import java.util.Observable;
10+
import java.util.Observer;
11+
12+
import fr.scrabble.controleurs.*;
13+
import fr.scrabble.vues.*;
14+
15+
16+
@SuppressWarnings("serial")
17+
public class Solo extends JFrame implements Observer{
18+
19+
public static double SCALE=1.5;
20+
public String langue;
21+
22+
public Solo() {
23+
24+
this.langue = "FR";
25+
26+
Modele m = new Modele();
27+
28+
ControleurPlateau cp = new ControleurPlateau(m);
29+
ControleurChevalet cc = new ControleurChevalet(m);
30+
ControleurBouton cb = new ControleurBouton(m);
31+
32+
VuePlateau vuePlateau = new VuePlateau(cp);
33+
VueChevalet vueChevalet = new VueChevalet(cc);
34+
VueBouton vueBouton = new VueBouton(cb);
35+
VueLigne vueLigne = new VueLigne();
36+
VueColonne vueColonne = new VueColonne();
37+
38+
m.addObserver(vuePlateau);
39+
m.addObserver(vueChevalet);
40+
m.addObserver(this);
41+
42+
Container contentPane = this.getContentPane();
43+
44+
contentPane.setLayout(new BorderLayout());
45+
46+
contentPane.add(vuePlateau, BorderLayout.CENTER);
47+
contentPane.add(vueChevalet, BorderLayout.SOUTH);
48+
contentPane.add(vueBouton, BorderLayout.EAST);
49+
contentPane.add(vueLigne, BorderLayout.NORTH);
50+
contentPane.add(vueColonne, BorderLayout.WEST);
51+
52+
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
53+
54+
m.nouvellePartie(4, this.langue);
55+
56+
this.pack();
57+
58+
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
59+
int x = (int) ((dimension.getWidth() - this.getWidth()) / 2);
60+
int y = (int) ((dimension.getHeight() - this.getHeight()) / 2);
61+
62+
this.setLocation(x, y);
63+
this.setVisible(true);
64+
}
65+
66+
@Override
67+
public void update(Observable o, Object arg) {
68+
if (arg.getClass() == String.class) {
69+
String str = (String) arg;
70+
if (str.equals("cacher")) {
71+
this.setVisible(false);
72+
}
73+
if (str.equals("afficher")) {
74+
this.setVisible(true);
75+
}
76+
}
77+
}
78+
}

src/fr/scrabble/controleurs/ControleurBouton.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ public ControleurBouton(Modele m) {
1616

1717
@Override
1818
public void actionPerformed(ActionEvent e) {
19-
m.verificationMot();
19+
if (e.getActionCommand()=="Valider") {
20+
m.verificationMot();
21+
}
22+
if (e.getActionCommand()=="Passer") {
23+
m.changementJoueur();
24+
}
25+
2026
}
2127

2228
}
Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,62 @@
11
package fr.scrabble.controleurs;
22

33
import java.awt.event.MouseEvent;
4-
import java.awt.event.MouseListener;
4+
5+
import javax.swing.event.MouseInputListener;
56

67
import fr.scrabble.Modele;
7-
import fr.scrabble.Scrabble;
8+
import fr.scrabble.Solo;
89
import fr.scrabble.vues.VueChevalet;
910

10-
public class ControleurChevalet implements MouseListener {
11+
public class ControleurChevalet implements MouseInputListener {
1112

1213
private Modele m;
1314

1415
public ControleurChevalet(Modele m) {
1516
super();
1617
this.m = m;
1718
}
18-
19+
1920
@Override
2021
public void mouseClicked(MouseEvent e) {
21-
int num = (int) (e.getX() / (VueChevalet.TAILLE*Scrabble.SCALE));
22+
int num = (int) (e.getX() / (VueChevalet.TAILLE*Solo.SCALE));
2223
m.selectLettre(num);
2324
}
2425

2526
@Override
2627
public void mousePressed(MouseEvent e) {
28+
// TODO Auto-generated method stub
29+
2730
}
2831

2932
@Override
3033
public void mouseReleased(MouseEvent e) {
34+
// TODO Auto-generated method stub
35+
3136
}
3237

3338
@Override
3439
public void mouseEntered(MouseEvent e) {
40+
// TODO Auto-generated method stub
41+
3542
}
3643

3744
@Override
3845
public void mouseExited(MouseEvent e) {
46+
// TODO Auto-generated method stub
47+
48+
}
49+
50+
@Override
51+
public void mouseDragged(MouseEvent e) {
52+
// TODO Auto-generated method stub
53+
54+
}
55+
56+
@Override
57+
public void mouseMoved(MouseEvent e) {
58+
// TODO Auto-generated method stub
59+
3960
}
4061

4162
}
Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package fr.scrabble.controleurs;
22

33
import java.awt.event.MouseEvent;
4-
import java.awt.event.MouseListener;
4+
5+
import javax.swing.event.MouseInputListener;
56

67
import fr.scrabble.Modele;
7-
import fr.scrabble.Scrabble;
8+
import fr.scrabble.Solo;
89
import fr.scrabble.vues.VuePlateau;
910

10-
public class ControleurPlateau implements MouseListener {
11+
public class ControleurPlateau implements MouseInputListener {
1112

1213
private Modele m;
1314

@@ -18,25 +19,45 @@ public ControleurPlateau(Modele m) {
1819

1920
@Override
2021
public void mouseClicked(MouseEvent e) {
21-
int col = (int) (e.getX() / (VuePlateau.TAILLE*Scrabble.SCALE));
22-
int lig = (int) (e.getY() / (VuePlateau.TAILLE*Scrabble.SCALE));
22+
int col = (int) (e.getX() / (VuePlateau.TAILLE*Solo.SCALE));
23+
int lig = (int) (e.getY() / (VuePlateau.TAILLE*Solo.SCALE));
2324
m.ajoutLettre(col, lig);
2425
}
2526

2627
@Override
2728
public void mousePressed(MouseEvent e) {
29+
// TODO Auto-generated method stub
30+
2831
}
2932

3033
@Override
3134
public void mouseReleased(MouseEvent e) {
35+
// TODO Auto-generated method stub
36+
3237
}
3338

3439
@Override
3540
public void mouseEntered(MouseEvent e) {
41+
// TODO Auto-generated method stub
42+
3643
}
3744

3845
@Override
3946
public void mouseExited(MouseEvent e) {
47+
// TODO Auto-generated method stub
48+
49+
}
50+
51+
@Override
52+
public void mouseDragged(MouseEvent e) {
53+
// TODO Auto-generated method stub
54+
55+
}
56+
57+
@Override
58+
public void mouseMoved(MouseEvent e) {
59+
// TODO Auto-generated method stub
60+
4061
}
4162

4263
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package fr.scrabble.controleurs;
2+
3+
import java.awt.event.ActionEvent;
4+
import java.awt.event.ActionListener;
5+
6+
import fr.scrabble.Solo;
7+
import fr.scrabble.menu.Menu;
8+
import fr.scrabble.multiplayer.Client;
9+
10+
public class ControleurPlay implements ActionListener {
11+
12+
private Menu menu;
13+
14+
public ControleurPlay(Menu menu) {
15+
super();
16+
this.menu=menu;
17+
}
18+
19+
@Override
20+
public void actionPerformed(ActionEvent e) {
21+
if (e.getActionCommand()=="Solo") {
22+
menu.fermer();
23+
new Solo();
24+
}
25+
if (e.getActionCommand()=="Multijoueur") {
26+
menu.fermer();
27+
new Client();
28+
}
29+
30+
}
31+
}

src/fr/scrabble/menu/Menu.java

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package fr.scrabble.menu;
2+
3+
import java.awt.BorderLayout;
4+
import java.awt.Color;
5+
import java.awt.Dimension;
6+
import java.awt.Toolkit;
7+
8+
import javax.swing.*;
9+
10+
import fr.scrabble.controleurs.ControleurPlay;
11+
import fr.scrabble.menu.vues.VueBoutonMulti;
12+
import fr.scrabble.menu.vues.VueBoutonSolo;
13+
import fr.scrabble.menu.vues.VueMenu;
14+
15+
@SuppressWarnings("serial")
16+
public class Menu extends JFrame{
17+
18+
private JLayeredPane lpane = new JLayeredPane();
19+
private JPanel fond = new VueMenu();
20+
private JPanel bouton1 = new JPanel();
21+
private JPanel bouton2 = new JPanel();
22+
23+
public Menu () {
24+
super("Menu");
25+
26+
ControleurPlay cplay = new ControleurPlay(this);
27+
28+
29+
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
30+
this.setPreferredSize(new Dimension(400, 400));
31+
this.setLayout(new BorderLayout());
32+
this.add(lpane, BorderLayout.CENTER);
33+
lpane.setBounds(0, 0, 400, 400);
34+
35+
fond.setBounds(0, 0, 600, 400);
36+
fond.setOpaque(true);
37+
38+
bouton1.setBackground(Color.GREEN);
39+
bouton1.setBounds(50, 100, 100, 100);
40+
bouton1.setOpaque(false);
41+
bouton1.add(new VueBoutonSolo(cplay));
42+
43+
bouton2.setBackground(Color.GREEN);
44+
bouton2.setBounds(200, 100, 100, 100);
45+
bouton2.setOpaque(false);
46+
bouton2.add(new VueBoutonMulti(cplay));
47+
48+
49+
lpane.add(fond, new Integer(0), 0);
50+
lpane.add(bouton1, new Integer(1), 0);
51+
lpane.add(bouton2, new Integer(1), 0);
52+
53+
this.pack();
54+
55+
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
56+
int x = (int) ((dimension.getWidth() - this.getWidth()) / 2);
57+
int y = (int) ((dimension.getHeight() - this.getHeight()) / 2);
58+
59+
this.setLocation(x, y);
60+
this.setVisible(true);
61+
}
62+
63+
public void fermer() {
64+
this.setVisible(false);
65+
this.dispose();
66+
}
67+
68+
public static void main(String[] args) {
69+
new Menu();
70+
}
71+
}
72+
73+

0 commit comments

Comments
 (0)