From e51bcd3ea0acb803ed6cd0c1b669f88e444636a6 Mon Sep 17 00:00:00 2001 From: Zachary Bonagura Date: Mon, 19 Aug 2024 14:05:33 -0400 Subject: [PATCH] Revert "Merge branch 'star-battle'" This reverts commit a89e85b8ddb3b8af9e4eee519e1b67016a8c2b31, reversing changes made to 7b45547a620f33bccaf7f44f832b50ecec68bf1d. --- .../10x10 Star Battle 2star Normal1.xml | 148 -------- .../5x5 Star Battle 1 star Normal/050101 | 53 --- ...1 visualized (DO NOT OPEN AS A PUZZLE).png | Bin 13377 -> 0 bytes .../5x5 Star Battle 1 star Normal/050102 | 53 --- ...1 visualized (DO NOT OPEN AS A PUZZLE).png | Bin 14302 -> 0 bytes .../puzzle/starbattle/StarBattleBoard.java | 11 - .../rules/ColumnsWithinRegionsDirectRule.java | 88 ++--- .../rules/ColumnsWithinRowsDirectRule.java | 84 ++--- .../rules/EmptyAdjacentDirectRule.java | 95 ----- .../rules/RegionsWithinColumnsDirectRule.java | 6 +- .../rules/RegionsWithinRowsDirectRule.java | 6 +- .../rules/RowsWithinColumnsDirectRule.java | 8 +- .../rules/RowsWithinRegionsDirectRule.java | 87 +---- .../rules/TooFewStarsContradictionRule.java | 6 +- .../rules/starbattle_reference_sheet.txt | 20 - .../rules/EmptyAdjacentDirectRule.png | Bin 1822 -> 0 bytes .../rules/BlackoutDirectRuleTest.java | 292 ++++----------- .../ClashingOrbitContradictionRuleTest.java | 137 ------- .../ColumnsWithinRegionsDirectRuleTest.java | 324 ---------------- .../ColumnsWithinRowsDirectRuleTest.java | 244 ------------ .../rules/EmptyAdjacentDirectRuleTest.java | 177 --------- .../rules/FinishWithStarsDirectRuleTest.java | 209 ----------- .../RegionsWithinColumnsDirectRuleTest.java | 353 ------------------ .../RegionsWithinRowsDirectRuleTest.java | 258 ------------- .../rules/StarOrEmptyCaseRuleTest.java | 68 ---- .../rules/SurroundStarDirectRuleTest.java | 173 --------- .../TooFewStarsContradictionRuleTest.java | 205 ---------- .../TooManyStarsContradictionRuleTests.java | 137 ------- .../Blackout visualized.png | Bin 14116 -> 0 bytes .../rules/BlackoutDirectRule/Corner | 41 -- .../starbattle/rules/BlackoutDirectRule/Edge | 41 -- .../rules/BlackoutDirectRule/Middle | 41 -- .../DiagonallyAdjacent | 40 -- .../DirectlyAdjacentCenter | 40 -- .../DirectlyAdjacentEdge | 40 -- .../FalseContradiction | 40 -- .../FalseStarOverlap | 40 -- .../OneColumnOneCell | 29 -- .../PartialColumnOneCell | 29 -- .../PartialColumnTwoCells | 29 -- .../ColumnsWithinRegionsDirectRule/TwoColumns | 40 -- .../TwoColumnsStarOverlap | 40 -- .../FalseStarOverlap | 40 -- .../NonAdjacentColumns | 29 -- .../ColumnsWithinRowsDirectRule/OneColumn | 29 -- .../ColumnsWithinRowsDirectRule/TwoColumns | 29 -- .../TwoColumnsStarOverlap | 40 -- .../ImproperUseFourLeft | 40 -- .../rules/EmptyAdjacentDirectRule/OneLeft | 40 -- .../rules/EmptyAdjacentDirectRule/ThreeLeft | 40 -- .../rules/EmptyAdjacentDirectRule/TwoLeft | 40 -- .../FinishWithStarsDirectRule/CornerColumn | 41 -- .../rules/FinishWithStarsDirectRule/CornerRow | 41 -- .../FinishWithStarsDirectRule/CornerRowColumn | 41 -- .../FinishWithStarsDirectRule/DoubleRegion | 41 -- .../rules/FinishWithStarsDirectRule/False | 41 -- .../rules/FinishWithStarsDirectRule/Region | 41 -- .../FalseStarOverlap | 40 -- .../OneRegionOneCell | 29 -- .../OneRegionTwoCells | 29 -- .../PartialRegionOneCell | 29 -- .../TwoRegionsOneCell | 40 -- .../TwoRegionsStarOverlap | 40 -- .../TwoRegionsTwoCells | 40 -- .../TwoRegionsTwoCells2 | 40 -- .../FalseStarOverlap | 40 -- .../OneRegionOneCell | 29 -- .../PartialRegionOneCell | 29 -- .../PartialRegionTwoCells | 29 -- .../RegionsWithinRowsDirectRule/StarOverlap | 40 -- .../TwoRegionsOneCell | 40 -- .../StarOrEmptyCaseRule/SimpleStarOrEmpty | 29 -- .../rules/SurroundStarDirectRule/CenterStar | 29 -- .../rules/SurroundStarDirectRule/CornerStar | 29 -- .../rules/TooFewStarsContradictionRule/Column | 40 -- .../FalseContradiction | 40 -- .../NotEnoughSpace | 40 -- .../rules/TooFewStarsContradictionRule/Region | 40 -- .../rules/TooFewStarsContradictionRule/Row | 40 -- .../TwoStarColumn | 40 -- .../TwoStarFalseContradiction | 40 -- .../ColumnOverloaded | 41 -- .../TooManyStarsContradictionRule/Correct | 41 -- .../Region Overloaded Visualized-01.png | Bin 15488 -> 0 bytes .../RegionOverloaded | 41 -- .../RowOverloaded | 41 -- 86 files changed, 169 insertions(+), 5161 deletions(-) delete mode 100644 puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml delete mode 100644 puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 delete mode 100644 puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 visualized (DO NOT OPEN AS A PUZZLE).png delete mode 100644 puzzles files/starbattle/5x5 Star Battle 1 star Normal/050102 delete mode 100644 puzzles files/starbattle/6x6 Star Battle 1 star Normal/6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png delete mode 100644 src/main/java/edu/rpi/legup/puzzle/starbattle/rules/EmptyAdjacentDirectRule.java delete mode 100644 src/main/java/edu/rpi/legup/puzzle/starbattle/rules/starbattle_reference_sheet.txt delete mode 100644 src/main/resources/edu/rpi/legup/images/starbattle/rules/EmptyAdjacentDirectRule.png delete mode 100644 src/test/java/puzzles/starbattle/rules/ClashingOrbitContradictionRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/ColumnsWithinRowsDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/EmptyAdjacentDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/FinishWithStarsDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/RegionsWithinColumnsDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/RegionsWithinRowsDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/StarOrEmptyCaseRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/SurroundStarDirectRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/TooFewStarsContradictionRuleTest.java delete mode 100644 src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java delete mode 100644 src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Blackout visualized.png delete mode 100644 src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner delete mode 100644 src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge delete mode 100644 src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle delete mode 100644 src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DiagonallyAdjacent delete mode 100644 src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentCenter delete mode 100644 src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentEdge delete mode 100644 src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/FalseContradiction delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/FalseStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/OneColumnOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnTwoCells delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumns delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumnsStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/FalseStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/NonAdjacentColumns delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/OneColumn delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumns delete mode 100644 src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumnsStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ImproperUseFourLeft delete mode 100644 src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/OneLeft delete mode 100644 src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ThreeLeft delete mode 100644 src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/TwoLeft delete mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn delete mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow delete mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn delete mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion delete mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False delete mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/FalseStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionTwoCells delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/PartialRegionOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells2 delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/FalseStarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/OneRegionOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionTwoCells delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/StarOverlap delete mode 100644 src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/TwoRegionsOneCell delete mode 100644 src/test/resources/puzzles/starbattle/rules/StarOrEmptyCaseRule/SimpleStarOrEmpty delete mode 100644 src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar delete mode 100644 src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CornerStar delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Column delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/FalseContradiction delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/NotEnoughSpace delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Region delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Row delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarColumn delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarFalseContradiction delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Region Overloaded Visualized-01.png delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded delete mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded diff --git a/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml b/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml deleted file mode 100644 index aac7dd8f9..000000000 --- a/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 b/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 deleted file mode 100644 index b86e16ff2..000000000 --- a/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 visualized (DO NOT OPEN AS A PUZZLE).png b/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050101 visualized (DO NOT OPEN AS A PUZZLE).png deleted file mode 100644 index 5e42c203340e6efe38fdd4b9f27e8959b437ae5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13377 zcmeI3e^gV~9l&2mNGyaPV#`YkgkUFXnTDD{q)N#6A-@D+&Z<@R5+}msK%7{hG$bSw zl=7p+_6(^)ARckGBCS1&LLuS7WUU1eD|AIjRDLPYP#DG#$=*vy!Z};c8QVXuzCUs} z=e|7Nz2AH9_kQxZ_np`tyVc2o<^TYIQ)EPF0s!E&$Vaz~h?G25C1xOhUJ^v?J^}!a zE6@+__Pty^0C)kBq1+u=r^l5zCxE%UP1e~mnnQQgT(JkboyK3;@v2r+t1)nyStMO^Lj?|V4U|I^9>+QoR^0)hOeeU zGI;sONOD58UzYyi+K|*37B`yW&Stg=1GUPTu^#H(v_2qnBw1JM(U9@f0iJt8R}EKf z5*Dg&sbN8Ge7v7jCIh6Eb)ABrW@W_nlaqpx;&Vcs^w{)>OZr+o9&hTV31ul-UE(j; z*^gGjx7*(r1YT^e%Vz}or+takR1UlfLC`|i?fZRzxu;i>0~89yLir2U)i2u6#@dUG zbBX%rpTe*V;K1;WQp3qdJ6`_ncMNK9h>Pa1fY~&sJ$#k~%Lx7b{bY_oPaRVR zyDBP`vk$hDQ;Nsv))K7}pH& z;+0mY+vmX|h|irP!g+X-isIq1T25zYjV=oj?)x@kYSQ>qpaHO8EzR~rUZ|e|*c!5U zZ2#}M1dAsYPi#%b<`I?$p3gkMXWWSEt-A+lr>A|&CsZnC#d_lMB9w^gR1c>f5QJAU zro5S+_A?~;0cRn1|8E>qUU|a;Kud%M??cCPQA!d!oQtapqIvHi(u3Xucg|Do<>D2B z;hD8W7Y6Qru~k?Z#gxo$S0fKjW+qVebI)>iJw3Rx$Sz7z4Hr-)df|xxiCMXsaP41# z(&o@J;hh82)p)S>B)3IX(C$Exz1^zOJNYPCHRCZT-(5&vfFGxo2-{))f_&=7N`K)Nh zi&Cb33F37zY4aJRn42+jb)1i^y1Inl{r$#TFzA^UH}c6Tnsc@Td>?3QXAB5 zGf0>lL?-Twr^B)F@Os zNPEBgOV2@dstb=n-06R%n|anxJN<+{<-b@enSBpre<`sgX-!8LyzZ@?dp6UOGl-N~ zO4|<|7BRI%mZ-@(o~xS~laKKMB}zv9P1&yP&E1+>I_Q+6lZsyJd|D#m5-k2~vC#8H zgkJY~cYC8SuYA=-pYqBW0CJgTHj1&%6&a0+Q){;N>>t6Nk4=~;uFk1|~Wi-iT1jBJ*vI~uW<|ZWY zS<6$%?@aW?HaS@}s1>lb6M{c(MBpyj>o!==JjopG{0}4TwCwyR0N^@;o&_*P$h6yI zYmi{&*dl^0BG@8=nTNx;PB_=v5N}RHrI>z&$Aj|~eQ51A?3lwui2A6b4v(ZAll1QU+f#*uA z6yts6qe|6}E{@@_2;%Ne@hf~rqPTVHUJRuVH|X~ zR6*I>e{X9@ek{cLEX8@(DUizEw29g*G6eO16{rWyl~|`VnLfSyn-vmRtqYY{~ZyQ~s|K2e_q`UZt#s$yU6x(L`IR6H%OrTy6>XgDU5nm8_$> zfG z2R`Ln-evhb!}*R=!{Mql)xcMCtJ-RjPLujXd~ZSy zy@rdAk4N^CjUJDIv$#Im8R@@04Y<@M{l9--awcq$O}mDM2ZRu474TTsQ6c+Rah}@r aW(gi})m)Wk5(|9Lq!$?$8(Q~kNb*l)w!ydn diff --git a/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050102 b/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050102 deleted file mode 100644 index 73d131d69..000000000 --- a/puzzles files/starbattle/5x5 Star Battle 1 star Normal/050102 +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/puzzles files/starbattle/6x6 Star Battle 1 star Normal/6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png b/puzzles files/starbattle/6x6 Star Battle 1 star Normal/6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png deleted file mode 100644 index 584d081539b5d4cf96eee24d5decf73f12076fb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14302 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 c4j(W;vBT|k> subsets, int current, int skip, int size) { - if (current == size) { - return; - } - List> newSubsets = new LinkedList>(); - if (current != skip) { - for (List subset: subsets) { - List copy = new LinkedList(subset); - copy.add(current); - newSubsets.add(copy); - } - subsets.addAll(newSubsets); - List oneMember = new LinkedList(); - oneMember.add(current); - subsets.add(oneMember); - } - generateSubsets(subsets, current + 1 == skip ? current + 2 : current + 1, skip, size); - } - /** * Checks whether the child node logically follows from the parent node at the specific * puzzleElement index using this rule @@ -51,45 +31,53 @@ private void generateSubsets(List> subsets, int current, int skip, */ @Override public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElement) { - + // assumption: the rule has been applied to its fullest extent and the rows and regions + // are now mutually encompassing StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleBoard origBoard = (StarBattleBoard) transition.getParents().get(0).getBoard(); StarBattleCell cell = (StarBattleCell) board.getPuzzleElement(puzzleElement); - int dim = board.getSize(); - int region = cell.getGroupIndex(); - int column = cell.getLocation().x; - if (cell.getType() != StarBattleCellType.BLACK) { return "Only black cells are allowed for this rule!"; } + // the columns that are contained + Set columns = new HashSet(); + // the regions that contain them + Set regions = new HashSet(); + // columns and regions to process + Set columnsToCheck = new HashSet(); + Set regionsToCheck = new HashSet(); + int columnStars = 0; + int regionStars = 0; + regions.add(cell.getGroupIndex()); + regionsToCheck.add(cell.getGroupIndex()); - List> subsets = new LinkedList>(); - generateSubsets(subsets,0, column, dim); - - for (List columnSubset: subsets) { - Set regions = new HashSet(); - boolean containsRegion = false; - int columnStars = 0; - int regionStars = 0; - for (int c: columnSubset) { - columnStars += origBoard.columnStars(c); - for (StarBattleCell ce: origBoard.getCol(c)) { - if (ce.getType() == StarBattleCellType.UNKNOWN) { - if (regions.add(ce.getGroupIndex())) { - regionStars += origBoard.getRegion(ce.getGroupIndex()).numStars(); - } - if (ce.getGroupIndex() == region) { - containsRegion = true; - } + while (!columnsToCheck.isEmpty() || !regionsToCheck.isEmpty()) { + for (int r : regionsToCheck) { + regionStars += board.getRegion(r).numStars(); + for (PuzzleElement c : board.getRegion(r).getCells()) { + int column = ((StarBattleCell) c).getLocation().x; + if (columns.add(column)) { + columnsToCheck.add(column); } } + regionsToCheck.remove(r); } - if (containsRegion && board.getPuzzleNumber() * columnSubset.size() - columnStars - >= board.getPuzzleNumber() * regions.size() - regionStars) { - return null; + for (int c : columnsToCheck) { + columnStars += board.columnStars(c); + for (int i = 0; i < board.getSize(); ++i) { + int region = board.getCell(c, i).getGroupIndex(); + if (regions.add(region)) { + regionsToCheck.add(region); + } + } + columnsToCheck.remove(c); } } - return "The columns must fully fit within regions with the same number of stars missing!"; + // are the columns and regions missing an equal amount of stars + if (board.getPuzzleNumber() * columns.size() - columnStars + != board.getPuzzleNumber() * regions.size() - regionStars) { + return "The number of missing stars in the columns and regions must be equal and every extraneous cell must be black!"; + } + return null; } /** diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/ColumnsWithinRowsDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/ColumnsWithinRowsDirectRule.java index da5c7bfd3..5d108a0cd 100644 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/ColumnsWithinRowsDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/ColumnsWithinRowsDirectRule.java @@ -8,8 +8,8 @@ import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; import edu.rpi.legup.puzzle.starbattle.StarBattleCell; import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; - -import java.util.*; +import java.util.HashSet; +import java.util.Set; public class ColumnsWithinRowsDirectRule extends DirectRule { @@ -21,25 +21,6 @@ public ColumnsWithinRowsDirectRule() { "edu/rpi/legup/images/starbattle/rules/ColumnsWithinRowsDirectRule.png"); } - private void generateSubsets(List> subsets, int current, int skip, int size) { - if (current == size) { - return; - } - List> newSubsets = new LinkedList>(); - if (current != skip) { - for (List subset: subsets) { - List copy = new LinkedList(subset); - copy.add(current); - newSubsets.add(copy); - } - subsets.addAll(newSubsets); - List oneMember = new LinkedList(); - oneMember.add(current); - subsets.add(oneMember); - } - generateSubsets(subsets, current + 1 == skip ? current + 2 : current + 1, skip, size); - } - /** * Checks whether the child node logically follows from the parent node at the specific * puzzleElement index using this rule @@ -55,43 +36,52 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem // assumption: the rule has been applied to its fullest extent and the rows and columns // are now mutually encompassing StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleBoard origBoard = (StarBattleBoard) transition.getParents().get(0).getBoard(); StarBattleCell cell = (StarBattleCell) board.getPuzzleElement(puzzleElement); - int dim = board.getSize(); - int row = cell.getLocation().y; - int column = cell.getLocation().x; - if (cell.getType() != StarBattleCellType.BLACK) { return "Only black cells are allowed for this rule!"; } - List> subsets = new LinkedList>(); - generateSubsets(subsets,0, column, dim); + // the columns that are contained + Set columns = new HashSet(); + // the rows that contain them + Set rows = new HashSet(); + // columns and rows to process + Set columnsToCheck = new HashSet(); + Set rowsToCheck = new HashSet(); + int columnStars = 0; + int rowStars = 0; + int firstRow = cell.getLocation().y; + rows.add(firstRow); + rowsToCheck.add(firstRow); - for (List columnSubset: subsets) { - Set rows = new HashSet(); - boolean containsRow = false; - int columnStars = 0; - int rowStars = 0; - for (int c: columnSubset) { - columnStars += origBoard.columnStars(c); - for (StarBattleCell ce: origBoard.getCol(c)) { - if (ce.getType() == StarBattleCellType.UNKNOWN) { - if (rows.add(ce.getLocation().y)) { - rowStars += origBoard.rowStars(ce.getLocation().y); - } - if (ce.getLocation().y == row) { - containsRow = true; - } + while (!columnsToCheck.isEmpty() || !rowsToCheck.isEmpty()) { + for (int r : rowsToCheck) { + rowStars += board.rowStars(r); + for (PuzzleElement c : board.getRow(r)) { + int column = ((StarBattleCell) c).getLocation().x; + if (columns.add(column)) { + columnsToCheck.add(column); } } + rowsToCheck.remove(r); } - if (containsRow && board.getPuzzleNumber() * columnSubset.size() - columnStars - >= board.getPuzzleNumber() * rows.size() - rowStars) { - return null; + for (int c : columnsToCheck) { + columnStars += board.columnStars(c); + for (PuzzleElement r : board.getCol(c)) { + int row = ((StarBattleCell) r).getLocation().y; + if (rows.add(row)) { + rowsToCheck.add(row); + } + } + columnsToCheck.remove(c); } } - return "The columns must fully fit within rows with the same number of stars missing!"; + // are the columns and regions missing an equal amount of stars + if (board.getPuzzleNumber() * columns.size() - columnStars + != board.getPuzzleNumber() * rows.size() - rowStars) { + return "The number of missing stars in the columns and rows must be equal and every extraneous cell must be black!"; + } + return null; } /** diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/EmptyAdjacentDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/EmptyAdjacentDirectRule.java deleted file mode 100644 index 0cb43ce06..000000000 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/EmptyAdjacentDirectRule.java +++ /dev/null @@ -1,95 +0,0 @@ -package edu.rpi.legup.puzzle.starbattle.rules; - -import edu.rpi.legup.model.gameboard.Board; -import edu.rpi.legup.model.gameboard.PuzzleElement; -import edu.rpi.legup.model.rules.ContradictionRule; -import edu.rpi.legup.model.rules.DirectRule; -import edu.rpi.legup.model.tree.TreeNode; -import edu.rpi.legup.model.tree.TreeTransition; -import edu.rpi.legup.puzzle.nurikabe.NurikabeCell; -import edu.rpi.legup.puzzle.nurikabe.NurikabeType; -import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; -import edu.rpi.legup.puzzle.starbattle.StarBattleCell; -import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; - -public class EmptyAdjacentDirectRule extends DirectRule { - - public EmptyAdjacentDirectRule() { - super( - "STBL-BASC-0010", - "Empty Adjacent", - "Tiles next to other tiles that need to contain a star to reach the puzzle number for their region/row/column need to be blacked out.", - "edu/rpi/legup/images/starbattle/rules/EmptyAdjacentDirectRule.png"); - } - - /** - * Checks whether the child node logically follows from the parent node at the specific - * puzzleElement index using this rule - * - * @param transition transition to check - * @param puzzleElement equivalent puzzleElement - * @return null if the child node logically follow from the parent node at the specified - * puzzleElement, otherwise error message - */ - @Override - public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElement) { - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleBoard origBoard = (StarBattleBoard) transition.getParents().get(0).getBoard(); - ContradictionRule contraRule = new TooFewStarsContradictionRule(); - - StarBattleCell cell = (StarBattleCell) board.getPuzzleElement(puzzleElement); - - if (cell.getType() != StarBattleCellType.BLACK) { - return super.getInvalidUseOfRuleMessage() - + ": Only black cells are allowed for this rule!"; - } - - int x = cell.getLocation().x; - int y = cell.getLocation().y; - - StarBattleCell northWest = board.getCell(x - 1, y - 1); - StarBattleCell north = board.getCell(x, y - 1); - StarBattleCell northEast = board.getCell(x + 1, y - 1); - StarBattleCell west = board.getCell(x - 1, y); - StarBattleCell east = board.getCell(x + 1, y); - StarBattleCell southWest = board.getCell(x - 1, y + 1); - StarBattleCell south = board.getCell(x, y + 1); - StarBattleCell southEast = board.getCell(x + 1, y + 1); - - StarBattleCell[] adjacent = {northWest, north, northEast, west, east, southWest, south, southEast}; - - StarBattleBoard modified = (StarBattleBoard) origBoard.copy(); - modified.getPuzzleElement(puzzleElement).setData(StarBattleCellType.STAR.value); - for(int i = 0; i < 8; i++){ //sets each spot to a black square if not filled - StarBattleCell temp = adjacent[i]; - - if (temp != null && temp.getType() == StarBattleCellType.UNKNOWN) { - //temp.setData(StarBattleCellType.BLACK.value); - int X = temp.getLocation().x; - int Y = temp.getLocation().y; - modified.getCell(X,Y).setData(StarBattleCellType.BLACK.value); - System.out.println("covering square " + X + " " + Y + " type " + modified.getCell(X,Y).getType() + " i = " + i + "\n"); - if(contraRule.checkContradictionAt(modified, temp) == null){ - System.out.println("Good job!"); - return null; //used correctly if even one space causes a toofewstars issue - } - } - } - System.out.println("Wait why did this exit?\n"); - - return "Black cells must be placed adjacent to a tile(s) where a star is needed!"; - } - - /** - * Creates a transition {@link Board} that has this rule applied to it using the {@link - * TreeNode}. - * - * @param node tree node used to create default transition board - * @return default board or null if this rule cannot be applied to this tree node - */ - @Override - public Board getDefaultBoard(TreeNode node) { - - return null; - } -} diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinColumnsDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinColumnsDirectRule.java index 06d73cc1f..7022a06ac 100644 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinColumnsDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinColumnsDirectRule.java @@ -27,11 +27,7 @@ public RegionsWithinColumnsDirectRule() { @Override public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElement) { ColumnsWithinRegionsDirectRule correspondingRule = new ColumnsWithinRegionsDirectRule(); - String result = correspondingRule.checkRuleRawAt(transition, puzzleElement); - if (result != null && result.equals("The columns must fully fit within regions with the same number of stars missing!")) { - return "The regions must fully fit within columns with the same number of stars missing!"; - } - return result; + return correspondingRule.checkRuleRawAt(transition, puzzleElement); } /** diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinRowsDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinRowsDirectRule.java index 012dc0640..7ab50d42b 100644 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinRowsDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RegionsWithinRowsDirectRule.java @@ -28,11 +28,7 @@ public RegionsWithinRowsDirectRule() { public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElement) { RowsWithinRegionsDirectRule correspondingRule = new RowsWithinRegionsDirectRule(); - String result = correspondingRule.checkRuleRawAt(transition, puzzleElement); - if (result != null && result.equals("The rows must fully fit within regions with the same number of stars missing!")) { - return "The regions must fully fit within rows with the same number of stars missing!"; - } - return result; + return correspondingRule.checkRuleRawAt(transition, puzzleElement); } /** diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinColumnsDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinColumnsDirectRule.java index a22c31a59..2df20e464 100644 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinColumnsDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinColumnsDirectRule.java @@ -11,7 +11,7 @@ public class RowsWithinColumnsDirectRule extends DirectRule { public RowsWithinColumnsDirectRule() { super( "STBL-BASC-0007", - "Rows Within Columns", + "Rows Withing Columns", "If a number of rows is fully contained by a number of columns with an equal number of missing stars, spaces of other rows in those columns must be black.", "edu/rpi/legup/images/starbattle/rules/RowsWithinColumnsDirectRule.png"); } @@ -29,11 +29,7 @@ public RowsWithinColumnsDirectRule() { public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElement) { ColumnsWithinRowsDirectRule correspondingRule = new ColumnsWithinRowsDirectRule(); - String result = correspondingRule.checkRuleRawAt(transition, puzzleElement); - if (result != null && result.equals("The columns must fully fit within rows with the same number of stars missing!")) { - return "The rows must fully fit within columns with the same number of stars missing!"; - } - return result; + return correspondingRule.checkRuleRawAt(transition, puzzleElement); } /** diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinRegionsDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinRegionsDirectRule.java index de9aaf044..78f8f00e7 100644 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinRegionsDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/RowsWithinRegionsDirectRule.java @@ -8,8 +8,8 @@ import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; import edu.rpi.legup.puzzle.starbattle.StarBattleCell; import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; - -import java.util.*; +import java.util.HashSet; +import java.util.Set; public class RowsWithinRegionsDirectRule extends DirectRule { public RowsWithinRegionsDirectRule() { @@ -20,25 +20,6 @@ public RowsWithinRegionsDirectRule() { "edu/rpi/legup/images/starbattle/rules/RowsWithinRegionsDirectRule.png"); } - private void generateSubsets(List> subsets, int current, int skip, int size) { - if (current == size) { - return; - } - List> newSubsets = new LinkedList>(); - if (current != skip) { - for (List subset: subsets) { - List copy = new LinkedList(subset); - copy.add(current); - newSubsets.add(copy); - } - subsets.addAll(newSubsets); - List oneMember = new LinkedList(); - oneMember.add(current); - subsets.add(oneMember); - } - generateSubsets(subsets, current + 1 == skip ? current + 2 : current + 1, skip, size); - } - /** * Checks whether the child node logically follows from the parent node at the specific * puzzleElement index using this rule @@ -54,81 +35,42 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem // assumption: the rule has been applied to its fullest extent and the rows and regions // are now mutually encompassing StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleBoard origBoard = (StarBattleBoard) transition.getParents().get(0).getBoard(); StarBattleCell cell = (StarBattleCell) board.getPuzzleElement(puzzleElement); - int dim = board.getSize(); - int region = cell.getGroupIndex(); - int row = cell.getLocation().y; - if (cell.getType() != StarBattleCellType.BLACK) { return "Only black cells are allowed for this rule!"; } - - List> subsets = new LinkedList>(); - generateSubsets(subsets,0, row, dim); - - for (List rowSubset: subsets) { - Set regions = new HashSet(); - boolean containsRegion = false; - int rowStars = 0; - int regionStars = 0; - for (int r: rowSubset) { - rowStars += origBoard.rowStars(r); - for (StarBattleCell ce: origBoard.getRow(r)) { - if (ce.getType() == StarBattleCellType.UNKNOWN) { - if (regions.add(ce.getGroupIndex())) { - regionStars += origBoard.getRegion(ce.getGroupIndex()).numStars(); - } - if (ce.getGroupIndex() == region) { - containsRegion = true; - } - } - } - } - if (containsRegion && board.getPuzzleNumber() * rowSubset.size() - rowStars - >= board.getPuzzleNumber() * regions.size() - regionStars) { - return null; - } - } - return "The rows must fully fit within regions with the same number of stars missing!"; - - /* // the rows that are contained Set rows = new HashSet(); // the regions that contain them Set regions = new HashSet(); // rows and regions to process - List rowsToCheck = new ArrayList(); - List regionsToCheck = new ArrayList(); + Set rowsToCheck = new HashSet(); + Set regionsToCheck = new HashSet(); int rowStars = 0; int regionStars = 0; regions.add(cell.getGroupIndex()); regionsToCheck.add(cell.getGroupIndex()); while (!rowsToCheck.isEmpty() || !regionsToCheck.isEmpty()) { - for (int i = 0; i < regionsToCheck.size(); ++i) { - int r = regionsToCheck.get(i); + for (int r : regionsToCheck) { regionStars += board.getRegion(r).numStars(); - for (StarBattleCell ro : board.getRegion(r).getCells()) { - int row = ro.getLocation().y; - if (ro.getType() == StarBattleCellType.UNKNOWN && rows.add(row)) { + for (PuzzleElement ro : board.getRegion(r).getCells()) { + int row = ((StarBattleCell) ro).getLocation().y; + if (rows.add(row)) { rowsToCheck.add(row); } } - regionsToCheck.remove(i); - --i; + regionsToCheck.remove(r); } - for (int j = 0; j < rowsToCheck.size(); ++j) { - int r = rowsToCheck.get(j); + for (int r : rowsToCheck) { rowStars += board.rowStars(r); for (int i = 0; i < board.getSize(); ++i) { int region = board.getCell(i, r).getGroupIndex(); - if (board.getCell(i,r).getType() == StarBattleCellType.UNKNOWN && regions.add(region)) { + if (regions.add(region)) { regionsToCheck.add(region); } } - rowsToCheck.remove(j); - --j; + rowsToCheck.remove(r); } } // are the columns and regions missing an equal amount of stars @@ -136,12 +78,7 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem != board.getPuzzleNumber() * regions.size() - regionStars) { return "The number of missing stars in the rows and regions must be equal and every extraneous cell must be black!"; } - if (rows.contains(cell.getLocation().y)) { - return "Only black out cells outside the row(s)!"; - } return null; - - */ } /** diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/TooFewStarsContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/TooFewStarsContradictionRule.java index 358e5b9bd..e88b7c6b9 100644 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/TooFewStarsContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/TooFewStarsContradictionRule.java @@ -38,16 +38,14 @@ public String checkContradictionAt(Board board, PuzzleElement puzzleElement) { int rowCount = 0; int columnCount = 0; for (int i = 0; i < sbBoard.getSize(); ++i) { - if (sbBoard.getCell(i, row).getType() != StarBattleCellType.BLACK) { + if (sbBoard.getCell(row, i).getType() != StarBattleCellType.BLACK) { ++rowCount; } - if (sbBoard.getCell(column, i).getType() != StarBattleCellType.BLACK) { + if (sbBoard.getCell(i, column).getType() != StarBattleCellType.BLACK) { ++columnCount; } } - System.out.println("rowCount = " + rowCount + " columnCount = " + columnCount + " at " + column + "," + row + "\n"); if (rowCount < sbBoard.getPuzzleNumber() || columnCount < sbBoard.getPuzzleNumber()) { - System.out.println("Returning Null\n"); return null; } StarBattleRegion region = sbBoard.getRegion(cell); diff --git a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/starbattle_reference_sheet.txt b/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/starbattle_reference_sheet.txt deleted file mode 100644 index c332fcee0..000000000 --- a/src/main/java/edu/rpi/legup/puzzle/starbattle/rules/starbattle_reference_sheet.txt +++ /dev/null @@ -1,20 +0,0 @@ -Case Rules: -Add Star: STBL-CASE-0001 -Star or Empty: STBL-CASE-0002 - -Basic Rules: -Blackout: STBL-BASC-0001 -Columns Within Regions: STBL-BASC-0002 -Columns Within Rows: STBL-BASC-0003 -Finish With Stars: STBL-BASC-0004 -Regions Within Columns: STBL-BASC-0005 -Regions Within Rows: STBL-BASC-0006 -Rows Within Columns: STBL-BASC-0007 -Rows Within Regions: STBL-BASC-0008 -Surround Star: STBL-BASC-0009 -Empty Adjacent: STBL-BASC-0010 - -Contradiction Rules: -Too Many Stars: STBL-CONT-0001 -Too Few Stars: STBL-CONT-0002 -Clashing Orbit: STBL-CONT-0003 \ No newline at end of file diff --git a/src/main/resources/edu/rpi/legup/images/starbattle/rules/EmptyAdjacentDirectRule.png b/src/main/resources/edu/rpi/legup/images/starbattle/rules/EmptyAdjacentDirectRule.png deleted file mode 100644 index db3c0d9d56b4d727026e600e2f9df3db6e251c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1822 zcmY+_cQhN0767C+ zYuBijNF6bQQhSyDyx;Hjo%8;<_nz;+_jB&K32;+=PPQv-004l~&_EY)F;V|17W#|+ zD~6uoVhH1)HaH7EcU*{T02-i;@^eFr8Tz_n&XCmxS{(pjdT*$!Z5cYV@o#${ zeyGp~Ot5>%X!Xieps9W0Ga!@QW-M?_C@tmy0szSwBz2r%BW|^=W~QpM@QQLv*6Z?? zxo~>2j2A!c#Lvo1k>(NUkP_%jAbBvU0b}n`eBBE}&W&(3Rl=;yYhj{xheMQ(J0b{V zGMNVwo0c$5zh)9Y(AlesnC#0IkGj}>I%80MPx z3y@_1u@VPk0qtq{1r0^3Hf}TqNFZG$&7XTmh1Kkb9Y*cUr*I(>Vg+w|Pb?4X+uO$x z%#~lHis)FC+@oz>(MvKGhZ1?^4l6b5=~CENwG~1oGKCfRp#yZQZ4V!zoJ82`Ji1SMcz^yzMlrcYbRh8jLY?Hha(q%9&HXR7FRgE%zKZ}WA)hF2suzrZmojX6)t69;{ z9tBRvi33-IgMzGv3#6iyt81(Ib=-@O>>dWIINYfJwmPO&1Nok)NfF#RmMB!5uH&NsLt|E%&rJLvXmKC9T;lr@EM>u9Z6ATqE(d^VyP5sR}=A#041I zPho{@QD_gC!{>+<9H&G%av*FX!he5FvD{1zq>qLA#M9!^JdroG5DL8kZMH-11OxD| zxk|C&aoQU<9(k99%Hm6m%|9-2{o~~FH{suELcc*{7@2+}y8J;`6^%hAhqEz?H@l3l z2u<`jt+wK+Yf78iHUWBJ5ep*u{iq%o30~Wot4|A;LT^b<`;rNJ?P(<8K~zIeA8D~A zb8N4@crojmFV+Xw2SiteS&7*!#~mg*j-r{R_bsk08U*umBEZ%$2(3CNn)Cb?!?8#w(*2n`K~Nzyc=rV$heMg>3;5 zaHE7*VxUhs>Q{H-9(#!;KD)I7jTDTJ-&!m^lE<`3(+V0L3gcO}GdnxQjfjG04Lw%y zd?F|-o~t8}M_d(z(fwQy43?>u3Gibu-=F-pPMM=*G-jyEXIWPp!zeGi|8)w=E)^CA zmVqqmY_3MH#>yWh5-m_N717!7g(Nd!aHurnKlk_lT;Sgq_+Q!m=s#Hz2pj)zR(Fpr zzY<4~k3*^3zlf>j`~n!Fn`h5}v4=$$crz8Dp(`3}S|yT$Oq=B5Q+ATBqfCnGVm()=;Z@H@&HYIX9um+k+Xi>wP!* zvRI8SS1mIzJB+$Lb<{B6<8qoVe|;x}i|eOumiHtH^h6l)vAy-=Y){m=@eT3y09tV2 zE&jQ(vYKOxX^}e3^sU!${>$oWk#^Mv|MjW(mKHe}%&ARv7j8UQ)E*wPHDi@w^vE2# zYZMuIy1kHsNlvwODtvUuI-6#0!h_#j4ln cases = RULE.getCases(board, cell); - - StarBattleBoard caseBoard1 = (StarBattleBoard) cases.get(0); - StarBattleBoard caseBoard2 = (StarBattleBoard) cases.get(1); - StarBattleCellType board1Type = caseBoard1.getCell(0, 0).getType(); - StarBattleCellType board2Type = caseBoard2.getCell(0, 0).getType(); - - Assert.assertTrue( - (board1Type.equals(StarBattleCellType.BLACK) || board1Type.equals(StarBattleCellType.STAR)) - && (board2Type.equals(StarBattleCellType.BLACK) - || board2Type.equals(StarBattleCellType.STAR))); - Assert.assertFalse(board1Type.equals(board2Type)); - Assert.assertEquals(caseBoard1.getHeight(), caseBoard2.getHeight(), board.getHeight()); - Assert.assertEquals(caseBoard1.getWidth(), caseBoard2.getWidth(), board.getWidth()); - - for (int i = 0; i < caseBoard1.getHeight(); i++) { - for (int k = 0; k < caseBoard1.getWidth(); k++) { - Point point = new Point(k, i); - if (point.equals(caseBoard1.getCell(k, i).getLocation())) { - continue; - } - Assert.assertTrue(caseBoard1.getCell(k, i).equals(caseBoard2.getCell(k, i))); - } - } - } - -} diff --git a/src/test/java/puzzles/starbattle/rules/SurroundStarDirectRuleTest.java b/src/test/java/puzzles/starbattle/rules/SurroundStarDirectRuleTest.java deleted file mode 100644 index db55d0f65..000000000 --- a/src/test/java/puzzles/starbattle/rules/SurroundStarDirectRuleTest.java +++ /dev/null @@ -1,173 +0,0 @@ -package puzzles.starbattle.rules; - -import edu.rpi.legup.model.tree.TreeNode; -import edu.rpi.legup.model.tree.TreeTransition; -import edu.rpi.legup.puzzle.starbattle.StarBattle; -import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; -import edu.rpi.legup.puzzle.starbattle.StarBattleCell; -import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; -import edu.rpi.legup.puzzle.starbattle.rules.SurroundStarDirectRule; -import edu.rpi.legup.save.InvalidFileFormatException; -import java.awt.*; -import legup.MockGameBoardFacade; -import legup.TestUtilities; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -public class SurroundStarDirectRuleTest { - - private static final SurroundStarDirectRule RULE = new SurroundStarDirectRule(); - private static StarBattle starbattle; - - @BeforeClass - public static void setUp() { - MockGameBoardFacade.getInstance(); - starbattle = new StarBattle(); - } - - @Test - public void SurroundStarDirectRule_CenterStarOneTile() throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar", starbattle); - TreeNode rootNode = starbattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell = board.getCell(0,1); - cell.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell); - - Assert.assertNull(RULE.checkRule(transition)); - - Point location = new Point(0, 1); - for (int i = 0; i < board.getHeight(); i++) { - for (int k = 0; k < board.getWidth(); k++) { - Point point = new Point(k, i); - if (point.equals(location)) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } - } - } - } - - @Test - public void SurroundStarDirectRule_CenterStarOneTileDiagonal() throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar", starbattle); - TreeNode rootNode = starbattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell = board.getCell(0,0); - cell.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell); - - Assert.assertNull(RULE.checkRule(transition)); - - Point location = new Point(0, 0); - for (int i = 0; i < board.getHeight(); i++) { - for (int k = 0; k < board.getWidth(); k++) { - Point point = new Point(k, i); - if (point.equals(location)) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } - } - } - } - - @Test - public void SurroundStarDirectRule_CenterStarAllTiles() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar", starbattle); - TreeNode rootNode = starbattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - for (int i = 0; i < board.getWidth(); i++) { - for (int j = 0; j < board.getHeight(); j++) { - if (i != 1 || j != 1) { - StarBattleCell cell = board.getCell(i,j); - cell.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell); - } - } - } - - Assert.assertNull(RULE.checkRule(transition)); - - Point location = new Point(1, 1); - for (int i = 0; i < board.getHeight(); i++) { - for (int k = 0; k < board.getWidth(); k++) { - Point point = new Point(k, i); - if (point.equals(location)) { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } else { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } - } - } - } - - @Test - public void SurroundStarDirectRule_CornerStar() throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/SurroundStarDirectRule/CornerStar", starbattle); - TreeNode rootNode = starbattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,1); - cell1.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell1); - StarBattleCell cell2 = board.getCell(1,0); - cell2.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell2); - StarBattleCell cell3 = board.getCell(1,1); - cell3.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell3); - - Assert.assertNull(RULE.checkRule(transition)); - - Point location1 = new Point(0, 1); - Point location2 = new Point(1,0); - Point location3 = new Point(1,1); - for (int i = 0; i < board.getHeight(); i++) { - for (int k = 0; k < board.getWidth(); k++) { - Point point = new Point(k, i); - if (point.equals(location1) || point.equals(location2) || point.equals(location3)) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } - } - } - } - - @Test - public void SurroundStarDirectRule_FalseSurroundStar() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/SurroundStarDirectRule/CornerStar", starbattle); - TreeNode rootNode = starbattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell = board.getCell(2,0); - cell.setData(StarBattleCellType.BLACK.value); - board.addModifiedData(cell); - - Assert.assertNotNull(RULE.checkRule(transition)); - - for (int i = 0; i < board.getHeight(); i++) { - for (int k = 0; k < board.getWidth(); k++) { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(k, i))); - } - } - } -} diff --git a/src/test/java/puzzles/starbattle/rules/TooFewStarsContradictionRuleTest.java b/src/test/java/puzzles/starbattle/rules/TooFewStarsContradictionRuleTest.java deleted file mode 100644 index 2c90c6fb2..000000000 --- a/src/test/java/puzzles/starbattle/rules/TooFewStarsContradictionRuleTest.java +++ /dev/null @@ -1,205 +0,0 @@ -package puzzles.starbattle.rules; - -import edu.rpi.legup.puzzle.starbattle.rules.ClashingOrbitContradictionRule; -import edu.rpi.legup.model.tree.TreeNode; -import edu.rpi.legup.model.tree.TreeTransition; -import edu.rpi.legup.puzzle.starbattle.StarBattle; -import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; -import edu.rpi.legup.puzzle.starbattle.StarBattleCell; -import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; -import edu.rpi.legup.puzzle.starbattle.rules.TooFewStarsContradictionRule; -import edu.rpi.legup.save.InvalidFileFormatException; -import java.awt.*; -import legup.MockGameBoardFacade; -import legup.TestUtilities; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -public class TooFewStarsContradictionRuleTest { - private static final TooFewStarsContradictionRule RULE = new TooFewStarsContradictionRule(); - private static StarBattle starBattle; - - @BeforeClass - public static void setUp() { - MockGameBoardFacade.getInstance(); - starBattle = new StarBattle(); - } - - /*Too few stars in column */ - @Test - public void TooFewStarsContradictionRule_Column() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/Column", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); - StarBattleCell cell2 = board.getCell(0,1); - StarBattleCell cell3 = board.getCell(0,2); - StarBattleCell cell4 = board.getCell(0,3); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || - point.equals(cell3.getLocation()) || point.equals(cell4.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - - } - - /*Too few stars in row*/ - @Test - public void TooFewStarsContradictionRule_Row() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/Row", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); - StarBattleCell cell2 = board.getCell(1,0); - StarBattleCell cell3 = board.getCell(2,0); - StarBattleCell cell4 = board.getCell(3,0); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || - point.equals(cell3.getLocation()) || point.equals(cell4.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - } - - /*Too few stars in region*/ - @Test - public void TooFewStarsContradictionRule_Region() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/Region", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); - StarBattleCell cell2 = board.getCell(0,1); - StarBattleCell cell3 = board.getCell(1,0); - StarBattleCell cell4 = board.getCell(1,1); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || - point.equals(cell3.getLocation()) || point.equals(cell4.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - } - - /*False contradiction*/ - @Test - public void TooFewStarsContradictionRule_FalseContradiction() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/FalseContradiction", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - - Assert.assertNotNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - - @Test - public void TooFewStarsContradictionRule_NotEnoughSpace() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/NotEnoughSpace", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - - @Test - public void TooFewStarsContradictionRule_TwoStarColumn() - throws InvalidFileFormatException { - - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarColumn", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); - StarBattleCell cell2 = board.getCell(0,1); - StarBattleCell cell3 = board.getCell(0,2); - StarBattleCell cell4 = board.getCell(0,3); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || - point.equals(cell3.getLocation()) || point.equals(cell4.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - } - - @Test - public void TooFewStarsContradictionRule_TwoStarFalseContradiction() - throws InvalidFileFormatException { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarFalseContradiction", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - - Assert.assertNotNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - -} diff --git a/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java b/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java deleted file mode 100644 index 3424bbaac..000000000 --- a/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java +++ /dev/null @@ -1,137 +0,0 @@ -package puzzles.starbattle.rules; - -import edu.rpi.legup.puzzle.starbattle.rules.TooManyStarsContradictionRule; -import edu.rpi.legup.model.tree.TreeNode; -import edu.rpi.legup.model.tree.TreeTransition; -import edu.rpi.legup.puzzle.starbattle.StarBattle; -import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; -import edu.rpi.legup.puzzle.starbattle.StarBattleCell; -import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; -import edu.rpi.legup.save.InvalidFileFormatException; -import java.awt.*; -import legup.MockGameBoardFacade; -import legup.TestUtilities; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -public class TooManyStarsContradictionRuleTests { - private static final TooManyStarsContradictionRule RULE = new TooManyStarsContradictionRule(); - private static StarBattle starBattle; - - @BeforeClass - public static void setUp() { - MockGameBoardFacade.getInstance(); - starBattle = new StarBattle(); - } - - /* Tests the Too Many Stars contradiction rule where a region has - more stars than the puzzle number */ - @Test - public void TooManyStarsContradictionRule_RegionOverloaded() - throws InvalidFileFormatException - { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(2,1); - StarBattleCell cell2 = board.getCell(0,2); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - } - - /* Tests the Too Many Stars contradiction rule where a column has - more stars than the puzzle number */ - @Test - public void TooManyStarsContradictionRule_ColumnOverloaded() - throws InvalidFileFormatException - { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); - StarBattleCell cell2 = board.getCell(0,3); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - } - /* Tests the Too Many Stars contradiction rule where a row has - more stars than the puzzle number */ - @Test - public void TooManyStarsContradictionRule_RowOverloaded() - throws InvalidFileFormatException - { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); - StarBattleCell cell2 = board.getCell(3,0); - - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { - Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - else { - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } - } - /*Tests the Too Many Stars contradiction rule for a false contradiction. */ - @Test - public void TooManyStarsContradictionRule_FalseContradiction() - throws InvalidFileFormatException - { - TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct", starBattle); - TreeNode rootNode = starBattle.getTree().getRootNode(); - TreeTransition transition = rootNode.getChildren().get(0); - transition.setRule(RULE); - - StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - - Assert.assertNotNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); - - for (int i = 0; i < board.getHeight(); ++i) { - for (int j = 0; j < board.getWidth(); ++j) { - Point point = new Point(j,i); - Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } - } - } -} diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Blackout visualized.png b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Blackout visualized.png deleted file mode 100644 index e8670e07ebc8a447459428eb7fa375dec0672028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14116 zcmeHN2~<;88h$S;U;r18BrIX6ic-fED4?tn0Z~DykfN;;B5HIPTuVi02us0*9c&#` zco1C5pv3A_1Sy0?)G8#PQ&b|0C{QIpMRsLg9x?c$_MG;#XY@=sCx>%#@BQz;eE;|V z_ud@v@%GTvplSdBpy|1M*(U%14$D4j1o)ei<`YryKlL5U*X{;@X)|RXutCBd2LNNh za~Z>L?=f~{Uza#4-j}Z7E;J|O`79k0t)ij=UIk1{u&GIPQzJ(}0zoDf9-y9S^^i|b zjAewQd$vi(spI#4usmkRjkK0dsho>ZsB9V_j9oBPW5G6vId*ONh|dhRX#4_L9F;&9rwZc#a(P z`$3OnBiH_4lEo3{CS~X<$pE0mLkDJ!`dnUe_mB(|I;79gf!hz%dS_Sua&zRVUgBKd zq&Zl$IRc_{)C+dNrAP{MyYyb^(YA(%7W@M&okSRSmjNsmJEf3-IL|wqT^u!G=+YAH>@U+it3Q!u23o%X0+zo%w07(^w7@Iv*hkN_eFUW#GhZG{VBk0sXI33-e(a*G_sct?C`{xTunuS zBN!B5o03n=!Se=^2PY%%N>x%Bd#futWy3ss#OMZe%mo<8zwf9`DAcr)uP2^#ueFjj zm^j%6i7zF5|C)rdC$}*CvSGyYsdy#NgV4sU-`$Q#h!#H%Mo{HCQ%OJYLa}b>z>+(Y z>v2l!fqbKtD>cYv-eHIrJCq>u+rz2E4%F&=^y*Y%roqaUA1Z_^4-+y`tAiD**_5O+ zzVuAcaZx<@tX(3JkTIATa&dS#d0CtrIW8`aY`1tZ`GYxggxi8Q<$E+XA_b@wjet}D z%6|Hq~c* zYp2Ts4xU573G|mOdOoI2x)|C*O|N zot|SIew_oQtFsP|bp_cW+8vzI4sJQX+tJx)>tJDom#X=pc@y*k3e$=H>-apnVg@?Z zz?;BnWX53!E`8l4gqcojp~wRC0#7$k&vfjJ6<_~KmQF6SltTt@((~8|e;O(%*>_R6XN-=JQaCdIISm6EP(i^xhCy)x)_bcP5>Mg0c|8 zR6U#;gp>xc&q2zML1j8bi6ZnoZOIRm8oxz2rxmT z6c$jQ?MQ1#dpbTM3Y$PsqlN|rJf-)3nLa#ap!>W+Ri)Aa;kVz{>M85sPwPQW09d7N z9>TkRamav___quCNbMz~(J?t}NnX#H>;is!p&C-ZE$onY?}7kW@mOJwxFg zV3oBwB}GT~FekLWYiTLMq!I-!vMHL+eCcH2ZfZ7L z&rrX1dTVE`@qz`F(+$X1ceHoRkHC$?pbp;BV6GQGLf}j8B;z5ir8`G|^ z7!`jVh7`LJC0d3sE#>_Crr!qo;Le)QzfWsEa7LfRjXE!RuvZV#g1^`eO@_!%kl`>2KGahCaP_D(@qF$y}@N{ zlbY2LVNwGxY!$hNozFG7OiNid1OJ0beTw)E(#?Fefv3u^F+yF)pi&@AO63+nlcY9)SPe zp9@V@yj1aehw6-q_ui9-5EXBzctgb-lc(W#*$=WN7=D5ZY7%U13;1EX%C z3l~0wYsytQYDPDES`F{NB@qf(Q@6h7|gO`z!@q6y=-~0%1#PLfb*>S0F z)WX>Oh{?x`xBeB65UTuA)mc@YRn=J)52$!R#RDoHQ1O6@2i_|lc*}2y0Q+gvs(vmC p?B5r6^ytyH&K&2z>^DSMAiV5b(X(G}o4}3(Jl(vPon6X``7dS?MOOd- diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner deleted file mode 100644 index d1c6722e4..000000000 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge deleted file mode 100644 index 7995657c9..000000000 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle deleted file mode 100644 index b6f483244..000000000 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DiagonallyAdjacent b/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DiagonallyAdjacent deleted file mode 100644 index f63daad23..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DiagonallyAdjacent +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentCenter b/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentCenter deleted file mode 100644 index b57a5989e..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentCenter +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentEdge b/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentEdge deleted file mode 100644 index f5a23b081..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/DirectlyAdjacentEdge +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/FalseContradiction b/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/FalseContradiction deleted file mode 100644 index 04a4a6f6c..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ClashingOrbitContradictionRule/FalseContradiction +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/FalseStarOverlap b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/FalseStarOverlap deleted file mode 100644 index 8a435e5d7..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/FalseStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/OneColumnOneCell b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/OneColumnOneCell deleted file mode 100644 index 4d065b28f..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/OneColumnOneCell +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnOneCell b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnOneCell deleted file mode 100644 index 5c3fc22cc..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnOneCell +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnTwoCells b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnTwoCells deleted file mode 100644 index 463f3a6d7..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/PartialColumnTwoCells +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumns b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumns deleted file mode 100644 index ad5e4d198..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumns +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumnsStarOverlap b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumnsStarOverlap deleted file mode 100644 index 8562a47a8..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRegionsDirectRule/TwoColumnsStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/FalseStarOverlap b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/FalseStarOverlap deleted file mode 100644 index c0ac99a0b..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/FalseStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/NonAdjacentColumns b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/NonAdjacentColumns deleted file mode 100644 index 8d71ffa4f..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/NonAdjacentColumns +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/OneColumn b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/OneColumn deleted file mode 100644 index 9a4dccefd..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/OneColumn +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumns b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumns deleted file mode 100644 index 5c13d38e6..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumns +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumnsStarOverlap b/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumnsStarOverlap deleted file mode 100644 index fac44ff20..000000000 --- a/src/test/resources/puzzles/starbattle/rules/ColumnsWithinRowsDirectRule/TwoColumnsStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ImproperUseFourLeft b/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ImproperUseFourLeft deleted file mode 100644 index 782c1d37d..000000000 --- a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ImproperUseFourLeft +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/OneLeft b/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/OneLeft deleted file mode 100644 index 29005798d..000000000 --- a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/OneLeft +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ThreeLeft b/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ThreeLeft deleted file mode 100644 index ab6f4b178..000000000 --- a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/ThreeLeft +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/TwoLeft b/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/TwoLeft deleted file mode 100644 index 5e8d71fbb..000000000 --- a/src/test/resources/puzzles/starbattle/rules/EmptyAdjacentDirectRule/TwoLeft +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn deleted file mode 100644 index ac0e35380..000000000 --- a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow deleted file mode 100644 index 3fb595a65..000000000 --- a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn deleted file mode 100644 index 44fe2b9ba..000000000 --- a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion deleted file mode 100644 index 16171cd01..000000000 --- a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False deleted file mode 100644 index 16ab2cc7c..000000000 --- a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region deleted file mode 100644 index d3c74607f..000000000 --- a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/FalseStarOverlap b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/FalseStarOverlap deleted file mode 100644 index 812f00b66..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/FalseStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionOneCell b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionOneCell deleted file mode 100644 index c459a9231..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionOneCell +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionTwoCells b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionTwoCells deleted file mode 100644 index 50a775d0b..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/OneRegionTwoCells +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/PartialRegionOneCell b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/PartialRegionOneCell deleted file mode 100644 index 057dc96f0..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/PartialRegionOneCell +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsOneCell b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsOneCell deleted file mode 100644 index 0ee0205ab..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsOneCell +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsStarOverlap b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsStarOverlap deleted file mode 100644 index e7495cabf..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells deleted file mode 100644 index cea670809..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells2 b/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells2 deleted file mode 100644 index 01ecce3ee..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinColumnsDirectRule/TwoRegionsTwoCells2 +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/FalseStarOverlap b/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/FalseStarOverlap deleted file mode 100644 index a582d1c46..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/FalseStarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/OneRegionOneCell b/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/OneRegionOneCell deleted file mode 100644 index 056b67059..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/OneRegionOneCell +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionOneCell b/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionOneCell deleted file mode 100644 index eb9a69787..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionOneCell +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionTwoCells b/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionTwoCells deleted file mode 100644 index 0654ed4dc..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/PartialRegionTwoCells +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/StarOverlap b/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/StarOverlap deleted file mode 100644 index 5a6901ead..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/StarOverlap +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/TwoRegionsOneCell b/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/TwoRegionsOneCell deleted file mode 100644 index 4e19386e4..000000000 --- a/src/test/resources/puzzles/starbattle/rules/RegionsWithinRowsDirectRule/TwoRegionsOneCell +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/StarOrEmptyCaseRule/SimpleStarOrEmpty b/src/test/resources/puzzles/starbattle/rules/StarOrEmptyCaseRule/SimpleStarOrEmpty deleted file mode 100644 index 4d065b28f..000000000 --- a/src/test/resources/puzzles/starbattle/rules/StarOrEmptyCaseRule/SimpleStarOrEmpty +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar b/src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar deleted file mode 100644 index a22f988df..000000000 --- a/src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CenterStar +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CornerStar b/src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CornerStar deleted file mode 100644 index 50558d4c4..000000000 --- a/src/test/resources/puzzles/starbattle/rules/SurroundStarDirectRule/CornerStar +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Column b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Column deleted file mode 100644 index 1d1004b8b..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Column +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/FalseContradiction b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/FalseContradiction deleted file mode 100644 index 0c377a58b..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/FalseContradiction +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/NotEnoughSpace b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/NotEnoughSpace deleted file mode 100644 index 9280cefdd..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/NotEnoughSpace +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Region b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Region deleted file mode 100644 index 2594f46e5..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Region +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Row b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Row deleted file mode 100644 index 67c36c5e8..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/Row +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarColumn b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarColumn deleted file mode 100644 index d781b3092..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarColumn +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarFalseContradiction b/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarFalseContradiction deleted file mode 100644 index 5f1d2753f..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooFewStarsContradictionRule/TwoStarFalseContradiction +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded deleted file mode 100644 index 4e7170b3e..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct deleted file mode 100644 index 15921e601..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Region Overloaded Visualized-01.png b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Region Overloaded Visualized-01.png deleted file mode 100644 index bfe24d1a4d590cb68956d91e1c94f408f0fde414..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15488 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 diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded deleted file mode 100644 index bcf4a679a..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded deleted file mode 100644 index fdf1adc11..000000000 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -