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;
|
||||
|
||||
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()) {
|
||||
|
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;
|
||||
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user