Pair Programming Bamba David Vincent

This commit is contained in:
Vincent TEISSIER 2024-10-24 17:59:46 +02:00
parent 40f4881b32
commit 0513256860
20 changed files with 60 additions and 24 deletions

Binary file not shown.

Binary file not shown.

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.

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;