Add: Board Setup (Game Init)

This commit is contained in:
rubenpirreram
2026-03-21 20:57:00 +01:00
parent 30933a44bc
commit e7a1382909
4 changed files with 67 additions and 12 deletions
@@ -2,18 +2,19 @@ package it.polimi.ingsw.gc14.Model;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events.ShamanicRitual;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events.Sustenance;
import it.polimi.ingsw.gc14.Model.Orders.Order2;
import it.polimi.ingsw.gc14.Model.Orders.Order3;
import it.polimi.ingsw.gc14.Model.Orders.Order4;
import it.polimi.ingsw.gc14.Model.Orders.Order5;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
public class Game {
private List<Slot> slotList;
private List<TribeCard> tribeDeck;
private List<BuildingCard> buildingDeck;
private Queue<TribeCard> tribeDeck;
private List<TribeCard> upperListTribe;
private List<TribeCard> lowerListTribe;
private List<BuildingCard> upperListBuilding;
@@ -25,12 +26,17 @@ public class Game {
private OrderLogicCard orderLogicCard;
public Game(int nPlayers) {
this.nPlayers = nPlayers;
//Manca generazione slot ->this.slotList = slotList.stream().filter(slot -> slot.getNMinPlayer()>= nPlayers).toList();
this.slotList = DecksCreator.loadSlotDeck().stream().filter(x->x.getNMinPlayer()<=nPlayers).sorted().toList();
this.tribeDeck= getTribeDeck(nPlayers);
ArrayList<BuildingCard> buildingDeck = new ArrayList<>(DecksCreator.loadBuildingDeckByEra(1));
Collections.shuffle(buildingDeck);
if(nPlayers==2)
this.upperListBuilding= buildingDeck.subList(0,1);
else
this.upperListBuilding= buildingDeck.subList(0,2);
upperListTribe = new ArrayList<>();
lowerListTribe = new ArrayList<>();
upperListBuilding = new ArrayList<>();
lowerListBuilding = new ArrayList<>();
playersList = new ArrayList<>();
}
@@ -51,7 +57,42 @@ public class Game {
break;
}
for(int i=0;i<nPlayers+1;i++)
{
TribeCard tempCard = tribeDeck.remove();
if(tempCard.IsEventCard())
{
upperListTribe.add(tempCard);
i--;
}
else
{
lowerListTribe.add(tempCard);
}
}
for(int i=upperListTribe.size();i<nPlayers+5;i++)
{
TribeCard tempCard = tribeDeck.remove();
upperListTribe.add(tempCard);
}
}
private Queue<TribeCard> getTribeDeck(int nPlayers)
{
ArrayList<TribeCard> era1= DecksCreator.loadTribeDeckByEra(1).stream().filter(x->x.getNMin()<=nPlayers).collect(Collectors.toCollection(ArrayList::new));
List<TribeCard> era2= DecksCreator.loadTribeDeckByEra(2).stream().filter(x->x.getNMin()<=nPlayers).collect(Collectors.toCollection(ArrayList::new));
List<TribeCard> era3= DecksCreator.loadTribeDeckByEra(3).stream().filter(x->x.getNMin()<=nPlayers).collect(Collectors.toCollection(ArrayList::new));
Collections.shuffle(era1);
Collections.shuffle(era2);
Collections.shuffle(era3);
Queue<TribeCard> tribeDeck_temp=new LinkedList<>();
tribeDeck_temp.addAll(era1);
tribeDeck_temp.addAll(era2);
tribeDeck_temp.addAll(era3);
tribeDeck_temp.add(new Sustenance(3,3));
tribeDeck_temp.add(new ShamanicRitual(3,15,7));
return tribeDeck_temp;
}
public void addPlayer(Player player)
{