Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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";
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


import com.example.agricola.cards.action.AccumulativeActionCard;

import com.example.agricola.models.Player;

import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


import com.example.agricola.cards.action.NonAccumulativeActionCard;

import com.example.agricola.models.Player;

public class PlowField extends NonAccumulativeActionCard {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


import com.example.agricola.cards.action.AccumulativeActionCard;

import com.example.agricola.models.Player;

import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> createResourcesToGain() {
super.setHasResources();
return resourcesToGain;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> createResourcesToGain() {
super.setHasResources();
return resourcesToGain;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> createResourcesToGain() {
super.setHasResources();
return resourcesToGain;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> resources) {
super.gainResources(player, resources);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> resources) {
super.gainResources(player, resources);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,5 +111,10 @@ private int[] getRandomPosition(Set<int[]> positions) {
}
return null;
}

@Override
public void setOccupiedPlayerId(String id) {

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,9 @@ public void execute(Player player) {
}
}

@Override
public void setOccupiedPlayerId(String id) {

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> resources) {
super.gainResources(player, resources);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Integer> resources) {
super.gainResources(player, resources);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,11 @@ public void setOccupied(boolean occupied) {
this.occupied = occupied;
}

@Override
public void setOccupiedPlayerId(String id) {
occupiedPlayerId = id;
}

public void setAccumulatedResources(Map<String, Integer> resources) {
this.accumulatedResources = resources;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
78 changes: 65 additions & 13 deletions src/main/java/com/example/agricola/models/MainBoard.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -239,7 +239,7 @@ public ArrayList<String> sendMainBoardCardInfo(MainBoard mainBoard) {
* 메인보드 위 액션카드위의 플레이어 리스트를 보냄
* @param mainBoard 현재 진행되고 있는 게임의 Mainboard객체
* @return ex) ["1", "2", "null", ...]
* test필요
* test완료
* 최종수정 2024.6.6
*/
public List<String> mainboardActioncardPlayerList(MainBoard mainBoard) {
Expand Down Expand Up @@ -275,11 +275,10 @@ public List<String> mainboardRoundcardPlayerList(MainBoard mainBoard) {
}

/**
* 메인보드 위 액션 카드위의 누적 자원 리스트 를 보냄
* ActionRoundCard에 getPlayerId()구현필요
* 메인보드 위 액션 카드위의 전체 자원 리스트 를 보냄
* @param mainBoard 현재 진행되고 있는 게임의 Mainboard객체
* @return ex) [["clay:1, wood:2"] , ["wood:2"] , ["null"] , ...]
* test필요
* test완료 사용x
* 최종수정 2024.6.6
*/

Expand All @@ -289,23 +288,26 @@ public List<ArrayList<String>> mainboardActionCardAccumulateResourceList(MainBoa
for (ActionRoundCard card : actionCards) {
ArrayList<String> resource = new ArrayList<>();
//자원 축적 카드일때
if (card instanceof AccumulativeRoundCard) {
Map<String, Integer> accumResource = ((AccumulativeRoundCard) card).getAccumulatedResources();
if (card instanceof AccumulativeActionCard) {
System.out.println("자춴 축적 카드");
Map<String, Integer> accumResource = ((AccumulativeActionCard) card).getAccumulatedAmounts();
for (Map.Entry<String, Integer> entry : accumResource.entrySet()) {
resource.add(entry.getKey() + ":" + entry.getValue());
}
}
//자원 축적 카드가 아닐때
else { //자원축적칸이 아닌 자원축적x칸일때
if (card instanceof NonAccumulativeRoundCard) {
if (card instanceof NonAccumulativeActionCard) {
//자원 축적칸이아닌 일반 자원칸
if (((NonAccumulativeRoundCard) card).getHasResources()) {
Map<String, Integer> resources= ((NonAccumulativeRoundCard) card).createResourcesToGain();
if (((NonAccumulativeActionCard) card).getHasResources()) {
System.out.println("일반 자원 카드");
Map<String, Integer> resources= ((NonAccumulativeActionCard) card).createResourcesToGain();
for (Map.Entry<String, Integer> entry : resources.entrySet()) {
resource.add(entry.getKey() + ":" + entry.getValue());
}
}
else {
System.out.println("기능 카드");
resource.add("null");
}
}
Expand All @@ -314,16 +316,17 @@ public List<ArrayList<String>> 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
*/

Expand All @@ -334,7 +337,8 @@ public List<ArrayList<String>> mainboardRoundCardAccumulateResourceList(MainBoar
ArrayList<String> resource = new ArrayList<>();
//자원 축적 카드일때
if (card instanceof AccumulativeRoundCard) {
Map<String, Integer> accumResource = ((AccumulativeRoundCard) card).getAccumulatedResources();
Map<String, Integer> accumResource = ((AccumulativeRoundCard) card).getAccumulatedAmounts();
System.out.println("자원 축적 칸");
for (Map.Entry<String, Integer> entry : accumResource.entrySet()) {
resource.add(entry.getKey() + ":" + entry.getValue());
}
Expand All @@ -344,12 +348,14 @@ public List<ArrayList<String>> mainboardRoundCardAccumulateResourceList(MainBoar
if (card instanceof NonAccumulativeRoundCard) {
//자원 축적칸이아닌 일반 자원칸
if (((NonAccumulativeRoundCard) card).getHasResources()) {
System.out.println("일반 자원 칸");
Map<String, Integer> resources= ((NonAccumulativeRoundCard) card).createResourcesToGain();
for (Map.Entry<String, Integer> entry : resources.entrySet()) {
resource.add(entry.getKey() + ":" + entry.getValue());
}
}
else {
System.out.println("기능칸");
resource.add("null");
}
}
Expand All @@ -358,7 +364,53 @@ public List<ArrayList<String>> 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<String> mainBoardAccumulatedResourcesList(MainBoard mainBoard) {
List<ActionRoundCard> actionCards = mainBoard.getActionCards();
List<ActionRoundCard> roundCards = mainBoard.getRoundCards();
List<String> sendToFront = new ArrayList<>();
for (ActionRoundCard card : actionCards) {
ArrayList<String> resource = new ArrayList<>();
//자원 축적 카드일때
if (card instanceof AccumulativeActionCard) {
System.out.println("자춴 축적 카드");
Map<String, Integer> accumResource = ((AccumulativeActionCard) card).getAccumulatedResources();
for (Map.Entry<String, Integer> 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<String, Integer> accumResource = ((AccumulativeRoundCard) card).getAccumulatedResources();
for (Map.Entry<String, Integer> entry : accumResource.entrySet()) {
sendToFront.add(String.valueOf(entry.getValue()));
}
}

else {
System.out.println("축적카드아님");
}
}
System.out.println(sendToFront);
return sendToFront;
}
/**
Expand Down
Loading