diff --git a/legup-update/build/libs/legup-update-2.0.jar b/legup-update/build/libs/legup-update-2.0.jar index eb09441b0..cfa841042 100644 Binary files a/legup-update/build/libs/legup-update-2.0.jar and b/legup-update/build/libs/legup-update-2.0.jar differ diff --git a/src/main/java/edu/rpi/legup/model/rules/BasicRule.java b/src/main/java/edu/rpi/legup/model/rules/BasicRule.java index 3c36f9bb9..ae30acdf9 100644 --- a/src/main/java/edu/rpi/legup/model/rules/BasicRule.java +++ b/src/main/java/edu/rpi/legup/model/rules/BasicRule.java @@ -11,12 +11,13 @@ public abstract class BasicRule extends Rule { /** * BasicRule Constructor creates a new basic rule. * + * @param ruleID ID of the rule * @param ruleName name of the rule * @param description description of the rule * @param imageName file name of the image */ - public BasicRule(String ruleName, String description, String imageName) { - super(ruleName, description, imageName); + public BasicRule(String ruleID, String ruleName, String description, String imageName) { + super(ruleID, ruleName, description, imageName); this.ruleType = BASIC; } diff --git a/src/main/java/edu/rpi/legup/model/rules/CaseRule.java b/src/main/java/edu/rpi/legup/model/rules/CaseRule.java index 1390997ca..72b336829 100644 --- a/src/main/java/edu/rpi/legup/model/rules/CaseRule.java +++ b/src/main/java/edu/rpi/legup/model/rules/CaseRule.java @@ -17,12 +17,13 @@ public abstract class CaseRule extends Rule { /** * CaseRule Constructor creates a new case rule. * + * @param ruleID ID of the rule * @param ruleName name of the rule * @param description description of the rule * @param imageName file name of the image */ - public CaseRule(String ruleName, String description, String imageName) { - super(ruleName, description, imageName); + public CaseRule(String ruleID, String ruleName, String description, String imageName) { + super(ruleID, ruleName, description, imageName); this.ruleType = CASE; } diff --git a/src/main/java/edu/rpi/legup/model/rules/ContradictionRule.java b/src/main/java/edu/rpi/legup/model/rules/ContradictionRule.java index 4ec5b9a57..8fbfc54d0 100644 --- a/src/main/java/edu/rpi/legup/model/rules/ContradictionRule.java +++ b/src/main/java/edu/rpi/legup/model/rules/ContradictionRule.java @@ -10,12 +10,13 @@ public abstract class ContradictionRule extends Rule { /** * ContradictionRule Constructor creates a new contradiction rule * + * @param ruleID ID of the rule * @param ruleName name of the rule * @param description description of the rule * @param imageName file name of the image */ - public ContradictionRule(String ruleName, String description, String imageName) { - super(ruleName, description, imageName); + public ContradictionRule(String ruleID, String ruleName, String description, String imageName) { + super(ruleID, ruleName, description, imageName); ruleType = CONTRADICTION; } diff --git a/src/main/java/edu/rpi/legup/model/rules/MergeRule.java b/src/main/java/edu/rpi/legup/model/rules/MergeRule.java index 598de9875..16454643a 100644 --- a/src/main/java/edu/rpi/legup/model/rules/MergeRule.java +++ b/src/main/java/edu/rpi/legup/model/rules/MergeRule.java @@ -19,7 +19,7 @@ public class MergeRule extends Rule { * MergeRule Constructor merges to board states together */ public MergeRule() { - super("Merge Rule", + super("MERGE","Merge Rule", "Merge any number of nodes into one", "edu/rpi/legup/images/Legup/MergeRule.png"); this.ruleType = MERGE; diff --git a/src/main/java/edu/rpi/legup/model/rules/Rule.java b/src/main/java/edu/rpi/legup/model/rules/Rule.java index bcec08dba..66bfe8804 100644 --- a/src/main/java/edu/rpi/legup/model/rules/Rule.java +++ b/src/main/java/edu/rpi/legup/model/rules/Rule.java @@ -13,6 +13,7 @@ @RegisterRule public abstract class Rule { + protected String ruleID; protected String ruleName; protected String description; protected String imageName; @@ -22,14 +23,16 @@ public abstract class Rule { /** * Rule Constructor creates a new rule * + * @param ruleID ID of the rule * @param ruleName name of the rule * @param description description of the rule * @param imageName file name of the image */ - public Rule(String ruleName, String description, String imageName) { - this.imageName = imageName; + public Rule(String ruleID, String ruleName, String description, String imageName) { + this.ruleID = ruleID; this.ruleName = ruleName; this.description = description; + this.imageName = imageName; loadImage(); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBetweenRegionsBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBetweenRegionsBasicRule.java index 71e460fa1..324afd93d 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBetweenRegionsBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBetweenRegionsBasicRule.java @@ -19,7 +19,8 @@ public class BlackBetweenRegionsBasicRule extends BasicRule { public BlackBetweenRegionsBasicRule() { - super("Black Between Regions", + super("NURIK-BASIC-00001", + "Black Between Regions", "Any unknowns between two regions must be black.", "edu/rpi/legup/images/nurikabe/rules/BetweenRegions.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBottleNeckBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBottleNeckBasicRule.java index 72cf0c587..e67354b71 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBottleNeckBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackBottleNeckBasicRule.java @@ -13,7 +13,8 @@ public class BlackBottleNeckBasicRule extends BasicRule { public BlackBottleNeckBasicRule() { - super("Black Bottle Neck", + super("NURIK-BASIC-00002", + "Black Bottle Neck", "If there is only one path for a black to escape, then those unknowns must be white.", "edu/rpi/legup/images/nurikabe/rules/OneUnknownBlack.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackOrWhiteCaseRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackOrWhiteCaseRule.java index 7251bb145..36e559f31 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackOrWhiteCaseRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackOrWhiteCaseRule.java @@ -15,7 +15,8 @@ public class BlackOrWhiteCaseRule extends CaseRule { public BlackOrWhiteCaseRule() { - super("Black or White", + super("NURI-CASE-0001", + "Black or White", "Each blank cell is either black or white.", "edu/rpi/legup/images/nurikabe/cases/BlackOrWhite.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackSquareContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackSquareContradictionRule.java index bcfdc78b6..251dc754f 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackSquareContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/BlackSquareContradictionRule.java @@ -10,7 +10,8 @@ public class BlackSquareContradictionRule extends ContradictionRule { public BlackSquareContradictionRule() { - super("Black Square", + super("NURI-CONT-0001", + "Black Square", "There cannot be a 2x2 square of black.", "edu/rpi/legup/images/nurikabe/contradictions/BlackSquare.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CantReachWhiteContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CantReachWhiteContradictionRule.java index c2077ccec..395e15fea 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CantReachWhiteContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CantReachWhiteContradictionRule.java @@ -14,7 +14,8 @@ public class CantReachWhiteContradictionRule extends ContradictionRule { public CantReachWhiteContradictionRule() { - super("Cant Reach white cell", + super("NURI-CONT-0002", + "Cant Reach white cell", "A white cell must be able to reach a white region", "edu/rpi/legup/images/nurikabe/contradictions/CantReach.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CornerBlackBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CornerBlackBasicRule.java index 64f492a95..c7ec93e22 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CornerBlackBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/CornerBlackBasicRule.java @@ -18,7 +18,8 @@ public class CornerBlackBasicRule extends BasicRule { public CornerBlackBasicRule() { - super("Corners Black", + super("NURI-BASC-0003", + "Corners Black", "If there is only one white square connected to unknowns and one more white is needed then the angles of that white square are black", "edu/rpi/legup/images/nurikabe/rules/CornerBlack.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinBlackBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinBlackBasicRule.java index 1e5c02efd..326729797 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinBlackBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinBlackBasicRule.java @@ -13,7 +13,8 @@ public class FillinBlackBasicRule extends BasicRule { public FillinBlackBasicRule() { - super("Fill In Black", + super("NURI-BASC-0004", + "Fill In Black", "If there an unknown region surrounded by black, it must be black.", "edu/rpi/legup/images/nurikabe/rules/FillInBlack.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinWhiteBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinWhiteBasicRule.java index 73a9461f0..748cc66ff 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinWhiteBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/FillinWhiteBasicRule.java @@ -13,7 +13,8 @@ public class FillinWhiteBasicRule extends BasicRule { public FillinWhiteBasicRule() { - super("Fill In White", + super("NURI-BASC-0005", + "Fill In White", "If there an unknown region surrounded by white, it must be white.", "edu/rpi/legup/images/nurikabe/rules/FillInWhite.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/IsolateBlackContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/IsolateBlackContradictionRule.java index 846e486d3..ec0c3edc2 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/IsolateBlackContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/IsolateBlackContradictionRule.java @@ -14,7 +14,8 @@ public class IsolateBlackContradictionRule extends ContradictionRule { public IsolateBlackContradictionRule() { - super("Isolated Black", + super("NURI-CONT-0003", + "Isolated Black", "There must still be a possibility to connect every Black cell", "edu/rpi/legup/images/nurikabe/contradictions/BlackArea.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/MultipleNumbersContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/MultipleNumbersContradictionRule.java index 03c4647f6..5ebae5853 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/MultipleNumbersContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/MultipleNumbersContradictionRule.java @@ -14,7 +14,8 @@ public class MultipleNumbersContradictionRule extends ContradictionRule { public MultipleNumbersContradictionRule() { - super("Multiple Numbers", + super("NURI-CONT-0004", + "Multiple Numbers", "All white regions cannot have more than one number.", "edu/rpi/legup/images/nurikabe/contradictions/MultipleNumbers.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/NoNumberContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/NoNumberContradictionRule.java index 446088988..eabdd02d5 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/NoNumberContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/NoNumberContradictionRule.java @@ -14,7 +14,8 @@ public class NoNumberContradictionRule extends ContradictionRule { public NoNumberContradictionRule() { - super("No Number", + super("NURI-CONT-0005", + "No Number", "All enclosed white regions must have a number.", "edu/rpi/legup/images/nurikabe/contradictions/NoNumber.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/PreventBlackSquareBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/PreventBlackSquareBasicRule.java index a3a91624e..25c16d362 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/PreventBlackSquareBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/PreventBlackSquareBasicRule.java @@ -13,7 +13,8 @@ public class PreventBlackSquareBasicRule extends BasicRule { public PreventBlackSquareBasicRule() { - super("Prevent Black Square", + super("NURI-BASC-0006", + "Prevent Black Square", "There cannot be a 2x2 square of black. (3 blacks = fill in last corner white)", "edu/rpi/legup/images/nurikabe/rules/NoBlackSquare.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/SurroundRegionBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/SurroundRegionBasicRule.java index 31eb4f4bd..e6abd0416 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/SurroundRegionBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/SurroundRegionBasicRule.java @@ -13,7 +13,7 @@ public class SurroundRegionBasicRule extends BasicRule { public SurroundRegionBasicRule() { - super("Surround Region", + super("NURI-BASC-0007","Surround Region", "Surround Region", "edu/rpi/legup/images/nurikabe/rules/SurroundBlack.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooFewSpacesContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooFewSpacesContradictionRule.java index 2e211bcda..beaae9b81 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooFewSpacesContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooFewSpacesContradictionRule.java @@ -14,7 +14,8 @@ public class TooFewSpacesContradictionRule extends ContradictionRule { public TooFewSpacesContradictionRule() { - super("Too Few Spaces", + super("NURI-CONT-0006", + "Too Few Spaces", "A region cannot contain less spaces than its number.", "edu/rpi/legup/images/nurikabe/contradictions/TooFewSpaces.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooManySpacesContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooManySpacesContradictionRule.java index d7be638ca..a9626ae9d 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooManySpacesContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/TooManySpacesContradictionRule.java @@ -15,7 +15,8 @@ public class TooManySpacesContradictionRule extends ContradictionRule { public TooManySpacesContradictionRule() { - super("Too Many Spaces", + super("NURI-CONT-0007", + "Too Many Spaces", "A region cannot contain more spaces than its number.", "edu/rpi/legup/images/nurikabe/contradictions/TooManySpaces.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/UnreachableBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/UnreachableBasicRule.java index 3c75e7ded..850d5c103 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/UnreachableBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/UnreachableBasicRule.java @@ -12,7 +12,8 @@ public class UnreachableBasicRule extends BasicRule { public UnreachableBasicRule() { - super("Unreachable white region", + super("NURI-BASC-0008", + "Unreachable white region", "A cell must be black if it cannot be reached by any white region", "edu/rpi/legup/images/nurikabe/rules/Unreachable.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/WhiteBottleNeckBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/WhiteBottleNeckBasicRule.java index 887ff0ae6..eca68fde8 100644 --- a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/WhiteBottleNeckBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/WhiteBottleNeckBasicRule.java @@ -16,7 +16,8 @@ public class WhiteBottleNeckBasicRule extends BasicRule { public WhiteBottleNeckBasicRule() { - super("White Bottle Neck", + super("NURI-BASC-0009", + "White Bottle Neck", "If a region needs more whites and there is only one path for the region to expand, then those unknowns must be white.", "edu/rpi/legup/images/nurikabe/rules/OneUnknownWhite.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/nurikabe_reference_sheet.txt b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/nurikabe_reference_sheet.txt new file mode 100644 index 000000000..ae714e83f --- /dev/null +++ b/src/main/java/edu/rpi/legup/puzzle/nurikabe/rules/nurikabe_reference_sheet.txt @@ -0,0 +1,19 @@ +NURI-BASC-0001 : BlackBetweenRegionsBasicRule +NURI-BASC-0002 : BlackBottleNeckBasicRule +NURI-BASC-0003 : CornerBlackBasicRule +NURI-BASC-0004 : FillinBlackBasicRule +NURI-BASC-0005 : FillinWhiteBasicRule +NURI-BASC-0006 : PreventBlackSquareBasicRule +NURI-BASC-0007 : SurroundRegionBasicRule +NURI-BASC-0008 : UnreachableBasicRule +NURI-BASC-0009 : WhiteBottleNeckBasicRule + +NURI-CONT-0001 : BlackSquareContradictionRule +NURI-CONT-0002 : CantReachWhiteContradictionRule +NURI-CONT-0003 : IsolateBlackContradictionRule +NURI-CONT-0004 : MultipleNumbersContradictionRule +NURI-CONT-0005 : NoNumberContradictionRule +NURI-CONT-0006 : TooFewSpacesContradictionRule +NURI-CONT-0007 : TooManySpacesContradictionRule + +NURI-CASE-0001 : BlackOrWhiteCaseRule \ No newline at end of file