Pair Programming Bamba David Vincent
This commit is contained in:
parent
40f4881b32
commit
0513256860
bin
controller
model
view
src/main/java
Binary file not shown.
BIN
bin/controller/HexagonMouseListener.class
Normal file
BIN
bin/controller/HexagonMouseListener.class
Normal file
Binary file not shown.
BIN
bin/model/TerrainType.class
Normal file
BIN
bin/model/TerrainType.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/view/HexagonGridPanel.class
Normal file
BIN
bin/view/HexagonGridPanel.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
28
src/main/java/controller/HexagonMouseListener.java
Normal file
28
src/main/java/controller/HexagonMouseListener.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package controller;
|
||||||
|
|
||||||
|
import java.awt.Point;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import view.HexagonTile;
|
||||||
|
import view.GameView;
|
||||||
|
|
||||||
|
public class HexagonMouseListener extends MouseAdapter {
|
||||||
|
private final HexagonTile hexTile;
|
||||||
|
private final GameView gameView;
|
||||||
|
private final Set<Point> availablePositions;
|
||||||
|
|
||||||
|
public HexagonMouseListener(HexagonTile hexTile, GameView gameView, Set<Point> availablePositions) {
|
||||||
|
this.hexTile = hexTile;
|
||||||
|
this.gameView = gameView;
|
||||||
|
this.availablePositions = availablePositions;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
if (availablePositions.contains(hexTile.getPosition())) {
|
||||||
|
gameView.placeTile(hexTile.getPosition());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
5
src/main/java/model/TerrainType.java
Normal file
5
src/main/java/model/TerrainType.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package model;
|
||||||
|
|
||||||
|
public enum TerrainType {
|
||||||
|
MER, CHAMP, PRE, FORET, MONTAGNE
|
||||||
|
}
|
@ -3,10 +3,6 @@ package model;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class Tile {
|
public class Tile {
|
||||||
public enum TerrainType {
|
|
||||||
MER, CHAMP, PRE, FORET, MONTAGNE
|
|
||||||
}
|
|
||||||
|
|
||||||
private TerrainType[] terrains; // 4 terrains pour chaque quart de la tuile
|
private TerrainType[] terrains; // 4 terrains pour chaque quart de la tuile
|
||||||
private static final Random random = new Random();
|
private static final Random random = new Random();
|
||||||
|
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
package view;
|
package view;
|
||||||
|
|
||||||
import model.Tile;
|
import model.Tile;
|
||||||
|
import controller.HexagonMouseListener;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.MouseAdapter;
|
|
||||||
import java.awt.event.MouseEvent;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -66,14 +65,9 @@ public class GameView extends JFrame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private JPanel createHexagonGrid() {
|
private JPanel createHexagonGrid() {
|
||||||
JPanel panel = new JPanel(null) {
|
return new HexagonGridPanel();
|
||||||
@Override
|
|
||||||
public Dimension getPreferredSize() {
|
|
||||||
return new Dimension(3000, 3000);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return panel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Ajouter un hexagone à une position donnée
|
// Ajouter un hexagone à une position donnée
|
||||||
private void addHexagonTile(Point position, JPanel panel, int hexSize) {
|
private void addHexagonTile(Point position, JPanel panel, int hexSize) {
|
||||||
@ -87,14 +81,9 @@ public class GameView extends JFrame {
|
|||||||
|
|
||||||
HexagonTile hexTile = new HexagonTile(position);
|
HexagonTile hexTile = new HexagonTile(position);
|
||||||
hexTile.setBounds(xOffset, yOffset, hexSize, hexSize);
|
hexTile.setBounds(xOffset, yOffset, hexSize, hexSize);
|
||||||
hexTile.addMouseListener(new MouseAdapter() {
|
// Utiliser la classe HexagonMouseListener à la place de la classe anonyme
|
||||||
@Override
|
hexTile.addMouseListener(new HexagonMouseListener(hexTile, this, availablePositions));
|
||||||
public void mouseClicked(MouseEvent e) {
|
|
||||||
if (availablePositions.contains(hexTile.getPosition())) {
|
|
||||||
placeTile(hexTile.getPosition());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
hexagonMap.put(position, hexTile);
|
hexagonMap.put(position, hexTile);
|
||||||
panel.add(hexTile);
|
panel.add(hexTile);
|
||||||
panel.revalidate();
|
panel.revalidate();
|
||||||
@ -102,7 +91,7 @@ public class GameView extends JFrame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Placer une tuile à la position spécifiée
|
// Placer une tuile à la position spécifiée
|
||||||
private void placeTile(Point position) {
|
public void placeTile(Point position) {
|
||||||
if (availablePositions.contains(position)) {
|
if (availablePositions.contains(position)) {
|
||||||
HexagonTile hexTile = hexagonMap.get(position);
|
HexagonTile hexTile = hexagonMap.get(position);
|
||||||
if (hexTile != null && !hexTile.isFilled()) {
|
if (hexTile != null && !hexTile.isFilled()) {
|
||||||
|
16
src/main/java/view/HexagonGridPanel.java
Normal file
16
src/main/java/view/HexagonGridPanel.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package view;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class HexagonGridPanel extends JPanel {
|
||||||
|
|
||||||
|
public HexagonGridPanel() {
|
||||||
|
super(null); // Layout null pour gérer manuellement la position des composants
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension getPreferredSize() {
|
||||||
|
return new Dimension(3000, 3000);
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package view;
|
package view;
|
||||||
|
|
||||||
import model.Tile;
|
import model.Tile;
|
||||||
|
import model.TerrainType; // Ajout de l'import pour TerrainType
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -84,7 +85,7 @@ public class HexagonTile extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Obtenir la couleur en fonction du type de terrain
|
// Obtenir la couleur en fonction du type de terrain
|
||||||
private Color getTerrainColor(Tile.TerrainType terrain) {
|
private Color getTerrainColor(TerrainType terrain) {
|
||||||
switch (terrain) {
|
switch (terrain) {
|
||||||
case MER:
|
case MER:
|
||||||
return Color.BLUE;
|
return Color.BLUE;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package view;
|
package view;
|
||||||
|
|
||||||
import model.Tile;
|
import model.Tile;
|
||||||
|
import model.TerrainType; // Ajout de l'import pour TerrainType
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -64,7 +65,7 @@ public class TileView extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Obtenir la couleur en fonction du type de terrain
|
// Obtenir la couleur en fonction du type de terrain
|
||||||
private Color getTerrainColor(Tile.TerrainType terrain) {
|
private Color getTerrainColor(TerrainType terrain) {
|
||||||
switch (terrain) {
|
switch (terrain) {
|
||||||
case MER:
|
case MER:
|
||||||
return Color.BLUE;
|
return Color.BLUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user