diff --git a/src/main/java/com/example/agricola/cards/action/AccumulativeActionCard.java b/src/main/java/com/example/agricola/cards/action/AccumulativeActionCard.java index 8eb36b6..a7a3c1f 100644 --- a/src/main/java/com/example/agricola/cards/action/AccumulativeActionCard.java +++ b/src/main/java/com/example/agricola/cards/action/AccumulativeActionCard.java @@ -105,11 +105,17 @@ public void setOccupied(boolean occupied) { this.occupied = occupied; } + @Override + public void setOccupiedPlayerId(String id) { + occupiedPlayerId = id; + } + @Override public String getOccupiedPlayerId() { return occupiedPlayerId; } + @Override public void resetOccupiedPlayer() { occupiedPlayerId = "null"; diff --git a/src/main/java/com/example/agricola/cards/action/NonAccumulativeActionCard.java b/src/main/java/com/example/agricola/cards/action/NonAccumulativeActionCard.java index 2758906..30fca38 100644 --- a/src/main/java/com/example/agricola/cards/action/NonAccumulativeActionCard.java +++ b/src/main/java/com/example/agricola/cards/action/NonAccumulativeActionCard.java @@ -88,6 +88,11 @@ public void setOccupied(boolean occupied) { this.occupied = occupied; } + @Override + public void setOccupiedPlayerId(String id) { + occupiedPlayerId = id; + } + @Override public String getOccupiedPlayerId() { return occupiedPlayerId; diff --git a/src/main/java/com/example/agricola/cards/common/ActionRoundCard.java b/src/main/java/com/example/agricola/cards/common/ActionRoundCard.java index eab7fb0..0c05d9f 100644 --- a/src/main/java/com/example/agricola/cards/common/ActionRoundCard.java +++ b/src/main/java/com/example/agricola/cards/common/ActionRoundCard.java @@ -20,6 +20,8 @@ public interface ActionRoundCard extends CommonCard { boolean isAccumulative(); // 누적 가능한지 여부 확인 메서드 boolean isOccupied(); // 카드가 점유되었는지 확인 void setOccupied(boolean occupied); // 카드의 점유 상태 설정 + void setOccupiedPlayerId(String id); + default String getOccupiedPlayerId() { return "Default"; }; diff --git a/src/main/java/com/example/agricola/cards/factory/imp/action/ClayMine.java b/src/main/java/com/example/agricola/cards/factory/imp/action/ClayMine.java index ef22228..7169dc2 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/action/ClayMine.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/action/ClayMine.java @@ -2,7 +2,6 @@ import com.example.agricola.cards.action.AccumulativeActionCard; - import com.example.agricola.models.Player; import java.util.HashMap; diff --git a/src/main/java/com/example/agricola/cards/factory/imp/action/PlowField.java b/src/main/java/com/example/agricola/cards/factory/imp/action/PlowField.java index a5dfd2b..0fa377b 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/action/PlowField.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/action/PlowField.java @@ -2,7 +2,6 @@ import com.example.agricola.cards.action.NonAccumulativeActionCard; - import com.example.agricola.models.Player; public class PlowField extends NonAccumulativeActionCard { diff --git a/src/main/java/com/example/agricola/cards/factory/imp/action/ReedField.java b/src/main/java/com/example/agricola/cards/factory/imp/action/ReedField.java index f4e8e47..6c7f9be 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/action/ReedField.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/action/ReedField.java @@ -2,7 +2,6 @@ import com.example.agricola.cards.action.AccumulativeActionCard; - import com.example.agricola.models.Player; import java.util.HashMap; diff --git a/src/main/java/com/example/agricola/cards/factory/imp/action/ResourceMarket.java b/src/main/java/com/example/agricola/cards/factory/imp/action/ResourceMarket.java index 7ef314a..452f422 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/action/ResourceMarket.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/action/ResourceMarket.java @@ -14,10 +14,10 @@ public ResourceMarket(int id) { super(id, "자원시장", "돌, 음식 자원을 1개씩 획득합니다."); resourcesToGain.put("stone", 1); // 돌 1개 획득 resourcesToGain.put("food", 1);// 음식 1개 획득 + super.setHasResources(); } @Override public Map createResourcesToGain() { - super.setHasResources(); return resourcesToGain; } diff --git a/src/main/java/com/example/agricola/cards/factory/imp/action/Seed.java b/src/main/java/com/example/agricola/cards/factory/imp/action/Seed.java index b399fa6..8162944 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/action/Seed.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/action/Seed.java @@ -12,10 +12,10 @@ public class Seed extends NonAccumulativeActionCard { public Seed(int id) { super(id, "곡식 종자", "곡식 자원 1개를 획득합니다."); resourcesToGain.put("grain", 1); + super.setHasResources(); } @Override public Map createResourcesToGain() { - super.setHasResources(); return resourcesToGain; } diff --git a/src/main/java/com/example/agricola/cards/factory/imp/action/Worker.java b/src/main/java/com/example/agricola/cards/factory/imp/action/Worker.java index da8a01c..345587e 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/action/Worker.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/action/Worker.java @@ -12,10 +12,10 @@ public class Worker extends NonAccumulativeActionCard { public Worker(int id) { super(id, "날품팔이", "음식 자원을 2개씩 획득합니다."); resourcesToGain.put("food", 2); + super.setHasResources(); } @Override public Map createResourcesToGain() { - super.setHasResources(); return resourcesToGain; } diff --git a/src/main/java/com/example/agricola/cards/factory/imp/decorators/minorimprovement/BuildFenceDecorator.java b/src/main/java/com/example/agricola/cards/factory/imp/decorators/minorimprovement/BuildFenceDecorator.java index 7a0c661..0d9ce37 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/decorators/minorimprovement/BuildFenceDecorator.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/decorators/minorimprovement/BuildFenceDecorator.java @@ -94,6 +94,11 @@ public BuildFenceDecorator(ActionRoundCard decoratedCard, Player appliedPlayer) super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void buildFence(Player player) { if (player.equals(appliedPlayer) && player.isCompressedSoilActive()) { diff --git a/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/BuildHouseDecorator.java b/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/BuildHouseDecorator.java index e1a8a6b..53d8088 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/BuildHouseDecorator.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/BuildHouseDecorator.java @@ -14,6 +14,11 @@ public BuildHouseDecorator(ActionRoundCard decoratedCard, Player appliedPlayer) super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void buildHouse(Player player) { super.buildHouse(player); diff --git a/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/RenovateRoomsDecorator.java b/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/RenovateRoomsDecorator.java index 25ced3c..4ee754f 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/RenovateRoomsDecorator.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/decorators/occupation/RenovateRoomsDecorator.java @@ -14,6 +14,11 @@ public RenovateRoomsDecorator(ActionRoundCard decoratedCard, Player appliedPlaye super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void renovateRooms(Player player) { super.renovateRooms(player); diff --git a/src/main/java/com/example/agricola/cards/factory/imp/minor/ClayPit.java b/src/main/java/com/example/agricola/cards/factory/imp/minor/ClayPit.java index 6bae660..da93ef0 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/minor/ClayPit.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/minor/ClayPit.java @@ -61,6 +61,11 @@ public ClayPitDecorator(ActionRoundCard decoratedCard, Player appliedPlayer) { super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void gainResources(Player player, Map resources) { super.gainResources(player, resources); diff --git a/src/main/java/com/example/agricola/cards/factory/imp/minor/GrainShovel.java b/src/main/java/com/example/agricola/cards/factory/imp/minor/GrainShovel.java index d515cf0..67dd898 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/minor/GrainShovel.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/minor/GrainShovel.java @@ -60,6 +60,11 @@ public GrainShovelDecorator(ActionRoundCard decoratedCard, Player appliedPlayer) super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void gainResources(Player player, Map resources) { super.gainResources(player, resources); diff --git a/src/main/java/com/example/agricola/cards/factory/imp/minor/StoneAxe.java b/src/main/java/com/example/agricola/cards/factory/imp/minor/StoneAxe.java index 16d8ac1..4b98d31 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/minor/StoneAxe.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/minor/StoneAxe.java @@ -111,5 +111,10 @@ private int[] getRandomPosition(Set positions) { } return null; } + + @Override + public void setOccupiedPlayerId(String id) { + + } } } diff --git a/src/main/java/com/example/agricola/cards/factory/imp/occupation/LivestockMerchant.java b/src/main/java/com/example/agricola/cards/factory/imp/occupation/LivestockMerchant.java index 62c8dd3..b5d9991 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/occupation/LivestockMerchant.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/occupation/LivestockMerchant.java @@ -76,5 +76,9 @@ public void execute(Player player) { } } + @Override + public void setOccupiedPlayerId(String id) { + + } } } diff --git a/src/main/java/com/example/agricola/cards/factory/imp/occupation/Lumberjack.java b/src/main/java/com/example/agricola/cards/factory/imp/occupation/Lumberjack.java index 38eb43d..8d8968b 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/occupation/Lumberjack.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/occupation/Lumberjack.java @@ -51,6 +51,11 @@ public LumberjackDecorator(AccumulativeCard decoratedCard, Player appliedPlayer) super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void gainResources(Player player, Map resources) { super.gainResources(player, resources); diff --git a/src/main/java/com/example/agricola/cards/factory/imp/occupation/Magician.java b/src/main/java/com/example/agricola/cards/factory/imp/occupation/Magician.java index f266877..07e6b7e 100644 --- a/src/main/java/com/example/agricola/cards/factory/imp/occupation/Magician.java +++ b/src/main/java/com/example/agricola/cards/factory/imp/occupation/Magician.java @@ -55,6 +55,11 @@ public MagicianDecorator(AccumulativeCard decoratedCard, Player appliedPlayer) { super(decoratedCard, appliedPlayer); } + @Override + public void setOccupiedPlayerId(String id) { + + } + @Override public void gainResources(Player player, Map resources) { super.gainResources(player, resources); diff --git a/src/main/java/com/example/agricola/cards/round/AccumulativeRoundCard.java b/src/main/java/com/example/agricola/cards/round/AccumulativeRoundCard.java index cc9cf27..1b83c7b 100644 --- a/src/main/java/com/example/agricola/cards/round/AccumulativeRoundCard.java +++ b/src/main/java/com/example/agricola/cards/round/AccumulativeRoundCard.java @@ -112,6 +112,11 @@ public void setOccupied(boolean occupied) { this.occupied = occupied; } + @Override + public void setOccupiedPlayerId(String id) { + occupiedPlayerId = id; + } + public void setAccumulatedResources(Map resources) { this.accumulatedResources = resources; } diff --git a/src/main/java/com/example/agricola/cards/round/NonAccumulativeRoundCard.java b/src/main/java/com/example/agricola/cards/round/NonAccumulativeRoundCard.java index 6d2c884..890f664 100644 --- a/src/main/java/com/example/agricola/cards/round/NonAccumulativeRoundCard.java +++ b/src/main/java/com/example/agricola/cards/round/NonAccumulativeRoundCard.java @@ -87,6 +87,11 @@ public void setOccupied(boolean occupied) { this.occupied = occupied; } + @Override + public void setOccupiedPlayerId(String id) { + occupiedPlayerId = id; + } + @Override public String getOccupiedPlayerId() { return this.occupiedPlayerId; diff --git a/src/main/java/com/example/agricola/models/MainBoard.java b/src/main/java/com/example/agricola/models/MainBoard.java index 1e8e8af..01ec5c5 100644 --- a/src/main/java/com/example/agricola/models/MainBoard.java +++ b/src/main/java/com/example/agricola/models/MainBoard.java @@ -1,7 +1,7 @@ package com.example.agricola.models; import com.example.agricola.cards.action.AccumulativeActionCard; -import com.example.agricola.cards.action.AccumulativeActionCard; +import com.example.agricola.cards.action.NonAccumulativeActionCard; import com.example.agricola.cards.common.AccumulativeCard; import com.example.agricola.cards.common.ActionRoundCard; import com.example.agricola.cards.common.CommonCard; @@ -239,7 +239,7 @@ public ArrayList sendMainBoardCardInfo(MainBoard mainBoard) { * 메인보드 위 액션카드위의 플레이어 리스트를 보냄 * @param mainBoard 현재 진행되고 있는 게임의 Mainboard객체 * @return ex) ["1", "2", "null", ...] - * test필요 + * test완료 * 최종수정 2024.6.6 */ public List mainboardActioncardPlayerList(MainBoard mainBoard) { @@ -275,11 +275,10 @@ public List mainboardRoundcardPlayerList(MainBoard mainBoard) { } /** - * 메인보드 위 액션 카드위의 누적 자원 리스트 를 보냄 - * ActionRoundCard에 getPlayerId()구현필요 + * 메인보드 위 액션 카드위의 전체 자원 리스트 를 보냄 * @param mainBoard 현재 진행되고 있는 게임의 Mainboard객체 * @return ex) [["clay:1, wood:2"] , ["wood:2"] , ["null"] , ...] - * test필요 + * test완료 사용x * 최종수정 2024.6.6 */ @@ -289,23 +288,26 @@ public List> mainboardActionCardAccumulateResourceList(MainBoa for (ActionRoundCard card : actionCards) { ArrayList resource = new ArrayList<>(); //자원 축적 카드일때 - if (card instanceof AccumulativeRoundCard) { - Map accumResource = ((AccumulativeRoundCard) card).getAccumulatedResources(); + if (card instanceof AccumulativeActionCard) { + System.out.println("자춴 축적 카드"); + Map accumResource = ((AccumulativeActionCard) card).getAccumulatedAmounts(); for (Map.Entry entry : accumResource.entrySet()) { resource.add(entry.getKey() + ":" + entry.getValue()); } } //자원 축적 카드가 아닐때 else { //자원축적칸이 아닌 자원축적x칸일때 - if (card instanceof NonAccumulativeRoundCard) { + if (card instanceof NonAccumulativeActionCard) { //자원 축적칸이아닌 일반 자원칸 - if (((NonAccumulativeRoundCard) card).getHasResources()) { - Map resources= ((NonAccumulativeRoundCard) card).createResourcesToGain(); + if (((NonAccumulativeActionCard) card).getHasResources()) { + System.out.println("일반 자원 카드"); + Map resources= ((NonAccumulativeActionCard) card).createResourcesToGain(); for (Map.Entry entry : resources.entrySet()) { resource.add(entry.getKey() + ":" + entry.getValue()); } } else { + System.out.println("기능 카드"); resource.add("null"); } } @@ -314,16 +316,17 @@ public List> mainboardActionCardAccumulateResourceList(MainBoa } } sendToFront.add(resource); + System.out.println(resource); } return sendToFront; } /** - * 메인보드 위 라운드 카드 위의 누적 자원 리스트 를 보냄 + * 메인보드 위 라운드 카드 위의 전체 자원 리스트 를 보냄 * ActionRoundCard에 getPlayerId()구현필요 * @param mainBoard 현재 진행되고 있는 게임의 Mainboard객체 * @return ex) [["clay:1, wood:2"] , ["wood:2"] , ["null"] , ...] - * test필요 + * test완료 사용x * 최종수정 2024.6.6 */ @@ -334,7 +337,8 @@ public List> mainboardRoundCardAccumulateResourceList(MainBoar ArrayList resource = new ArrayList<>(); //자원 축적 카드일때 if (card instanceof AccumulativeRoundCard) { - Map accumResource = ((AccumulativeRoundCard) card).getAccumulatedResources(); + Map accumResource = ((AccumulativeRoundCard) card).getAccumulatedAmounts(); + System.out.println("자원 축적 칸"); for (Map.Entry entry : accumResource.entrySet()) { resource.add(entry.getKey() + ":" + entry.getValue()); } @@ -344,12 +348,14 @@ public List> mainboardRoundCardAccumulateResourceList(MainBoar if (card instanceof NonAccumulativeRoundCard) { //자원 축적칸이아닌 일반 자원칸 if (((NonAccumulativeRoundCard) card).getHasResources()) { + System.out.println("일반 자원 칸"); Map resources= ((NonAccumulativeRoundCard) card).createResourcesToGain(); for (Map.Entry entry : resources.entrySet()) { resource.add(entry.getKey() + ":" + entry.getValue()); } } else { + System.out.println("기능칸"); resource.add("null"); } } @@ -358,7 +364,53 @@ public List> mainboardRoundCardAccumulateResourceList(MainBoar } } sendToFront.add(resource); + System.out.println(resource); + } + return sendToFront; + } + + /** + * 메인보드 위 모든 카드위의 누적 자원 리스트 를 보냄 + * @param mainBoard 현재 진행되고 있는 게임의 Mainboard객체 + * @return ex) [1, 3, 6, 7, 1, ....] + * test완료 + * 최종수정 2024.6.8 + */ + + public List mainBoardAccumulatedResourcesList(MainBoard mainBoard) { + List actionCards = mainBoard.getActionCards(); + List roundCards = mainBoard.getRoundCards(); + List sendToFront = new ArrayList<>(); + for (ActionRoundCard card : actionCards) { + ArrayList resource = new ArrayList<>(); + //자원 축적 카드일때 + if (card instanceof AccumulativeActionCard) { + System.out.println("자춴 축적 카드"); + Map accumResource = ((AccumulativeActionCard) card).getAccumulatedResources(); + for (Map.Entry entry : accumResource.entrySet()) { + sendToFront.add(String.valueOf(entry.getValue())); + } + } + + else { + System.out.println("축적카드아님."); + } + } + for (ActionRoundCard card : roundCards) { + //자원 축적 카드일때 + if (card instanceof AccumulativeRoundCard) { + System.out.println("자춴 축적 카드"); + Map accumResource = ((AccumulativeRoundCard) card).getAccumulatedResources(); + for (Map.Entry entry : accumResource.entrySet()) { + sendToFront.add(String.valueOf(entry.getValue())); + } + } + + else { + System.out.println("축적카드아님"); + } } + System.out.println(sendToFront); return sendToFront; } /** diff --git a/src/main/java/com/example/agricola/models/Player.java b/src/main/java/com/example/agricola/models/Player.java index 76e44e2..f7fddae 100644 --- a/src/main/java/com/example/agricola/models/Player.java +++ b/src/main/java/com/example/agricola/models/Player.java @@ -132,7 +132,7 @@ public void setScore(int score) { } - public void placeFamilyMember(ActionRoundCard card) { + public void placeFamilyMember(ActionRoundCard card) { //테스트안돌아가서 @param card, x, y -> @param card로 변경 MainBoard mainBoard = gameService.getMainBoard(); // 최신 카드 리스트에서 해당 카드를 찾음 @@ -170,6 +170,7 @@ public void placeFamilyMember(ActionRoundCard card) { System.out.println("Placing family member at (" + i + ", " + j + ") for player " + this.id); mainBoard.placeFamilyMember(latestCard); // 점유 상태로 먼저 설정 + latestCard.setOccupiedPlayerId(this.getId()); //카드에 점유중인 플레이어 id정보추가 latestCard.execute(this); // 카드 실행 로직 selectedMember.setUsed(true); @@ -804,6 +805,7 @@ public void printActiveCardsLists() { } } + /** * 플레이어의 자원정보를 리스트로 반환하는 함수 * 나무, 흙, 돌, 음식, 양, 곡식, 성인, 신생아, 외양간 보내줌 -> 엔트리 순서확인(울타리 외양간은 없는거같음) (순서변화필요할시 LinkedHashMap으로처리) diff --git a/src/main/java/com/example/agricola/service/GameService.java b/src/main/java/com/example/agricola/service/GameService.java index 28ad808..be75f1f 100644 --- a/src/main/java/com/example/agricola/service/GameService.java +++ b/src/main/java/com/example/agricola/service/GameService.java @@ -755,6 +755,15 @@ private void endRound() { player.convertBabiesToAdults(); } calculateAndRecordScores(); + //카드가 가지고있는 사용중인 플레이어 id 초기화 + List actionCards = mainBoard.getActionCards(); + List roundCards = mainBoard.getRoundCards(); + for (ActionRoundCard actionCard : actionCards) { + actionCard.resetOccupiedPlayer(); + } + for (ActionRoundCard roundCard : roundCards) { + roundCard.resetOccupiedPlayer(); + } } private void calculateAndRecordScores() { @@ -1120,7 +1129,7 @@ public void sendChoiceRequestToFrontEnd(String playerId, String choiceType, Map< message.put("choiceType", choiceType); message.put("options", options); - simpMessagingTemplate.convertAndSend("/topic/room/1", message); + //simpMessagingTemplate.convertAndSend("/topic/room/1", message); } private Map playerLatches = new ConcurrentHashMap<>(); @@ -1278,7 +1287,7 @@ public void sendPlayerResourcesToFrontEnd(Player player) { System.out.println("Sending player resources to frontend for player " + player.getId() + ": " + player.getResources()); - simpMessagingTemplate.convertAndSend("/topic/room/1", message); + //simpMessagingTemplate.convertAndSend("/topic/room/1", message); } public void sendActiveCardsListToFrontEnd(Player player) { diff --git a/src/test/java/com/example/agricola/models/MainBoardTest.java b/src/test/java/com/example/agricola/models/MainBoardTest.java new file mode 100644 index 0000000..826c97e --- /dev/null +++ b/src/test/java/com/example/agricola/models/MainBoardTest.java @@ -0,0 +1,135 @@ +package com.example.agricola.models; + +import com.example.agricola.cards.common.ActionRoundCard; +import com.example.agricola.cards.factory.imp.action.Bush; +import com.example.agricola.cards.factory.imp.action.ClayMine; +import com.example.agricola.cards.factory.imp.action.ClayMine2; +import com.example.agricola.cards.factory.imp.action.ResourceMarket; +import com.example.agricola.cards.factory.imp.round.*; +import com.example.agricola.controller.GameController; +import com.example.agricola.controller.RoomController; +import com.example.agricola.service.GameService; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class MainBoardTest { + GameService gs = new GameService(); + MainBoard mainBoard = new MainBoard(); + Player player = new Player("1", "Yunjae", gs); + Player p1 = new Player("2", "yunjae", gs); + Player p2 = new Player("3", "yunjae2", gs); + Player p3 = new Player("4", "yunjae3", gs); + Player p4 = new Player("5", "yunjae4", gs); + ResourceMarket resourceMarket = new ResourceMarket(5); + + /** + * 카드 객체들 + */ + List actionCards = new ArrayList(); + List roundCards = new ArrayList(); + + Bush bush = new Bush(1); + Bush bush2 = new Bush(2); + ClayMine clayMine = new ClayMine(3); + ClayMine2 clayMine2 = new ClayMine2(4); + AddFamilyMember addFamilyMembe = new AddFamilyMember(6, 1); + BuildFence buildFence = new BuildFence(7, 2); + PlantSeed plantSeed = new PlantSeed(8, 3); + PurchaseMajor purchaseMajor = new PurchaseMajor(9, 4); + SheepMarket sheepMarket = new SheepMarket(10, 5); + + + @Test + void mainBoardAccumulatedResourcesList() { + sheepMarket.reveal(); + bush.accumulateResources(); + bush.accumulateResources(); + bush2.accumulateResources(); + bush2.accumulateResources(); + bush2.accumulateResources(); + clayMine.accumulateResources(); + clayMine2.accumulateResources(); + clayMine2.accumulateResources(); + clayMine2.accumulateResources(); + clayMine2.accumulateResources(); + sheepMarket.accumulateResources(); + sheepMarket.accumulateResources(); + sheepMarket.accumulateResources(); + gs.setMainBoard(mainBoard); + actionCards.add(bush); + actionCards.add(bush2); + actionCards.add(clayMine); + actionCards.add(clayMine2); + actionCards.add(resourceMarket); + roundCards.add(addFamilyMembe); + roundCards.add(buildFence); + roundCards.add(plantSeed); + roundCards.add(purchaseMajor); + roundCards.add(sheepMarket); + mainBoard.setActionCards(actionCards); + mainBoard.setRoundCards(roundCards); + mainBoard.mainBoardAccumulatedResourcesList(mainBoard); + + } + + @Test + void mainboardActioncardPlayerList() { //test진행시 GameService sendPlayerResourcesToFrontEnd메서드 simpMessagingTemplate.convertAndSend("/topic/room/1", message);주석처리 + gs.setMainBoard(mainBoard); + actionCards.add(bush); + actionCards.add(bush2); + actionCards.add(clayMine); + actionCards.add(clayMine2); + actionCards.add(resourceMarket); + mainBoard.setActionCards(actionCards); + List> sendToFront = mainBoard.mainboardActionCardAccumulateResourceList(mainBoard); + player.placeFamilyMember(bush); + p1.placeFamilyMember(clayMine); + p2.placeFamilyMember(resourceMarket); + p3.placeFamilyMember(clayMine2); + List sendToFront2 = mainBoard.mainboardActioncardPlayerList(mainBoard); + System.out.print(sendToFront2); + } + @Test + void mainboardRoundcardPlayerList() { //test진행시 GameService sendChoiceRequestToFrontEnd simpMessagingTemplate.convertAndSend("/topic/room/1", message);주석 + gs.setMainBoard(mainBoard); //플레이어 선택 기다려서 당장에 테스트 불가 + roundCards.add(addFamilyMembe); + roundCards.add(buildFence); + roundCards.add(plantSeed); + roundCards.add(purchaseMajor); + roundCards.add(sheepMarket); + mainBoard.setRoundCards(roundCards); + List> sendToFront1 = mainBoard.mainboardRoundCardAccumulateResourceList(mainBoard); + player.placeFamilyMember(addFamilyMembe); + p1.placeFamilyMember(sheepMarket); + p2.placeFamilyMember(purchaseMajor); + p3.placeFamilyMember(plantSeed); + List sendToFront2 = mainBoard.mainboardActioncardPlayerList(mainBoard); + System.out.println(sendToFront2); + + + } + @Test + void mainboardActionCardAccumulateResourceList() { + actionCards.add(bush); + actionCards.add(bush2); + actionCards.add(clayMine); + actionCards.add(clayMine2); + actionCards.add(resourceMarket); + mainBoard.setActionCards(actionCards); + List> sendToFront = mainBoard.mainboardActionCardAccumulateResourceList(mainBoard); + } + @Test + void mainboardRoundCardAccumulateResourceList() { + roundCards.add(addFamilyMembe); + roundCards.add(buildFence); + roundCards.add(plantSeed); + roundCards.add(purchaseMajor); + roundCards.add(sheepMarket); + mainBoard.setRoundCards(roundCards); + List> sendToFront = mainBoard.mainboardRoundCardAccumulateResourceList(mainBoard); + } +} \ No newline at end of file diff --git a/src/test/java/com/example/agricola/models/PlayerTest.java b/src/test/java/com/example/agricola/models/PlayerTest.java index de0ce24..6f2f32b 100644 --- a/src/test/java/com/example/agricola/models/PlayerTest.java +++ b/src/test/java/com/example/agricola/models/PlayerTest.java @@ -13,7 +13,7 @@ class PlayerTest { - @Test + @Test//test진행시 GameServices sendPlayerResourcesToFrontEnd메서드 simpMessagingTemplate.convertAndSend("/topic/playerResources", message);주석처리 void playerResourcesList() { RoomController rm = new RoomController(); List players = List.of();