diff --git a/pom.xml b/pom.xml index 6fdc4ce0..a5f71f56 100644 --- a/pom.xml +++ b/pom.xml @@ -68,33 +68,6 @@ opencsv 5.4 - - - org.deeplearning4j - deeplearning4j-nn - 1.0.0-alpha - - - - org.deeplearning4j - deeplearning4j-datasets - ${dl4j-master.version} - - - org.datavec - datavec-api - 1.0.0-alpha - - - org.deeplearning4j - deeplearning4j-datavec-iterators - 1.0.0-alpha - - - org.nd4j - nd4j-api - 1.0.0-alpha - org.openjfx javafx-controls @@ -105,19 +78,11 @@ javafx-fxml ${javafx.version} - - com.google.code.gson - gson - 2.8.6 - compile - org.openjfx javafx-media 11 - - \ No newline at end of file diff --git a/src/main/java/controller/AIPlayerController.java b/src/main/java/controller/AIPlayerController.java index 0799e16b..62904cb0 100644 --- a/src/main/java/controller/AIPlayerController.java +++ b/src/main/java/controller/AIPlayerController.java @@ -1,6 +1,5 @@ package controller; -import com.opencsv.CSVWriter; import controller.gamephasescontrollers.GameController; import model.CoinDice; import model.board.CardStatus; @@ -8,7 +7,6 @@ import model.cards.Monster; import view.gamephases.Duel; -import java.io.FileWriter; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/controller/gamephasescontrollers/BattlePhaseController.java b/src/main/java/controller/gamephasescontrollers/BattlePhaseController.java index d62d76a8..49ac9548 100644 --- a/src/main/java/controller/gamephasescontrollers/BattlePhaseController.java +++ b/src/main/java/controller/gamephasescontrollers/BattlePhaseController.java @@ -126,7 +126,7 @@ private String attackToDefensiveHiddenCell(Cell attackerCell, Cell attackedCell, response = "opponent’s monster card was " + attackedCell.getCellCard().getName() + " the defense position monster is destroyed"; response += Marshmallon.handleEffect(gameController, attackerCell, attackedCell); - if (!Marshmallon.isMarshmallon(attackedCell))//todo chera ba payiniha fargh miknone? baad inja tanaghoz dareha + if (!Marshmallon.isMarshmallon(attackedCell)) attackedCell.removeCardFromCell(opponentGameBoard); } else if (isAttackerAndAttackedPowerEqual(attackerCell, attackedCell)) { response = "opponent’s monster card was " + @@ -240,7 +240,7 @@ public GameController getGameController() { return gameController; } - public int getPower(Cell cell, Cell attackerCell, Cell attackedCell) {//todo null pointer exception + public int getPower(Cell cell, Cell attackerCell, Cell attackedCell) { switch (cell.getCardStatus()) { case DEFENSIVE_OCCUPIED: case DEFENSIVE_HIDDEN: diff --git a/src/main/java/controller/gamephasescontrollers/GameController.java b/src/main/java/controller/gamephasescontrollers/GameController.java index 84170964..158ab0c0 100644 --- a/src/main/java/controller/gamephasescontrollers/GameController.java +++ b/src/main/java/controller/gamephasescontrollers/GameController.java @@ -214,8 +214,6 @@ public void changeTurn(boolean isTemporary, boolean backToPlayer) { changedPositionCells = new ArrayList<>(); attackerCellsThisTurn = new ArrayList<>(); turnCount++; - //todo update changedPositionCells & other fields - //todo reset attacked arraylist } public void activateTrapEffect(ArrayList trapsCanBeActivated) { @@ -426,6 +424,8 @@ public String getSideDeckCards(Player player) { } private void changeCards(Player player) { + if (player.isAI()) + return; Deck deck = player.getPlayDeck(); String deckInfo = player.getUser().getNickname() + "’s Deck: " + deck.getName() + "\n"; ArrayList monsters = Card.getMonstersSorted(deck.getMainDeck()); diff --git a/src/main/java/controller/gamephasescontrollers/MainPhasesController.java b/src/main/java/controller/gamephasescontrollers/MainPhasesController.java index 2d368db0..e2a4690f 100644 --- a/src/main/java/controller/gamephasescontrollers/MainPhasesController.java +++ b/src/main/java/controller/gamephasescontrollers/MainPhasesController.java @@ -59,7 +59,8 @@ default void monsterSummon(GameController gameController) throws GameException { currentPlayer.getGameBoard().getHandCards().remove(selectedCell); Cell.deselectCell(); } - default boolean isSummonedMonsterATKMoreThan1000(Cell summonedCell) {//todo check null pointer exception + + default boolean isSummonedMonsterATKMoreThan1000(Cell summonedCell) { return ((Monster) summonedCell.getCellCard()).getAtk() >= 1000; } @@ -112,18 +113,15 @@ private void addMonstersToSummonEffectSpellAndTrap(Cell summonedCell) { summonEffectSpellAndTrap.add(new TorrentialTribute()); if (isSummonedMonsterATKMoreThan1000(summonedCell)) flipSummonEffectSpellAndTrap.add(new TorrentialTribute()); - //todo add the rest of summon monsters thing } private void addMonstersToFlipSummonEffectSpellAndTrap(Cell summonedCell) { if (isSummonedMonsterATKMoreThan1000(summonedCell)) flipSummonEffectSpellAndTrap.add(new TorrentialTribute()); - //todo add the rest of summon monsters thing } private void addMonstersToSpecialSummonEffectSpellAndTrap() { SpecialSummonEffectSpellAndTrap.add(new TorrentialTribute()); - //todo add the rest of summon monsters thing } private void handleTributeForNormalSummon(Player currentPlayer, Cell selectedCell, int monsterLevel, boolean isSpecialSummon) throws GameException { @@ -168,24 +166,10 @@ private void handleTributeForNormalSummon(Player currentPlayer, Cell selectedCel for (Cell tribute : tributes) { tribute.removeCardFromCell(playerGameBoard); } -// for (int i=0;i initCards = new ArrayList<>(); - //game init cards: + initCards.add(new AxeRaider()); initCards.add(new Babydragon()); initCards.add(new CallofTheHaunted()); @@ -208,12 +208,11 @@ private void initializeCards() { initCards.add(new HarpiesFeatherDuster()); initCards.add(new MagicCylinder()); initCards.add(new MagicJamamer()); - initCards.add(new MonsterReborn()); + initCards.add(new SpiralSerpent()); initCards.add(new Mysticalspacetyphoon()); initCards.add(new SlotMachine()); initCards.add(new TorrentialTribute()); - //other cards added by me (parham) initCards.add(new BattleOX()); initCards.add(new BeastKingBarbaros()); diff --git a/src/main/java/model/board/Cell.java b/src/main/java/model/board/Cell.java index 032133f6..0a18fedb 100644 --- a/src/main/java/model/board/Cell.java +++ b/src/main/java/model/board/Cell.java @@ -24,7 +24,7 @@ public Cell(Card card) { } - public static void deselectCell() {//better to be same as select cell or rename + public static void deselectCell() { selectedCell = null; } diff --git a/src/main/java/model/cards/Card.java b/src/main/java/model/cards/Card.java index 3a23c7ec..787ab601 100644 --- a/src/main/java/model/cards/Card.java +++ b/src/main/java/model/cards/Card.java @@ -96,7 +96,6 @@ public int compare(Card card1, Card card2) { public static Card getNewCardObjectByName(String name) { switch (name) { - //monsters: case "Battle OX": return new BattleOX(); @@ -220,7 +219,8 @@ public static Card getNewCardObjectByName(String name) { case "Command Knight": return new CommandKnight(); - //spell and traps: + + case "Trap Hole": return new TrapHole(); @@ -383,4 +383,5 @@ public Kind getCardKind() { } public enum Kind {MONSTER, MAGIC} + } diff --git a/src/main/java/model/cards/Deck.java b/src/main/java/model/cards/Deck.java index 1e30dc59..33accc05 100644 --- a/src/main/java/model/cards/Deck.java +++ b/src/main/java/model/cards/Deck.java @@ -69,8 +69,7 @@ public void setActive(boolean active) { } public boolean isDeckValid() { - //TODO checkForEachCardFrequency - return true; + return mainDeck.size() >= 40; } public boolean isMainDeckFull() { @@ -160,7 +159,7 @@ public String toString() { } } - public Deck clone() {//todo use this except reference + public Deck clone() { Deck copiedDeck = new Deck(this.getName()); for (Card card : mainDeck) { copiedDeck.addCardToMainDeck(card.clone()); diff --git a/src/main/java/model/cards/justforscore/JustForScore.java b/src/main/java/model/cards/justforscore/JustForScore.java index d31d6395..2b54b268 100644 --- a/src/main/java/model/cards/justforscore/JustForScore.java +++ b/src/main/java/model/cards/justforscore/JustForScore.java @@ -16,7 +16,7 @@ public class JustForScore { // return monsterCardsDetailsList; // } // -// public static List importTrapAndSpellsDetails() throws FileNotFoundException {//todo save the list in model +// public static List importTrapAndSpellsDetails() throws FileNotFoundException { // List trapAndSpellCardDetailsList = new CsvToBeanBuilder( // new FileReader("src/resources/cards details/SpellTrap.csv")) // .withType(TrapAndSpellCardDetails.class).build().parse(); diff --git a/src/main/java/model/cards/monsters/CommandKnight.java b/src/main/java/model/cards/monsters/CommandKnight.java index da5efe10..5cfa3c0e 100644 --- a/src/main/java/model/cards/monsters/CommandKnight.java +++ b/src/main/java/model/cards/monsters/CommandKnight.java @@ -21,7 +21,7 @@ public CommandKnight() { , 2100, 1000, 1000, 4, MonsterAttribute.FIRE, MonsterType.WARRIOR, CardType.EFFECTIVE); } - public static void handleEffect(CardStatus cardStatus, Cell cell) {//todo deactivate + public static void handleEffect(CardStatus cardStatus, Cell cell) { if (cell == null || cell.isEmpty() || cardStatus != CardStatus.OFFENSIVE_OCCUPIED || !cell.getCellCard().getName().equals("Command Knight")) return; @@ -47,7 +47,7 @@ public static void deActivateEffect(Cell cell) { ViewInterface.showResult("Command Knight effect deActivated: all monsters atk will decrease 400"); try { ((CommandKnight) cell.getCellCard()).owner.getGameBoard().addAllMonstersATK(-400); - } catch (Exception e) { + } catch (Exception ignored) { } } diff --git a/src/main/java/model/cards/monsters/GateGuardian.java b/src/main/java/model/cards/monsters/GateGuardian.java index 21b54074..b3c0f562 100644 --- a/src/main/java/model/cards/monsters/GateGuardian.java +++ b/src/main/java/model/cards/monsters/GateGuardian.java @@ -26,7 +26,6 @@ public static boolean handleEffect(GameController gameController) throws GameExc GameBoard playerGameBoard = gameController.getCurrentTurnPlayer().getGameBoard(); Cell selectedCell = Cell.getSelectedCell(); if (!selectedCell.getCellCard().getName().equals("Gate Guardian")) return false; -//todo پنج تا مانستر برا یه هیولا D: if (!playerGameBoard.doesMonsterZoneHaveMonsters(5) || !gameController.getMainPhase1Controller().canSpecialSummon(gameController)) { throw new GameException(GameResponses.CAN_NOT_SET_OR_SUMMON.response); } diff --git a/src/main/java/model/cards/trapandspells/MonsterReborn.java b/src/main/java/model/cards/trapandspells/MonsterReborn.java index c70a2f6c..95ab72ef 100644 --- a/src/main/java/model/cards/trapandspells/MonsterReborn.java +++ b/src/main/java/model/cards/trapandspells/MonsterReborn.java @@ -82,7 +82,7 @@ public static void setActivated(GameController gameController) { playerGraveyardMonstersCell.remove(choice - 1); try { gameController.getMainPhase1Controller().specialSummon(gameController); - } catch (GameException e) { + } catch (GameException ignored) { } return; } else { diff --git a/src/main/java/model/cards/trapandspells/TwinTwisters.java b/src/main/java/model/cards/trapandspells/TwinTwisters.java index 48f7f345..a92a1064 100644 --- a/src/main/java/model/cards/trapandspells/TwinTwisters.java +++ b/src/main/java/model/cards/trapandspells/TwinTwisters.java @@ -69,7 +69,7 @@ public static void setActivated(GameController gameController) { } Cell.setSelectedCell(oldSelectedCell); - updateSpellInGameBoard(gameController);//todo, conflict with AI + updateSpellInGameBoard(gameController); } private static boolean canActivate(GameController gameController) { diff --git a/src/main/java/view/gamephases/Duel.java b/src/main/java/view/gamephases/Duel.java index 40b64fcc..c5629eb1 100644 --- a/src/main/java/view/gamephases/Duel.java +++ b/src/main/java/view/gamephases/Duel.java @@ -62,7 +62,6 @@ public static void runGame(GameController gameController) { break; } } - // showPhase(); AIPlayerController.recordGameLogs(gameController); } gameController.endGameRound(); diff --git a/src/main/java/view/gamephases/MainPhase1.java b/src/main/java/view/gamephases/MainPhase1.java index 59be36ee..4a07403b 100644 --- a/src/main/java/view/gamephases/MainPhase1.java +++ b/src/main/java/view/gamephases/MainPhase1.java @@ -42,22 +42,6 @@ protected void execute() { @Override protected String processCommand(String command) { String response = ""; - //todo injaro badan azam beporsin tozih bedam bahaton check konam - /* if (gameController.shouldRitualSummonNow) { - if (command.matches(GameRegexes.SELECT.regex)) { - response = processSelect(command); - } else if (command.matches(GameRegexes.SUMMON.regex)) { - try { - mainPhase1Controller.ritualSummon(gameController); - response=GameResponses.SUMMONED_SUCCESSFULLY.response; - - }catch (GameException e){ - response=e.toString(); - } - } else { - response = GameResponses.YOU_SHOULD_RITUAL_SUMMON_NOW.response; - } - }*/ if (command.equals("show attack")) { System.out.println(((Monster) Cell.getSelectedCell().getCellCard()).getAtk()); } else if (command.equals("remove card")) @@ -124,7 +108,6 @@ else if (gameController.checkCommandIsNotInCurrentPhase(command)) { response = e.toString(); } } - //todo check whether we have handled all methods in this phase or not else if (command.matches(GameRegexes.SURRENDER.regex)) { gameController.surrender(); } else if (command.matches(GameRegexes.INCREASE_LP.regex)) { diff --git a/src/main/java/view/gamephases/MainPhase2.java b/src/main/java/view/gamephases/MainPhase2.java index 71bacc13..5cee2c4d 100644 --- a/src/main/java/view/gamephases/MainPhase2.java +++ b/src/main/java/view/gamephases/MainPhase2.java @@ -40,22 +40,6 @@ protected void execute() { @Override protected String processCommand(String command) { String response = ""; - //todo injaro badan azam beporsin tozih bedam bahaton check konam - /* if (gameController.shouldRitualSummonNow) { - if (command.matches(GameRegexes.SELECT.regex)) { - response = processSelect(command); - } else if (command.matches(GameRegexes.SUMMON.regex)) { - try { - mainPhase2Controller.ritualSummon(gameController); - response=GameResponses.SUMMONED_SUCCESSFULLY.response; - - }catch (GameException e){ - response=e.toString(); - } - } else { - response = GameResponses.YOU_SHOULD_RITUAL_SUMMON_NOW.response; - } - }*/ if (gameController.checkCommandIsNotInCurrentPhase(command)) { response = GameResponses.ACTION_NOT_ALLOWED_FOR_THIS_PHASE.response; } else if (command.matches(GameRegexes.NEXT_PHASE.regex)) { @@ -117,7 +101,6 @@ protected String processCommand(String command) { response = e.toString(); } } - //todo check whether we have handled all methods in this phase or not else if (command.matches(GameRegexes.SURRENDER.regex)) { gameController.surrender(); } else if (command.matches(GameRegexes.INCREASE_LP.regex)) {