Fix erreur derniere tuile fin de série

This commit is contained in:
Vincent 2024-10-27 19:53:31 +01:00
parent 0fdd38bdae
commit 40ca29879a
4 changed files with 10 additions and 4 deletions
bin
src/main/java

Binary file not shown.

Binary file not shown.

@ -58,11 +58,13 @@ public class GameController implements TilePlacer {
return; return;
} }
// Placer la tuile actuelle
hexTile.setTile(nextTile); hexTile.setTile(nextTile);
gridPanel.revalidate(); gridPanel.revalidate();
gridPanel.repaint(); gridPanel.repaint();
availablePositions.remove(position); availablePositions.remove(position);
// Mettre à jour les positions disponibles autour de la tuile ajoutée
for (Point adj : getAdjacentPositions(position)) { for (Point adj : getAdjacentPositions(position)) {
if (!hexagonMap.containsKey(adj)) { if (!hexagonMap.containsKey(adj)) {
availablePositions.add(adj); availablePositions.add(adj);
@ -71,13 +73,17 @@ public class GameController implements TilePlacer {
} }
gameContext.repaintGrid(gridPanel); gameContext.repaintGrid(gridPanel);
generateNextTile();
scoreGameContext.calculateScore(); scoreGameContext.calculateScore();
// Incrémenter le nombre de tuiles placées et vérifier si la limite est atteinte
placedTileCount++; placedTileCount++;
if (placedTileCount >= 50) { if (placedTileCount > 48) {
endGame(); // Appeler endGame pour terminer la partie endGame(); // Terminer la partie si on a atteint la 50ᵉ tuile pile
return; // Arrêter ici pour éviter de générer une tuile vide
} }
// Générer la prochaine tuile si la partie n'est pas terminée
generateNextTile();
} }
} }

@ -13,7 +13,7 @@ public class App {
private static JPanel mainPanel; private static JPanel mainPanel;
static { static {
frame = new JFrame("Application de Jeu"); frame = new JFrame("DorfJavatik");
cardLayout = new CardLayout(); cardLayout = new CardLayout();
mainPanel = new JPanel(cardLayout); mainPanel = new JPanel(cardLayout);
frame.setContentPane(mainPanel); frame.setContentPane(mainPanel);