From 621b5812ab39a275a32a9f25d479b2229cdf923d Mon Sep 17 00:00:00 2001 From: Zachary Bonagura Date: Tue, 16 Jul 2024 12:27:29 -0400 Subject: [PATCH] Updated binary contradiction images --- .../rules/CompleteRowColumnDirectRule.java | 2 +- ...uplicateRowsColumnsContradictionRule.java} | 10 +++++----- .../EliminateTheImpossibleDirectRule.java | 2 +- ...UnbalancedRowColumnContradictionRule.java} | 7 +++---- .../DuplicateRowOrColumnContradictionRule.png | Bin 3455 -> 0 bytes .../DuplicateRowsColumnsContradictionRule.png | Bin 0 -> 2124 bytes .../rules/ThreeAdjacentContradictionRule.png | Bin 2508 -> 2071 bytes .../UnbalancedRowColumnContradictionRule.png | Bin 2793 -> 1783 bytes 8 files changed, 10 insertions(+), 11 deletions(-) rename src/main/java/edu/rpi/legup/puzzle/binary/rules/{DuplicateRowsOrColumnsContradictionRule.java => DuplicateRowsColumnsContradictionRule.java} (82%) rename src/main/java/edu/rpi/legup/puzzle/binary/rules/{UnbalancedRowOrColumnContradictionRule.java => UnbalancedRowColumnContradictionRule.java} (91%) delete mode 100644 src/main/resources/edu/rpi/legup/images/binary/rules/DuplicateRowOrColumnContradictionRule.png create mode 100644 src/main/resources/edu/rpi/legup/images/binary/rules/DuplicateRowsColumnsContradictionRule.png diff --git a/src/main/java/edu/rpi/legup/puzzle/binary/rules/CompleteRowColumnDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/binary/rules/CompleteRowColumnDirectRule.java index 795535352..527223f5c 100644 --- a/src/main/java/edu/rpi/legup/puzzle/binary/rules/CompleteRowColumnDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/binary/rules/CompleteRowColumnDirectRule.java @@ -18,7 +18,7 @@ public class CompleteRowColumnDirectRule extends DirectRule { public CompleteRowColumnDirectRule() { super( "BINA-BASC-0003", - "Complete Row Column", + "Complete Row/Column", "If a row/column of length n contains n/2 of a single value, the remaining cells must contain the other value", "edu/rpi/legup/images/binary/rules/CompleteRowColumnDirectRule.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/binary/rules/DuplicateRowsOrColumnsContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/binary/rules/DuplicateRowsColumnsContradictionRule.java similarity index 82% rename from src/main/java/edu/rpi/legup/puzzle/binary/rules/DuplicateRowsOrColumnsContradictionRule.java rename to src/main/java/edu/rpi/legup/puzzle/binary/rules/DuplicateRowsColumnsContradictionRule.java index 8b0d88ae4..575c62d92 100644 --- a/src/main/java/edu/rpi/legup/puzzle/binary/rules/DuplicateRowsOrColumnsContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/binary/rules/DuplicateRowsColumnsContradictionRule.java @@ -8,17 +8,17 @@ import edu.rpi.legup.puzzle.binary.BinaryType; import java.util.ArrayList; -public class DuplicateRowsOrColumnsContradictionRule extends ContradictionRule { +public class DuplicateRowsColumnsContradictionRule extends ContradictionRule { private final String NO_CONTRADICTION_MESSAGE = "Does not contain a contradiction at this index"; private final String INVALID_USE_MESSAGE = "Row or column must have a value in each cell"; - public DuplicateRowsOrColumnsContradictionRule() { + public DuplicateRowsColumnsContradictionRule() { super( "BINA-CONT-0003", - "Duplicate Rows Or Columns", - "There must not be two rows or two columns that are duplicates", - "edu/rpi/legup/images/binary/rules/DuplicateRowOrColumnContradictionRule.png"); + "Duplicate Rows/Columns", + "There must not be two of the same row or two of the same column in the puzzle", + "edu/rpi/legup/images/binary/rules/DuplicateRowsColumnsContradictionRule.png"); } @Override diff --git a/src/main/java/edu/rpi/legup/puzzle/binary/rules/EliminateTheImpossibleDirectRule.java b/src/main/java/edu/rpi/legup/puzzle/binary/rules/EliminateTheImpossibleDirectRule.java index 14bcafc4e..117a639cb 100644 --- a/src/main/java/edu/rpi/legup/puzzle/binary/rules/EliminateTheImpossibleDirectRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/binary/rules/EliminateTheImpossibleDirectRule.java @@ -22,7 +22,7 @@ public EliminateTheImpossibleDirectRule() { super( "BINA-BASC-0004", "Eliminate The Impossible", - "If three adjacent empty cells are open, prevents a trio of numbers to exist", + "Out of the remaining empty cells in this row or column, this digit must go here, otherwise there will be a future contradiction", "edu/rpi/legup/images/binary/rules/EliminateTheImpossibleDirectRule.png"); } diff --git a/src/main/java/edu/rpi/legup/puzzle/binary/rules/UnbalancedRowOrColumnContradictionRule.java b/src/main/java/edu/rpi/legup/puzzle/binary/rules/UnbalancedRowColumnContradictionRule.java similarity index 91% rename from src/main/java/edu/rpi/legup/puzzle/binary/rules/UnbalancedRowOrColumnContradictionRule.java rename to src/main/java/edu/rpi/legup/puzzle/binary/rules/UnbalancedRowColumnContradictionRule.java index ea110ef2c..388528c8b 100644 --- a/src/main/java/edu/rpi/legup/puzzle/binary/rules/UnbalancedRowOrColumnContradictionRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/binary/rules/UnbalancedRowColumnContradictionRule.java @@ -7,19 +7,18 @@ import edu.rpi.legup.puzzle.binary.BinaryCell; import edu.rpi.legup.puzzle.binary.BinaryType; -import java.util.ArrayList; import java.util.Set; -public class UnbalancedRowOrColumnContradictionRule extends ContradictionRule { +public class UnbalancedRowColumnContradictionRule extends ContradictionRule { private final String NO_CONTRADICTION_MESSAGE = "Does not contain a contradiction at this index"; private final String INVALID_USE_MESSAGE = "Row or column must have a value in each cell"; - public UnbalancedRowOrColumnContradictionRule() { + public UnbalancedRowColumnContradictionRule() { super( "BINA-CONT-0002", - "Unbalanced Row Or Column", + "Unbalanced Row/Column", "Each row or column must contain an equal number of zeros and ones", "edu/rpi/legup/images/binary/rules/UnbalancedRowColumnContradictionRule.png"); } diff --git a/src/main/resources/edu/rpi/legup/images/binary/rules/DuplicateRowOrColumnContradictionRule.png b/src/main/resources/edu/rpi/legup/images/binary/rules/DuplicateRowOrColumnContradictionRule.png deleted file mode 100644 index 214aa53483ccc0f6749bffda004ccfc2f70ded29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3455 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 diff --git a/src/main/resources/edu/rpi/legup/images/binary/rules/DuplicateRowsColumnsContradictionRule.png b/src/main/resources/edu/rpi/legup/images/binary/rules/DuplicateRowsColumnsContradictionRule.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc030a7671f6e567d56c9d71ddd640bd5a33336 GIT binary patch literal 2124 zcmai0dpHy7AK#k$t&OG`5l(UtO|E4!*H&_gL#7RLmI>}({(;9>v(KoWh< z@)AFL^MfEF#9!U;*d%@ek}lbp1Ij)s%=3YO59%Tc04Prv-}4gWW6>Mu+(-bxk;K0O zn9g1!006?1XiJnc8Ml<@cP`si;eAxdTlw4PoMme-AL_3WIsbEx`aO5Z9S5;G;v)n& zyu8*yZ*W+w$t10wU^;F$H_Lsq5Vh_Z>5vOty! zH$*BKk?HSeL$8mISDVc46dI{4NC`KBgr3#M3R||!EiZ>i`FzZ$hL7v%85mgC21<|B zQfzF}6ejDtxPj8K)9K*XT==}4qB5QwpELTc`V6`Zybm({wV&ATmrn8^7$^pPWT+-}W<4rav_N-04uiopVBb`D!IC6EO@!pk9(TKYRcH{co<$T`mUOF)%prE2wwz&_NyoPge()RX^(*3lPC+#F* zt3^9_@<}7eCI!~G?ccBga~iLUV0mwRdSFr712gc4rOKU3V0n5c`y@)pHL+kQ50SV6yzwyg2mOQ6=NX!w7J+d_NHhp=#zB85< z+ZGfQ^r^qpJ*+i$(>8`o%h+BS?-UmhFp8J_!0X5}?CtHf9H|WO_OhkO`4^f-v~7*O z3)MM8@UVnh_+Z@J&{Qfl|I z(nBPL^C|PV{fqTPnVRz?|2dn}J|&s^_K=Y-D?_gn4cju=9ZeBd%7|vDHjv4iAMw^I=~I z1j5|}1Zq1ac(H%&GBR+?1XCNXZ!I{hwmWnDvCQ!{z_b9FNTapY=-Jr1XM!tGUj z6yh=l!|x2exzMM%WjS6HT7aZvsoB!Z0^Bc0j#oP5Kw6b=k6JFmJK-+vgFH}G{A(MF6^7^@DCQ4CadHYILqr2V zY^6_DY(4;&ZI;mR$rPgBK2cL$dcrKuvkM5s8UTUeDhtu{nM+ZFjbknSFFM6n1V6M^ z_-0^7?huTf!-`SZp+|;dSkaor?*Wavy9)yr{2?yzJNrm~B+A*9v*$NZ`NtnEWRn$1 zwQ3G0Bv;=rYvUDU95nN>;Q2BQ0S>t7m$PtY^9Qe-lSJ?pmRAl>tpv7eZLHM;>b~2o>t&zStShF+ zRLJ53$f}k_0t+&kY0uDm27`>QpV?1;V*2 z95`PwLykw*&51?soQ&8F3ML$k@3U7J!Ag|>iX|v literal 0 HcmV?d00001 diff --git a/src/main/resources/edu/rpi/legup/images/binary/rules/ThreeAdjacentContradictionRule.png b/src/main/resources/edu/rpi/legup/images/binary/rules/ThreeAdjacentContradictionRule.png index 862408b63a9c6d72d815b79064ea587657bc5e5e..e292ec9faabb7c263093b94a3bacdaf56e0d05d7 100644 GIT binary patch literal 2071 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 HUy1z(|GtR) diff --git a/src/main/resources/edu/rpi/legup/images/binary/rules/UnbalancedRowColumnContradictionRule.png b/src/main/resources/edu/rpi/legup/images/binary/rules/UnbalancedRowColumnContradictionRule.png index 029bd12ac8782f97428d092ee56187d0aa7d77cf..bd66c16a7fdb3b876bf8e39b54c9a84d2928a3e9 100644 GIT binary patch literal 1783 zcmeAS@N?(olHy`uVBq!ia0vp^sUXb31|&mjbk74R#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=FdEAk5hR^dnF^TaTxUV@O5Z+qtnBA?_l_`#aUNvW^_-pP<1p zal!872SaxB0&~Jselbu9a!kszQbh58x zsH{|SIl4hf`h*noN9E3&&+O0TWbclAe?~4Eue)&J^5x0K_8AWzG%HS-W@KyYJ9+YC ztJL$ix98tCKE-1t%^!q&MqQt9U44>ff7oK3=k3vJ2n+O zbc))NG12d4a72X1(W6JLp0ee9Xl&+hd!u%JYxebm!lZz0~kUwa{Az2VK> zyLWwidwZ>p%l&aQ%fGiK_*=mTM*ddDMJY8q>i$-#P4#*?MOs!?*6P`@UTO1^GrW9u z61q;3!5^mh`1-z_Vyn^rz**wy^IPoAXZE4GAJbzV8jEydcTJh58@(*}TY`Sl$w{gR zA6@#pv-o+&JsXv`2Od2;+|HkQv`bWLM}yU`-@jMx+js9~+rfj5t5&V*+QP4^tE)9n z^y!a}kH5USs_n8?LrZH>gw8Uv@@e|`SyQje0y_qaoM>TnM3QI zFZG`OqTT-SIkP_%KZ<`nJM(_xw}Tx*84Jo^Djz;}y-nligm4iayJs!z^VsHGbC}2b zV!h#J$NkySVn1#PxXOR(YU+A-XQ#8ce%zAJ&(B|;tnR<2@1lr^NPyAICEvc4y?Xt6 z@zHMa*VYF=ZdL5EJEO(bb8zEKVRgR?zrMZ>wXgp5<>i`3@=X3mPEXf=`R3+ktvwYV zo5XY?7QAOWe7$YOFN4(@0Yb(97cNx1TH@{Hb!Ch3R4>hBdzL!OWz*aFWP>uNFMFTu z98!DYcF?io$EONPESS(Xaee&$ZBiz&&)%@bOD}qLc+H{*%py}v6?m^+Tz<<&_nG+Z zKY~2_%v`RvN4i#ie#V=7V?(1^-klX}yDnY~ytOS?dTq?kAWc~oi^eL3Uun_HYjQhQ z@o(;85;b&?wJdVkE61F*ecLvz!%YqU#Mx{rJ~YglH7g?}#bxQmn&wAf$3$EI+FSbi z+Qol=e_s_kvMO{n)A#im%Vykve|PtEzj-#E?0hl-{*pXf4jyL%hhfqzJuQRq+0VM? zwA2lj7Xn+5g`9J^kF)=Qq-Kzq}zo9h|5B zX})XMu97poyUX9dnjtMyV-WR3_C<4({~E{TGj|?vcoi)7W7>0I;UN;(Qh;6}V9ikv z8fLv!+*;r4J5S;HhEESa|7HZ1FgO2BIo>b-_z}y!t)Y>TE6qA$4sd1L$Snuviq|sL z1v({{m-&LzbU~9)it9o9(n8kz35UWtPMtbc(kE-t(J*~M?%iFX&u=uF-@bbFDlnhR z)Eu~|-27eb`kCNqp35&=J#|Y@U*5OV@Ny8MOeknM_B1<}&7^kDrw@!~KMouurceMD zgA>+hL@X)c-SOnBEV>r&6` YvemvPddB(hz{-lj)78&qol`;+093R}SpWb4 literal 2793 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