diff --git a/src/main/java/server/automaton/Game.java b/src/main/java/server/automaton/Game.java index e6d0411..c8665c6 100644 --- a/src/main/java/server/automaton/Game.java +++ b/src/main/java/server/automaton/Game.java @@ -108,7 +108,7 @@ public class Game { gameBoard.initOfferingTiles(players.size()); gameBoard.setupInitialRows(players.size()); - gameBoard.getTurnTile().setInitialOrder(players, true); + gameBoard.getTurnTile().setInitialOrder(players, shuffle); dealInitialFood(); round = 1; @@ -173,8 +173,6 @@ public class Game { totemPlacedCount++; logger.debug("player {} TOTEM PLACED ON TILE {}", player.getNickname() , chosen.getLetter()); - // + " (" + totemPlacedCount + "/" + players.size() + ")."); - if (totemPlacedCount == players.size()) { logger.info(" ----- START ACTION RESOLUTION ---- "); startActionResolution(); diff --git a/src/main/java/server/cards/CardDeck.java b/src/main/java/server/cards/CardDeck.java index 19a0f61..b2285bb 100644 --- a/src/main/java/server/cards/CardDeck.java +++ b/src/main/java/server/cards/CardDeck.java @@ -180,4 +180,22 @@ public class CardDeck { buildingDeck.get(era).remove(card); return card; } + + // for testing only + public Card drawTestTribe(int cardId) { + Card card = tribeDeck.stream().filter(c->c.getCardId()==cardId).findFirst().orElse(null); + if (card!=null) { + System.out.println("CARTA FOUND " + cardId + " --> " + card); + tribeDeck.remove(card); + } + return card; + } + // for testing only + public Card drawTestBuilding(int cardId, Era era) { + Card card = buildingDeck.get(era).stream().filter(c->c.getCardId()==cardId).map(Card.class::cast).findFirst().orElse(null); + if (card!=null) { + buildingDeck.get(era).remove(card); + } + return card; + } } diff --git a/src/main/resources/files/cards_analisys.csv b/src/main/resources/files/cards_analisys.csv new file mode 100644 index 0000000..9390992 --- /dev/null +++ b/src/main/resources/files/cards_analisys.csv @@ -0,0 +1,117 @@ +C;1;0;I;HUNTER;1;0 +C;2;0;I;HUNTER;1;0 +C;3;0;I;HUNTER;0;0 +C;4;3;I;HUNTER;0;0 +C;5;3;I;HUNTER;0;0 +C;6;0;I;BUILDER;1;3 +C;7;0;I;BUILDER;2;0 +C;8;5;I;BUILDER;2;1 +C;9;0;I;BUILDER;1;2 +C;10;0;I;GATHERER;3;0 +C;11;0;I;GATHERER;3;0 +C;12;3;I;GATHERER;3;0 +C;13;5;I;GATHERER;3;0 +C;14;0;I;ARTIST;0;0 +C;15;0;I;ARTIST;0;0 +C;16;0;I;ARTIST;0;0 +C;17;3;I;ARTIST;0;0 +C;18;4;I;ARTIST;0;0 +C;19;0;I;INVENTOR;1;0 +C;20;0;I;INVENTOR;2;0 +C;21;0;I;INVENTOR;3;0 +C;22;0;I;INVENTOR;4;0 +C;23;4;I;INVENTOR;5;0 +C;24;4;I;INVENTOR;6;0 +C;25;4;I;INVENTOR;7;0 +C;26;5;I;SHAMAN;2;0 +C;27;0;I;SHAMAN;2;0 +C;28;0;I;SHAMAN;1;0 +C;29;4;I;SHAMAN;1;0 +C;30;0;II;HUNTER;0;0 +C;31;0;II;HUNTER;0;0 +C;32;3;II;HUNTER;1;0 +C;33;0;II;HUNTER;1;0 +C;34;4;II;HUNTER;1;0 +C;35;5;II;HUNTER;0;0 +C;36;0;II;BUILDER;1;4 +C;37;0;II;BUILDER;2;1 +C;38;3;II;BUILDER;1;2 +C;39;0;II;BUILDER;2;3 +C;40;0;II;GATHERER;3;0 +C;41;3;II;GATHERER;3;0 +C;42;4;II;GATHERER;3;0 +C;43;5;II;GATHERER;3;0 +C;44;3;II;ARTIST;0;0 +C;45;0;II;ARTIST;0;0 +C;46;0;II;ARTIST;0;0 +C;47;0;II;ARTIST;0;0 +C;48;0;II;INVENTOR;8;0 +C;49;4;II;INVENTOR;9;0 +C;50;0;II;INVENTOR;5;0 +C;51;0;II;INVENTOR;6;0 +C;52;0;II;INVENTOR;7;0 +C;53;0;II;INVENTOR;1;0 +C;54;0;II;SHAMAN;2;0 +C;55;0;II;SHAMAN;2;0 +C;56;5;II;SHAMAN;1;0 +C;57;5;II;SHAMAN;2;0 +C;58;5;III;HUNTER;1;0 +C;59;0;III;HUNTER;0;0 +C;60;0;III;HUNTER;0;0 +C;61;0;III;HUNTER;1;0 +C;62;0;III;BUILDER;1;5 +C;63;0;III;BUILDER;2;3 +C;64;5;III;BUILDER;1;4 +C;65;0;III;BUILDER;2;2 +C;66;5;III;GATHERER;3;0 +C;67;4;III;GATHERER;3;0 +C;68;0;III;GATHERER;3;0 +C;69;5;III;ARTIST;0;0 +C;70;0;III;ARTIST;0;0 +C;71;0;III;ARTIST;0;0 +C;72;0;III;ARTIST;0;0 +C;73;4;III;INVENTOR;10;0 +C;74;3;III;INVENTOR;2;0 +C;75;3;III;INVENTOR;3;0 +C;76;0;III;INVENTOR;8;0 +C;77;0;III;INVENTOR;9;0 +C;78;0;III;INVENTOR;10;0 +C;79;0;III;INVENTOR;4;0 +C;80;3;III;SHAMAN;2;0 +C;81;0;III;SHAMAN;3;0 +C;82;0;III;SHAMAN;2;0 +C;83;0;III;SHAMAN;3;0 +C;84;4;III;SHAMAN;2;0 +E;85;0;I;HUNT;1;1 +E;86;0;I;SUSTAINMENT;1;1 +E;87;0;I;SHAMANIC_RITUAL;5;3 +E;88;0;I;CAVE_PAINTINGS;2;1 +E;89;0;II;HUNT;1;2 +E;90;0;II;SUSTAINMENT;1;2 +E;91;0;II;SHAMANIC_RITUAL;10;5 +E;92;0;II;CAVE_PAINTINGS;2;2 +E;93;0;III;HUNT;1;3 +E;94;0;III;CAVE_PAINTINGS;2;3 +E;95;0;FINAL;SUSTAINMENT;1;3 +E;96;0;FINAL;SHAMANIC_RITUAL;15;7 +B;97;0;I;4;3;FOOD_FOR_SIX +B;98;0;I;4;4;SUSTAIN_DISCOUNT +B;99;0;I;5;3;SUSTAIN_DISCOUNT +B;100;0;I;5;2;SHAMAN_NO_LOSS +B;101;0;I;3;3;BONUS_FOOD_ENDTURN +B;102;0;I;3;4;FOOD_PER_INVENTORS +B;103;0;II;7;0;SHAMAN_DOUBLE_POINTS +B;104;0;II;6;4;SHAMAN_BONUS +B;105;0;II;7;4;SUSTAIN_DISCOUNT +B;106;0;II;7;2;HUNT_BONUS +B;107;0;II;6;4;ENDGAME_BUILDER_BONUS +B;108;0;II;5;6;PAINTING_FOOD_BONUS +B;109;0;II;5;6;ENDGAME_FOR_SIX +B;110;0;III;8;8;ENDGAME_BONUS_CHARACTER +B;111;0;III;7;6;ENDGAME_BONUS_CHARACTER +B;112;0;III;7;4;ENDGAME_BONUS_CHARACTER +B;113;0;III;6;3;ENDGAME_BONUS_CHARACTER +B;114;0;III;7;4;ENDGAME_BONUS_CHARACTER +B;115;0;III;6;6;ENDGAME_BONUS_CHARACTER +B;116;0;III;9;3;EXTRA_DRAW +B;117;0;III;10;0;ENDGAME_BONUS_POINTS \ No newline at end of file diff --git a/src/test/java/server/automaton/GameTest.java b/src/test/java/server/automaton/GameTest.java index 7c504d9..beda718 100644 --- a/src/test/java/server/automaton/GameTest.java +++ b/src/test/java/server/automaton/GameTest.java @@ -108,6 +108,64 @@ class GameTest { } @Test - void getPendingActions() { + void getTestActions() { + System.out.println(game.getPlayers()); + System.out.println(game.getGameBoard().getTurnTile()); + Player yellow = game.getGameBoard().getTurnTile().getPositions()[0]; + Player blue = game.getGameBoard().getTurnTile().getPositions()[1]; + Player red = game.getGameBoard().getTurnTile().getPositions()[2]; + + System.out.println(yellow); + System.out.println(blue); + System.out.println(red); + + yellow.addFood(8); + yellow.addPrestigePoints(10); + + blue.addFood(7); + blue.addPrestigePoints(10); + + red.addFood(7); + red.addPrestigePoints(10); + + System.out.println(yellow); + System.out.println(blue); + System.out.println(red); + + int y=0; + //for(Card nn: game.getGameBoard().getCardDeck().getTribeDeck()){ + // System.out.println((y++) + " " + nn); + //} + System.out.println(game.getGameBoard().getCardDeck().getTribeDeck().size()); + System.out.println(game.getGameBoard().getTopRow().size()); + game.getGameBoard().getTopRow().add(game.getGameBoard().getCardDeck().drawTestTribe(32)); + game.getGameBoard().getTopRow().add(game.getGameBoard().getCardDeck().drawTestTribe(33)); + //game.getGameBoard().getTopRow().add(game.getGameBoard().getCardDeck().drawTestTribe(35)); + System.out.println("top \n" +game.getGameBoard().getTopRow()); + System.out.println("bottom \n" +game.getGameBoard().getBottomRow()); + //game.getGameBoard().getTopRow() + + game.placeTotem(yellow,game.getGameBoard().getOfferingIdxFromLetter('B')); + game.placeTotem(blue,game.getGameBoard().getOfferingIdxFromLetter('C')); + game.placeTotem(red,game.getGameBoard().getOfferingIdxFromLetter('E')); + + //game.getGameBoard().placeTotem(yellow,game.getGameBoard().getOfferingTiles().get( game.getGameBoard().getOfferingIdxFromLetter('B')), game.getGameBoard().getTurnTile()); + //game.getGameBoard().placeTotem(blue,game.getGameBoard().getOfferingTiles().get( game.getGameBoard().getOfferingIdxFromLetter('C')), game.getGameBoard().getTurnTile()); + // game.getGameBoard().placeTotem(red,game.getGameBoard().getOfferingTiles().get( game.getGameBoard().getOfferingIdxFromLetter('E')), game.getGameBoard().getTurnTile()); + + //game.resolveCardAction(red, true, 32); + + System.out.println(game.getGameBoard().getTurnTile()); + System.out.println(game.getGameBoard().getOfferingTiles()); + + System.out.println(game.getCurrentPlayer()); + game.resolveCardAction(yellow, false, 3); + game.resolveCardAction(blue, true, 32); + + game.resolveCardAction(red, true, 33); + game.resolveCardAction(red, false, 4); + + //game.resolveCardAction(curr, true, 32) ; + System.out.println(game.getState()); } } \ No newline at end of file diff --git a/src/test/java/server/cards/CardDeckTest.java b/src/test/java/server/cards/CardDeckTest.java index 0203800..36cdda2 100644 --- a/src/test/java/server/cards/CardDeckTest.java +++ b/src/test/java/server/cards/CardDeckTest.java @@ -109,7 +109,7 @@ class CardDeckTest { assertEquals(Era.I, cardDeck.drawTribe(1).getFirst().getEra()); assertEquals(Era.FINAL, cardDeck.drawTribe(100).getLast().getEra()); - // assertEquals(Era.I, cardDeck.drawBuilding(1).getFirst().getEra()); - // assertEquals(Era.III, cardDeck.drawBuilding(100).getLast().getEra()); + // assertEquals(Era.I, cardDeck.drawBuilding(1).getFirst().getEra()); + // assertEquals(Era.III, cardDeck.drawBuilding(100).getLast().getEra()); } } \ No newline at end of file