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