From 8c945407e0e10f9ddcd527122f90664ad98be61d Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Sun, 14 Aug 2022 20:58:27 -0400 Subject: [PATCH 1/6] documentation finished for a few files --- .../edu/rpi/legup/images/Legup/AddChild.png | Bin 1662 -> 88 bytes .../edu/rpi/legup/images/Legup/Check All.png | Bin 1063 -> 441 bytes bin/main/edu/rpi/legup/images/Legup/Check.png | Bin 1063 -> 358 bytes .../edu/rpi/legup/images/Legup/Collapse.png | Bin 1597 -> 150 bytes .../edu/rpi/legup/images/Legup/DelChild.png | Bin 1540 -> 82 bytes .../edu/rpi/legup/images/Legup/Directions.png | Bin 1183 -> 657 bytes bin/main/edu/rpi/legup/images/Legup/Hint.png | Bin 1328 -> 865 bytes .../rpi/legup/images/Legup/LegupSplash.png | Bin 55533 -> 53651 bytes bin/main/edu/rpi/legup/images/Legup/Merge.png | Bin 1992 -> 182 bytes .../edu/rpi/legup/images/Legup/Submit.png | Bin 2234 -> 449 bytes .../Legup/homepanel/new_puzzle_file.png | Bin 0 -> 2271 bytes .../Legup/homepanel/new_puzzle_file.tif | Bin 0 -> 15380 bytes .../images/Legup/homepanel/proof_file.png | Bin 0 -> 784 bytes .../images/Legup/homepanel/puzzle_file.png | Bin 0 -> 1424 bytes .../rpi/legup/images/treetent/UnknownTile.png | Bin 0 -> 6821 bytes bin/main/edu/rpi/legup/legup/config | 4 +- .../rules/nurikabe_reference_sheet.txt | 4 +- .../puzzlefiles/battleship/BattleShipTest | 8 ++-- .../DiagonalAdjacentBoards | 35 +++++++++++++++++ .../InvalidOrthogonalAdjacentBoards | 36 ++++++++++++++++++ .../OrthogonalAdjacentBoards | 35 +++++++++++++++++ .../HorizontalValidBoard | 36 ++++++++++++++++++ .../puzzle/battleship/BattleshipBoard.java | 5 +++ .../puzzle/battleship/BattleshipClue.java | 18 +++++++++ .../puzzle/battleship/BattleshipClueView.java | 4 ++ .../battleship/BattleshipElementView.java | 4 ++ .../puzzle/battleship/BattleshipExporter.java | 5 +++ .../puzzle/battleship/BattleshipView.java | 6 +++ 28 files changed, 192 insertions(+), 8 deletions(-) create mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.png create mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.tif create mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/proof_file.png create mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/puzzle_file.png create mode 100644 bin/main/edu/rpi/legup/images/treetent/UnknownTile.png create mode 100644 bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards create mode 100644 bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards create mode 100644 bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards create mode 100644 bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard diff --git a/bin/main/edu/rpi/legup/images/Legup/AddChild.png b/bin/main/edu/rpi/legup/images/Legup/AddChild.png index 2a411cddd9cb923fdd7bc3bb899c1eb175c295fc..46ef969d5a1fa70440234e46ad2624c117c15295 100644 GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1c~2L|5R22v2@XjUPXU!Oc)I$ztaD0e0sv2X7e)X8 literal 1662 zcmV-^27&pBP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV% z1uhK?E3hWpWft>#P^Mlr+2MgdwcX>12}%X@iWVkch8=^T#ZJ*_636> z04V?u0Tck_>?bt1pIFSa1L_vWb5zM z)$^A&HSO^cat**u0E%E(1|T_hS^@wDfC7kt^SKxp_$r^tTtB;f`T4hC>ZYnwxj~2{{Siwtct-fZK;#wjt**?73jC?}LyBm^Evol1lZxJUFP%I(YDYcSQyc zA8!669GM!Fp$hn#~bio7)% zeLn#73SKftY?hjxdPm#Ivh(^~16h+?3`9%0V0MOaFcvU1)BL#yhfTWGfvgaa6 zT!?iUdFY5Ad#0GhJC@t~lL!V?R9DwXot=wU0fXHh0H~@`K8i#d{J=dMwIsx!*|{n? z46~8}pCV(+hD}i9sj~9Tuipy{SOD%J5^3;fvyVOi&~2x)=Z$cdz;Ygzz6*1-T=z`$h4dQi${mH=>$DzDcAV9X&nPU@L!2*3fx449@_4uBciNp2vsm?up@q{Vx}{Tf;t$W zHUm@lT`Gy72LQZYDVfVX)>W0*^;_Bdjx}ps0a)CP0i)vc@vbh2IdCqW9+{)-VcES3 zCTG($kj`Cwt}g0PX3+J1SZgS)Jpho+8iz(k9;}Z>X9p*%050VRP}6{EvKQ(DscDpF z)B5!nj%PAiE1S&$@K%svvy@mSGhcAfasY&YQ;P3y-n^XyW;z-SQR64jQ#! z02eQ^J+hqasH>Z$>3X%G36>y805uEH)H+vcGh;*LN*I_^Ap`~YhNQEz^A6x!r3?Te0Db^IyGopcgVKre6h|@HGMP+Qef_C+ zN=q9Q07@bOBDu;c1Fx$)yG@dk-}d(2$X>oYRLEv600Dcb_9)_>@YY#w2AyD_uI}tM z#-@G~0DvbJ15YGMudA}|GZGp2d2H;Z!|C+gFV38K+Fn(qA`+SA4TnRrrm0X>1)NWu zTc8EVL@PVIKuh^kaCEMv5KKwJL;{lID?|by%QBQZcbZlJp*5UKOAN!BVVY100lM$z zq-QDLmK7JYqM*cL<%#rMU&l76Vsk(oje=MfVh_)q#@w#I01Q?#(-HPy`Tzg`07*qo IM6N<$f+w@<*#H0l diff --git a/bin/main/edu/rpi/legup/images/Legup/Check All.png b/bin/main/edu/rpi/legup/images/Legup/Check All.png index a929f796f303ea71f3d2bbb684a866717eae1c2f..bcae7ebe329fbbd28c59cd6a2cc3c6b917e13e03 100644 GIT binary patch literal 441 zcmV;q0Y?6bP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vG#Hvj-3HvuzPpLzfQ0ZvIoK~!i%?Uk`k z!!Q&@@5aJXiM0|^r+x+h!HoEwuB>d8U|?fp=Nk|e%&4Exme}vfaqE}jDz=MsPZUM5 zZ|rlWGzB4q5JJd*WrGW>@&0@5j;XsJVu5Ryyv0OD8WPKIGi6-)j zwQ+8V)L3zO#S-|yQW62XME|TPucW0;DbYY)NlT?anduS@<&{`!_)jY?aR%~=ml~E= jw8YuS6G8|fWNd&Pj-M}h#~*2~00000NkvXXu0mjfjXl1z literal 1063 zcmV+?1laqDP)xW;ifk-+l!Y6;$40J37~)Eo(Kaya{rw@0bN_c<9!bWo_yfZW~Q=} zr9DbD0EKz6&bFOez$Z{}rXb-Vn_m%>kc(A27>M__Fv1S@c0_gCn*}90Ai_8^mash= zgH;0*O}=$+^mdi9JUnhfV@)_Wk#t?x`6NF0ZFLU%N4h&zrtXRE*rAxkc?hASU=e(M zDd`GZzEHmRUjcMVM((>~m*4SHu-yU}smIymxFsOs!$XPrzd5ZW5Q~APntGn2L@*ot z?c;~eyQQ^5@$S8$Kyc^H4F<^)Z|i2R=B!bd???3x7mP&k)rF)f2woZoDqSjO%Lr$QNgzDci7+&SD{xS#gN_UZuls0uYK* z5AKdKE?1Gwr_t8js6;}y)qOEO@wv;n-r3fIymbYh;Lw!-zWM1=UT{8ieBiGbw~R=m z_%b;&Yk7h|NQTwI96|vP4|jFwyIY&3PZuaSDsNbDhNJRUZ#(!HgAMt6567~m) z<5`fBLP#BBzohK!qWi@1B+2J;Ikx_uycU4skAbU=jg6YF>zbx%T5>c!zpY6-ZEJj= z;|je#9AcEHm|R@5m$TM~AH68iv6*=TrzmOVD*N2qCi6lv2SM6RA{+11Jge(mb~MCzB1m h@k)zzk@DVDzXKd3yCsl=Ehhi~002ovPDHLkV1g7j`>y~1 diff --git a/bin/main/edu/rpi/legup/images/Legup/Check.png b/bin/main/edu/rpi/legup/images/Legup/Check.png index a929f796f303ea71f3d2bbb684a866717eae1c2f..187a5dbadae8fb2ba94be414f116521e9fb70548 100644 GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=E29Ak6qszIGl^@VBRnV@QVc+bPjPO$I!!ueB0hzd3pI$4YrS z4o@%bwMu6$9NF2v(m=Fr@{=r}at4MU&bzX|bCgu5oVvf7r_J5U9{eiQmFIQUe zdFGzwOi4LGm2rJfcHR!Go7Gm@HS@cObjm)~6E)fse(Lf}f9Rt>lf~?k&S#bN%FB(P zhVP5=y?y3$_NKnSMxEbg)@wUlTV-+dhRD3>(R~ZA9rSl~`MKCQ-ZfQ7agyd=wKxCH zXA5enxh|Q!;PtH|Po^E);H9==azsg8oZFMuNh)uzetT+|91#9I=lP@0`_`V*zo6vB zI%9fxgsJ|4-aQl2?&m$*e{k}LtCb*cyiscrZ#r=HP`vx9zaYM+tDnm{r-UW|Rm7LH literal 1063 zcmV+?1laqDP)xW;ifk-+l!Y6;$40J37~)Eo(Kaya{rw@0bN_c<9!bWo_yfZW~Q=} zr9DbD0EKz6&bFOez$Z{}rXb-Vn_m%>kc(A27>M__Fv1S@c0_gCn*}90Ai_8^mash= zgH;0*O}=$+^mdi9JUnhfV@)_Wk#t?x`6NF0ZFLU%N4h&zrtXRE*rAxkc?hASU=e(M zDd`GZzEHmRUjcMVM((>~m*4SHu-yU}smIymxFsOs!$XPrzd5ZW5Q~APntGn2L@*ot z?c;~eyQQ^5@$S8$Kyc^H4F<^)Z|i2R=B!bd???3x7mP&k)rF)f2woZoDqSjO%Lr$QNgzDci7+&SD{xS#gN_UZuls0uYK* z5AKdKE?1Gwr_t8js6;}y)qOEO@wv;n-r3fIymbYh;Lw!-zWM1=UT{8ieBiGbw~R=m z_%b;&Yk7h|NQTwI96|vP4|jFwyIY&3PZuaSDsNbDhNJRUZ#(!HgAMt6567~m) z<5`fBLP#BBzohK!qWi@1B+2J;Ikx_uycU4skAbU=jg6YF>zbx%T5>c!zpY6-ZEJj= z;|je#9AcEHm|R@5m$TM~AH68iv6*=TrzmOVD*N2qCi6lv2SM6RA{+11Jge(mb~MCzB1m h@k)zzk@DVDzXKd3yCsl=Ehhi~002ovPDHLkV1g7j`>y~1 diff --git a/bin/main/edu/rpi/legup/images/Legup/Collapse.png b/bin/main/edu/rpi/legup/images/Legup/Collapse.png index 18207174fc9a05ab48cca76a9ac6b608f96ae200..0fd314b8f4364df2cc46261bdec5acb66e498777 100644 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iSWg$n5R22v2@-V;GZQ(TE#`>x zJu!TIUEtJ*`47!Qye%etmDg}$xZ=FkVaj#k$2uKii>4mlGGT$tqNVc^k2F>V9p(^O zQ@TW>-6cl$bP0l+XkK?Tj`o literal 1597 zcmV-D2EzG?P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV% z1_cxxbE}j900q5CL_t(o!@ZYXY*XhM$A9lR$FXzr;etbDJFwObA*M)BkV>0&N(X|# z6>2LQZKYqC)?RNHt*Tx?5xuDBq)EHjG_4ZdM=#0{pwUT#sNICZSdglw-Bdde*)2A< zlR7lEWBbiHwofl|Oq|4VOsDmg{_^qb$LIY&&+|JUub{!Wa^;D8XJ@m|x3siAW18j7 zrfIr`5NMi~aX8dT!zlixqr?2;z`%dM<~t5iZ_=_JbB&BtekrB()9&sA!smP1<#zX? z>pGQ61t}$&%mm5gS$XT$h~;#OcLxWR*M#_&{GSb+J-cH|d%J$g;~DSt<2xHTb!zMVUaxz+ukYpdK;Vc9qreQH z*{X(HK*?4Y@Ho-v`{jv=-)B>)%&y_#(3i~`&=$-7s&?tpm5+LRkF*B@PpI$*`xl2D zrq}|g*eU_Dz$AgdeidY=qWo#ZvIq)6`K}CHxbV;8-QBzVfxrP3KD1A+*dZ#QU>FAR z_yp;6oNRWMVlj^p0+*|m&dv*Tb?sF>o~;|tpSO;}*s-QtaPD0HJ&I!8+_&#!hpvAP zWNI=NfJG?uA0m+me*Zqa-lwStWh!-+MB*O^Q8qSg5I@+x`|4Cv6>vDLVW00oRo5ku zs_C~vE|+I~{2J};53^^_?^uL#0?4B%pzCeu`g(l66ZG{J2#1fgq|>8coH?`O(Y2ry z03#!hUEQ{A=uw}~0mSZPpUV{)8ylmi=OqGx=eQdvBauH_*RQ`jyB3rhfN8SD?e+p+ z0OlRo#>YRUr{~860zcwzp?u(h{X&TOHKEi1N+qkqON)5@+O_`Q)Pqt3&@?qC z<@9=87l1)LejC3($oB!IvTzkB*E5-zy^u*doyF_j4&1OaHUN`cZkDmJQ8sRTmYq9~ zqw80J)4(S-yx-W0*>k7S^?$Q#*IR7f{Ihj!ZLMRcPHnw^MFpg+e2`4Ww)=crbTG(f z4ZbfZl?4b(@5N%%r9xpI(2%msB9sPT5DHB$gED8cF=rpw)0`cX1O7@Na6s+q+R=Uf z{3Az~wBV_yuFeXf{yH3v7Qw#^N)y8<5{XRF*LS1_O4F9KV~h5DzUI5EiOT~Q2?l@C zDunv;bLaZ+p{8aWI<)(EI-N~Kqthjqs|6{iZ6gNp`1CR;%{!G@Tws2cblqUn zrl6*2Zs7B6*PTws&=Lax!^2}==JUoQ zb91HJ$z%*@Whs}99{ePPhLOmG@MPxlFSC+k6g<2U6+L6EWAX8R*N*y}1`}oXE z?p8f0>u0!@s{a#6IgO^N*@gxhLAkQevQ7)+Dtu^UGB?pQCEUEI49sI z6pH38OZ;kR=yIlM1IwXYFwq9M?6x@V&stUITz0IVXf$P})49ZxPrh(s$+MuT*XJ52 zqtR3uJobs5H4E0NI@bnxh(=T8aQId(nVcIG;^lI~yL z*Bv#F-%3qh3n~;$!r^!^oz5jQnfU`lLzgGl+?=j8EbCR*#fzW5Z5WkT{C;=E@AtI1 z-8#DNqEfMta-K}4Kq4`dPb4y`!=e86;K7I95aJ!#)b6<1aryGz4Y{0nzNN)6WSW&8 v(=54#z}~)#Nh!-8xZRca2L?V~b^HD;M9P7JSE~;V00000NkvXXu0mjf{bCMy diff --git a/bin/main/edu/rpi/legup/images/Legup/DelChild.png b/bin/main/edu/rpi/legup/images/Legup/DelChild.png index b130336a07055f59be1f72768cbfd2319ba8e06d..8a9979507d70025b74fc5583d9a14c17d19c6a16 100644 GIT binary patch literal 82 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 literal 1328 zcmV-01<(44P)Ei~hp4$&7TI5rzc`0}&#`$ijrc zWTLCt0*MYSQ6YA(A6Xc#h8dDkbogd1cS^7^8wDt^mKJscXjovsd^vx zoa^Gf>gsj^#sx1qIq&73dw%cy&v_s4B_HOC7Vm%lttp%9BT-<_0N+s2SpXZ@mNDkT z%*n5;>Tlm%duaFn0zA0(Mpe-t2G%~kIzM4o7ba`BOpH<=i2&%PIh%WZKHk{vUE1iV zdi|Lp`01N#4<-K-aNo19-C7AMe>yTZxpMF7{3t%4(-V4$l1mX21yHM68npn7@Xm#1 z|I^LRr_S=7Kd(K!{<(k$e)RiWy!Gc!t}aX;nVSwi+fL{uinSImIql|E0H)?wFhPi_ zQma~)XRBP?*pa_p+GtrZcfR%fceic=Jh=8on5CWf?>@SCY-y$uTxs_47_2c^YiR^2 zPd)Z^y!X8D>PN&{MO9JnF?ep9uW_xl>)yZIJhyl`x%=$d?+bt(0J3iT2aA*SBTLic z!Nv8M#5rmF$7g|zf`}lZwBnT6M!jy0oB;>{)a56t)re*%Mbx9l zU`)|qFc<@pDZAZ1wQ9s(FU8|aphvyOmlpSxxrqwu++9O}IyPPgA*G+uG)4?xKlm zIHwpxnf!1C|GeI1d?3+(S5U&DFrX86QI)?BE69>pwp&}@ocqd3T~rR=`M`V6>wh^9 zKxM3fH)g+rgO!9qKy#xN`!xOK{+Na)e6`bVCs~>Rhv$EPT$2u`PcC!%}M+aqsaJ zw&INQ*V?EmUIkUbt79}Yw60x=v%LS~fBa(YoqdS_7S?%jePQ?UAgml4otTc2JOd1r z&%%43Y;wJQ15xF@Pd0H`0(c6IJk=!=?Mbw^Um=`fh!4 zc6wxDCUmN(4x2m-_xnw@7D8)D<89Y%x3+s5m+x7B`|LX41`-*d3RL5(=e>CIT2Pz# zcHZySf}j#%3|<`G3n~uP;@pdXS2RzEH$Ut5JMDjMfBg2Tt-t+Yr|hi(#FQr^KxN=7 z<1^#)Cm(szjy0YL!cn4Hy=J2d))t>k)f~+;@?PANJTcnceX;rO?_SE{?HI^_bl?w3 zR6?TC!unT_&y25}csLrHJY|A#6__ex+g{v-{6_oN@s$r>?_NE(Q%aJTmJKBOqQ44T mN;vR_gH0%`n9ZTT>G%&%mnLEYHsRR-0000&sE^2HHue(rR_Id^b14CQlgnHx6H)ftV*~s3( zDaPR7vw?vjsfm?AKv;*NVMYQY!x0v41_iYU1_r}}ObpahVo$71LEG6KO^mhl=PtAW Px|hMz)z4*}Q$iB}h?6#N delta 2116 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 diff --git a/bin/main/edu/rpi/legup/images/Legup/Merge.png b/bin/main/edu/rpi/legup/images/Legup/Merge.png index 35cefcb146dccc8dcac4f0bf5d202a607641d52a..fa3ccc51c365b7a76131664fc6980780102f1e69 100644 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iT2B|p5R22v2@*yNgK^ z_6+vhA~xaE{e-9cJ1+<=#x8wl&%mUq-AWrfg8EJ>ub9K3TfNc4Y0I0V>m1oN6uXYz f+v_m%APbP0l+XkKpZY#! literal 1992 zcmV;(2RHbMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV% z1`!h5zS;Bu00&4(L_t(o!_}8-Y!ufO$A5PoyY_nRwJ|o{wZRw{KOj(o5R^1PLIOce zOGBHw4-!(MCaT&Gjat!fts3=9rB zhEE8Aq9}1ym3wu4;!tt1@!ICiS4a6TM9h9++Yc19wpzc?H2c}=>c@oN|D^(-Z#f>1 z2g|b1G>v$?o1vk@S|rknESu+5)$KNn+_HNiIfKCA!=G;OdOat~%QsgwHT~G_@pym% z;0BO(w2A;Pot;PN>-!6S|3mowUuG_ngM+QM+bs@k-!A=7h!3n1iPw8Sjg3EIZjuXtS~8goU0pxPj*Y!Plt^T@Kl$Y4 zp4$l6_CDpriMHkOPp99NAbZgm`29`X3ajY8#MrBCvtn6goT4 zBT1DsH}7GRq?Q+@kp~^f-T^(7m3>Z%$FCK3bSUbFb3;$S)i@vau9Ea=WD#zkjs{ zdYowV+ad~w`v?RYnUCaTly|z%*Bi#;(OJB>Nl}#CGXRod(BSh`0mFANnw-v9EJ{_? zD&`|O3C)2%k4_JM|7wrht+oItrfC-!6v#l_NgQbwAd$#Wq?9mx>LkgY5%e2bECH^P z0=!FoEc{G0uCk(86>iN+NZYv%Ve9cEZ z*h;Lu71_6J`UjTNF=AJ#+_ZzSwlT6dQhCXkokc_;9>0#FNL>JuX_~KuLL+7-lbxOg zTPJv6fZ;PoDQ;+|{PPPKGsY-fR8GTptBChpz??7;YEd4EEVe#Q>B@DCzBe>SMd?5x zkw_@5Y4)1{(ym?S#)Xi7)zuZ8fB@iT{BjB-p;NI*V!_%HYHHj>BBNw7S%l=G^5J4` z{__&T<-@kDDVXUIN|rS;)^T%=QdG!fvV_Bvrv1H_lC-(gG*3#W7TK4Yk=ufBh4ZXe5>$WT? z-`NBdJH|yoA#2tw<=V9f1CbcHjEi*qbo6@=Dy~mf7Ny2rtX2-)-E^kgU<3sZsNHXrKW(H5S zPoxJzzj^ST{_o#W?c);I^v?C0x}j|e|Mg_j&}4+{nVEnykVPpDFm~}@da5sUKH}-$ z_p#gZyUCfY)ms&h_vq5cH+k(u2un-drlXVv$fmHbpX`Y0D9zjc))$}4pZrM)yb??X zpYpronegaC3mTTYNR5MTAWREkTFCAaY`k1Q(Vj9jeaoX~LZSKm$@g-ad37N9_dSbL zzc!Y-udJ?CwG%fGhKVGp$VHX(y?Z`oq_l5tJr_NDH(%1d9;t>GMP5jUhtI`63T9RB zA|%sB_ADgab~T+#q+iw^8L%6`k+$BH&0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vG#Hvj-3HvuzPpLzfQ0ai&wK~!i%?U+GM z12GIma}C5ndaNFS1N0OuxECAPz#gfzQ~ViPsG$b5FbRXoRz5(&qS?ME7K%iiCkj0OPBrL4%W+FW{Sj-$OTYpS<+(V za7bSj2`@N@IFC4&rgRH{8%cmq!X)7m05_Dtn^5yjq^!#Qo5uzs|4$04x^^)4V0`OJZcW3CIrAtfrS|Q;1J+BjG7Pt z|3Y9*ZH)!&l|GD`-^HE>kK!%`@W(kXzV->QCB^rZ=}$ebF4mj=5~gbvTpr;PsWxCH r=8G-FbG<&A=Bvd>Boc|-OH%p)YUsv(%ao8W00000NkvXXu0mjf0(-Eo literal 2234 zcmV;r2u1gaP)4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00009a7bBm000XU000XU0RWnu7ytkSJV``BR7ee_ zRZD0jRTRDNRdrQ&S2{E4kT{Yt3W^Z$3uD$1(Q(9qk$hY@3&DkPC5X5RXk?Ittki|N z5QeN`veli~qYD`j!P#V!kYQYy;KcOg)1Ugi=ef5#o$ho9Vs24g^*;BWd+t52nyj_- ze{UjE>9+ByuccB+VMB7`#;2e6_4U85lzJAyx2LA2 zoaN=^RGg2{8rd9;{~NRM@$u=kwKcd|J3l}F^WpdHm}255B(q%F7N4747Wocyn`e-z+RFOv8~YVVVF6!K^La{HQee zP~TXk7Lr!omD1WFi>)q}{@U86O5qY+xq6M#B(Z6lsvro`_4RcJAnz|OE`BjPJL@{1 zAXOSG*_F@UdM@ZK%qhoVEH(kRpktasP_9QA&!-3FGTp6QpqE~~X2_-#MUgVbP_0%| z#bS}~D-#nFx0jZd*4$fkOOMgVMrWKigPc#bYM78UPyz_Tnh$x;=^U_A+IVn|#xB1B zmR27eR7mRXJe1t;*-=9_{hT$ltXbG6H0{r2`8d9H#gI4Hkb2#?=_L>*!1KJ{ey!~ z`1u~nYDYULg?2Nfa6t>~!;+w&_%J=+pP}mBeOkT!JqL}3^S5Jz|1j9LBT zSLfi*-+wze7?>4+;M_p&e6c`YHY0})(#F<=!=tI}2174=U(;}ZFIC+ws+PeD8Q1F} z_n-x!Q)>%(kA{W|_uqSG;RgXQr~zle!3+YOY?hq89b_9)eSe>7^@w}`@c0P8l4}Sh zOQ;&g5?g+vC{~<}inRc+XvG@UY2oeueNPx>pi`)fzq0pz});f@&3N2DSjC||~1fW{4XQf1N#C3X~n~?>g8;A4ZlYj#lXRtLZ z04A|2Nu|j+BZf=V?SE3R<20IM?qdUYZ@Wr~h|U7Q4L}9F@?LlkaVqk!#od<5pC$4!-@};y0w;8(+zSIoWB>pF07*qo IM6N<$f&qOr=>Px# diff --git a/bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.png b/bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.png new file mode 100644 index 0000000000000000000000000000000000000000..8d55c14c9356069be9d5c0f0e58c897fa1b48e3b GIT binary patch literal 2271 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 JZ`;VW{ttS!#4`W@ literal 0 HcmV?d00001 diff --git a/bin/main/edu/rpi/legup/images/Legup/homepanel/proof_file.png b/bin/main/edu/rpi/legup/images/Legup/homepanel/proof_file.png new file mode 100644 index 0000000000000000000000000000000000000000..13da1b285f6b7e6a8f59eab820c415ad7e44f9a0 GIT binary patch literal 784 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85k7JL734vVty3^1JhDZ7srr_xVLkCyF?NNT&fqh2gZEg_>1G7 zL*S9aXAT9gU>BVJYKGvKMdE=`2Btqhm)cb9Zt8r~ZrhYFx5x09L~@VeGlsa<_lNQy z_J7!TWBbF{4@!R|{&8Jp4}AGa@WVs^1=A(w0aA>CaW$! zP6l`P0QQTHj1O*byppieVUUq@lyzcfYj~`*Lixo7hJp~5QU+NWhQ7`P$1Xo)e9*y> zWf7~ukR$KdyR4g~VXg9tgCz?YHsrFHPSX=(*w(Y4?Gh{Vfil4>9=kFaZfG@0d5H5d z+;$0g{NfQ~LN`a2#NK9x4Kk)(Rt|hwBBc#7S2UtTA9$4ikuJ8(5;@9v{d}s<4#&G? z$v_@h_7#KWioh$3MFERfFh5z~7RY|Wv3C*Qgk~vMSp{}vV-N~o%wwoncIkDG?}wgU zZ;usS(Wtu6czzi(3*U#5D;fx8Naj`ZulZt?ENrtlZ}&!^+um7ju;vTsVHSDJaMZ%V z5XRJzXE+~HHFqQDyuj^uBl@IV`K>&bDGkx~_(X zz3ez+S7Aev%mN8^jbl*e3{J+Vy$2p<{Qo?^^uf2HW%~|2;V7)OeD7@fPVNYIjT zzpCD=fsfMm99qpf-^sKn_2Z{qW_x({w`9HOdbG8-qBdDu;9>C(>yX9a0`b-riJ80k z|4%bl{8v%OU*Gm>g6E_4vnovW>mF|VdCnZ1xQ_WeE&0VA%)4}6RFL{)U@B(tboFyt I=akR{09%tv_5c6? literal 0 HcmV?d00001 diff --git a/bin/main/edu/rpi/legup/images/Legup/homepanel/puzzle_file.png b/bin/main/edu/rpi/legup/images/Legup/homepanel/puzzle_file.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee4d30e5a1b4d858cf32082ae21b7d69ee850cb GIT binary patch literal 1424 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 b`9T6f@heqNyGa3;8H8-@XjNjdEAD>)+L)t= literal 0 HcmV?d00001 diff --git a/bin/main/edu/rpi/legup/legup/config b/bin/main/edu/rpi/legup/legup/config index cfa1ebeac..8e3b4b84c 100644 --- a/bin/main/edu/rpi/legup/legup/config +++ b/bin/main/edu/rpi/legup/legup/config @@ -15,7 +15,7 @@ + fileCreationDisabled="true"/> + fileCreationDisabled="true"/> - + + @@ -33,5 +33,5 @@ - - \ No newline at end of file + + \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards new file mode 100644 index 000000000..ce6e9d011 --- /dev/null +++ b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards new file mode 100644 index 000000000..bb8ce02ac --- /dev/null +++ b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards new file mode 100644 index 000000000..81f42cffc --- /dev/null +++ b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard b/bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard new file mode 100644 index 000000000..adb42c036 --- /dev/null +++ b/bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipBoard.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipBoard.java index e086d4bbc..5965f7055 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipBoard.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipBoard.java @@ -66,6 +66,11 @@ public BattleshipCell getCell(int x, int y) { } @Override + /** + * Creates a copy of the current board + * + * @return the copy of the board + */ public BattleshipBoard copy() { BattleshipBoard copy = new BattleshipBoard(dimension.width, dimension.height); for (int x = 0; x < this.dimension.width; x++) { diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClue.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClue.java index 31652e464..a2633549c 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClue.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClue.java @@ -12,6 +12,11 @@ public BattleshipClue(int value, int index, BattleshipType type) { this.type = type; } + /** + * Returns the column number as a string + * @param col the column number that is to be converted and returned + * @return int value + */ public static String colNumToString(int col) { final StringBuilder sb = new StringBuilder(); col--; @@ -23,6 +28,11 @@ public static String colNumToString(int col) { return sb.reverse().toString(); } + /** + * Returns the column string as an integer + * @param col the column number as a string that is to be converted and returned + * @return string value + */ public static int colStringToColNum(String col) { int result = 0; for (int i = 0; i < col.length(); i++) { @@ -42,10 +52,18 @@ public Integer getData() { return (Integer) super.getData(); } + /** + * Returns the type of the battleship object (ship or clue) + * @return BattleshipType type + */ public BattleshipType getType() { return type; } + /** + * Sets the type of the battleship object (ship or clue) to the given type + * @param type given Battleship type + */ public void setType(BattleshipType type) { this.type = type; } diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClueView.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClueView.java index f220ba4a2..6a29eb7a3 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClueView.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipClueView.java @@ -24,6 +24,10 @@ public BattleshipClue getPuzzleElement() { } @Override + /** + * Draws the clue from the PuzzleElement associated with this view on the given frame + * @param graphics2D the frame the clue is to be drawn on + */ public void draw(Graphics2D graphics2D) { graphics2D.setColor(FONT_COLOR); graphics2D.setFont(FONT); diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipElementView.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipElementView.java index 9ed944654..d66f159d7 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipElementView.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipElementView.java @@ -20,6 +20,10 @@ public BattleshipElementView(BattleshipCell cell) { } @Override + /** + * Draws on the given frame based on the type of the cell of the current puzzleElement + * @param graphics2D the frame to be drawn on + */ public void drawElement(Graphics2D graphics2D) { BattleshipCell cell = (BattleshipCell) puzzleElement; BattleshipType type = cell.getType(); diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java index e8aa00108..322c91204 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java @@ -11,6 +11,11 @@ public BattleshipExporter(Battleship battleShip) { } @Override + /** + * Creates and returns + * @param newDocument + * @return + */ protected org.w3c.dom.Element createBoardElement(Document newDocument) { BattleshipBoard board = (BattleshipBoard) puzzle.getTree().getRootNode().getBoard(); diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java index 0768d4f66..1e09c30f6 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java @@ -7,6 +7,9 @@ import java.awt.*; public class BattleshipView extends GridBoardView { + /** + * @param board + */ public BattleshipView(BattleshipBoard board) { super(new BoardController(), new BattleshipCellController(), board.getDimension()); @@ -22,6 +25,9 @@ public BattleshipView(BattleshipBoard board) { } @Override + /** + * @param graphics2D + */ public void drawBoard(Graphics2D graphics2D) { super.drawBoard(graphics2D); } From e70dd60be4fdd7448738841b0630c53a6854da69 Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 15 Aug 2022 01:45:22 -0400 Subject: [PATCH 2/6] remaining battleship documentation --- .../legup/puzzle/battleship/BattleshipCellController.java | 6 ++++++ .../rpi/legup/puzzle/battleship/BattleshipExporter.java | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipCellController.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipCellController.java index 0a7f7ec4e..1ff91f0bc 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipCellController.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipCellController.java @@ -6,6 +6,12 @@ import java.awt.event.MouseEvent; public class BattleshipCellController extends ElementController { + /** + * Controller class for the Battleship puzzle - + * receives user mouse input and changes what's shown on the GUI + * @param data the PuzzleElement to be changed + * @param e the user mouse input + */ @Override public void changeCell(MouseEvent e, PuzzleElement data) { BattleshipCell cell = (BattleshipCell) data; diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java index 322c91204..e5c5ec1a9 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipExporter.java @@ -10,12 +10,12 @@ public BattleshipExporter(Battleship battleShip) { super(battleShip); } - @Override /** - * Creates and returns - * @param newDocument - * @return + * Creates and returns a new board element in the XML document specified + * @param newDocument the XML document to append to + * @return the new board element */ + @Override protected org.w3c.dom.Element createBoardElement(Document newDocument) { BattleshipBoard board = (BattleshipBoard) puzzle.getTree().getRootNode().getBoard(); From 03efd14a344a76b530ba8edb1d613d145e10e011 Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 15 Aug 2022 03:38:21 -0400 Subject: [PATCH 3/6] some documentation for treetent --- .../legup/puzzle/battleship/BattleshipView.java | 7 +------ .../legup/puzzle/treetent/TreeTentBoard.java | 17 +++++++++++++++++ .../puzzle/treetent/TreeTentElementView.java | 4 ++++ .../legup/puzzle/treetent/TreeTentExporter.java | 5 +++++ .../treetent/rules/EmptyFieldBasicRule.java | 6 ++++++ .../treetent/rules/FillinRowCaseRule.java | 5 +++++ 6 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java index 1e09c30f6..fbae2fa99 100644 --- a/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java +++ b/src/main/java/edu/rpi/legup/puzzle/battleship/BattleshipView.java @@ -7,9 +7,7 @@ import java.awt.*; public class BattleshipView extends GridBoardView { - /** - * @param board - */ + public BattleshipView(BattleshipBoard board) { super(new BoardController(), new BattleshipCellController(), board.getDimension()); @@ -25,9 +23,6 @@ public BattleshipView(BattleshipBoard board) { } @Override - /** - * @param graphics2D - */ public void drawBoard(Graphics2D graphics2D) { super.drawBoard(graphics2D); } diff --git a/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentBoard.java b/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentBoard.java index cd7070563..efd9b5306 100644 --- a/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentBoard.java +++ b/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentBoard.java @@ -143,6 +143,12 @@ public List getAdjacent(TreeTentCell cell, TreeTentType type) { return adj; } + /** + * Gets all cells of a specified type that are diagonals of a specified cell + * @param cell the base cell + * @param type the type to look for + * @return a list of TreeTentCells that are diagonals of the given TreeTentCell and are of the given TreeTentType + */ public List getDiagonals(TreeTentCell cell, TreeTentType type) { List dia = new ArrayList<>(); Point loc = cell.getLocation(); @@ -165,6 +171,13 @@ public List getDiagonals(TreeTentCell cell, TreeTentType type) { return dia; } + /** + * Creates and returns a list of TreeTentCells that match the given TreeTentType + * @param index the row or column number + * @param type type of TreeTent element + * @param isRow boolean value beased on whether a row of column is being checked + * @return List of TreeTentCells that match the given TreeTentType + */ public List getRowCol(int index, TreeTentType type, boolean isRow) { List list = new ArrayList<>(); if (isRow) { @@ -209,6 +222,10 @@ public boolean equalsBoard(Board board) { return super.equalsBoard(treeTentBoard); } + /** + * Performs a deep copy of the TreeTentBoard + * @return a TreeTentBoard object that is a deep copy of the current TreeTentBoard + */ @Override public TreeTentBoard copy() { TreeTentBoard copy = new TreeTentBoard(dimension.width, dimension.height); diff --git a/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentElementView.java b/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentElementView.java index ee1c1549e..dbe2a14cc 100644 --- a/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentElementView.java +++ b/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentElementView.java @@ -10,6 +10,10 @@ public TreeTentElementView(TreeTentCell cell) { super(cell); } + /** + * Draws on the given frame based on the type of the cell of the current puzzleElement + * @param graphics2D the frame to be drawn on + */ @Override public void drawElement(Graphics2D graphics2D) { TreeTentCell cell = (TreeTentCell) puzzleElement; diff --git a/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentExporter.java b/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentExporter.java index ef45602e6..510114e46 100644 --- a/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentExporter.java +++ b/src/main/java/edu/rpi/legup/puzzle/treetent/TreeTentExporter.java @@ -10,6 +10,11 @@ public TreeTentExporter(TreeTent treeTent) { super(treeTent); } + /** + * Creates and returns a new board element in the XML document specified + * @param newDocument the XML document to append to + * @return the new board element + */ @Override protected org.w3c.dom.Element createBoardElement(Document newDocument) { TreeTentBoard board; diff --git a/src/main/java/edu/rpi/legup/puzzle/treetent/rules/EmptyFieldBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/treetent/rules/EmptyFieldBasicRule.java index 07c1e9ead..38d39424e 100644 --- a/src/main/java/edu/rpi/legup/puzzle/treetent/rules/EmptyFieldBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/treetent/rules/EmptyFieldBasicRule.java @@ -49,6 +49,12 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem } } + /** + * Returns a boolean value based on whether the specified cell has adjacent cells (true - no adjacent, false - has adjacent) + * @param board the TreeTent board + * @param cell the specified TreeTent cell + * @return true - no adjacent, false - has adjacent + */ private boolean isForced(TreeTentBoard board, TreeTentCell cell) { List adjCells = board.getAdjacent(cell, TreeTentType.TREE); return adjCells.isEmpty(); diff --git a/src/main/java/edu/rpi/legup/puzzle/treetent/rules/FillinRowCaseRule.java b/src/main/java/edu/rpi/legup/puzzle/treetent/rules/FillinRowCaseRule.java index 0d052a956..b762c7875 100644 --- a/src/main/java/edu/rpi/legup/puzzle/treetent/rules/FillinRowCaseRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/treetent/rules/FillinRowCaseRule.java @@ -22,6 +22,11 @@ public FillinRowCaseRule() { "edu/rpi/legup/images/treetent/case_rowcount.png"); } + /** + * Gets the case board that indicates where this case rule can be applied on the given Board. + * @param board the given board + * @return the case board object + */ @Override public CaseBoard getCaseBoard(Board board) { TreeTentBoard treeTentBoard = (TreeTentBoard) board.copy(); From d90bf8e74103ebd4a5d011bd982582675ffdcc4e Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 15 Aug 2022 19:03:49 -0400 Subject: [PATCH 4/6] Lightup documentation 1 --- .../legup/puzzle/lightup/LightUpBoard.java | 24 +++++++++++++++++++ .../rpi/legup/puzzle/lightup/LightUpView.java | 3 +++ .../rules/FinishWithBulbsBasicRule.java | 6 +++++ .../rules/FinishWithEmptyBasicRule.java | 12 ++++++++++ .../lightup/rules/SatisfyNumberCaseRule.java | 5 ++++ 5 files changed, 50 insertions(+) diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpBoard.java b/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpBoard.java index 3ac982e40..93985865d 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpBoard.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpBoard.java @@ -16,6 +16,9 @@ public LightUpBoard(int size) { super(size, size); } + /** + * Sets cells in board to lite depending on whether there is a bulb cell in the current row or column + */ public void fillWithLight() { for (int y = 0; y < this.dimension.height; y++) { for (int x = 0; x < this.dimension.width; x++) { @@ -61,6 +64,11 @@ public void fillWithLight() { } } + /** + * Gets adjancent cells to the specified cell + * @param cell LightUpCell + * @return Set of adjacent LightUpCells + */ public Set getAdj(LightUpCell cell) { Set adjCells = new HashSet<>(); cell = (LightUpCell) getPuzzleElement(cell); @@ -85,6 +93,12 @@ public Set getAdj(LightUpCell cell) { return adjCells; } + /** + * Gets the number of adjacent cells of the specified type + * @param cell base cell + * @param type specified type + * @return the number of adjacent cells + */ public int getNumAdj(LightUpCell cell, LightUpCellType type) { int num = 0; Set adjCells = getAdj(cell); @@ -96,6 +110,11 @@ public int getNumAdj(LightUpCell cell, LightUpCellType type) { return num; } + /** + * Gets the number of adjacent cells + * @param cell LightUpCell + * @return number of adjacent cells + */ public int getNumAdjLite(LightUpCell cell) { int num = 0; Set adjCells = getAdj(cell); @@ -107,6 +126,11 @@ public int getNumAdjLite(LightUpCell cell) { return num; } + /** + * Gets the number of adjacent cells that are placable + * @param cell specified cell + * @return number of adjacent cells that are placable + */ public int getNumPlacble(LightUpCell cell) { int num = 0; Set adjCells = getAdj(cell); diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpView.java b/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpView.java index 9896653fc..0fd57e705 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpView.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/LightUpView.java @@ -55,6 +55,9 @@ public void onTreeElementChanged(TreeElement treeElement) { repaint(); } + /** + * Returns a DataSelectionView popup menu + */ public DataSelectionView getSelectionPopupMenu() { DataSelectionView selectionView = new DataSelectionView(elementController); GridLayout layout = new GridLayout(3, 1); diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithBulbsBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithBulbsBasicRule.java index 9a5911b04..63e5b5897 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithBulbsBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithBulbsBasicRule.java @@ -55,6 +55,12 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem return super.getInvalidUseOfRuleMessage() + ": This cell is not forced to be a bulb"; } + /** + * Determines whether the specified cell is forced to be a bulb or not + * @param board the entire board + * @param cell specified cell + * @return whether cell is forced to be a bulb or not + */ private boolean isForced(LightUpBoard board, LightUpCell cell) { Set adjCells = board.getAdj(cell); adjCells.removeIf(c -> c.getType() != LightUpCellType.NUMBER); diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java index e6e642106..87633cbc8 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java @@ -43,6 +43,12 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem return super.getInvalidUseOfRuleMessage() + ": Empty is not forced"; } + /** + * + * @param board + * @param location + * @return + */ private boolean isForced(LightUpBoard board, Point location) { return isForcedEmpty(board, new Point(location.x + 1, location.y)) || isForcedEmpty(board, new Point(location.x, location.y + 1)) || @@ -50,6 +56,12 @@ private boolean isForced(LightUpBoard board, Point location) { isForcedEmpty(board, new Point(location.x, location.y - 1)); } + /** + * Checks whether a certain cell is forced to be + * @param board + * @param loc + * @return + */ private boolean isForcedEmpty(LightUpBoard board, Point loc) { LightUpCell cell = board.getCell(loc.x, loc.y); if (cell == null || cell.getType() != LightUpCellType.NUMBER) { diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java index 0bef37c82..256819bed 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java @@ -241,6 +241,11 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem return null; } + /** + * + * @param transition + * @return + */ private List getPossibleSpots(TreeTransition transition) { LightUpBoard board = (LightUpBoard) transition.getBoard(); Set modCells = transition.getBoard().getModifiedData(); From 356e2f7fcf21f6d35e237f41b548b310d8b95bad Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 15 Aug 2022 21:10:25 -0400 Subject: [PATCH 5/6] Additional lightup documentation --- .../lightup/rules/FinishWithEmptyBasicRule.java | 16 ++++++++-------- .../lightup/rules/SatisfyNumberCaseRule.java | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java index 87633cbc8..76ff7bf35 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/FinishWithEmptyBasicRule.java @@ -44,10 +44,10 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem } /** - * - * @param board - * @param location - * @return + * Checks whether a certain cell is forced to not be a bulb + * @param board specified board + * @param location location of cell to check + * @return boolean value based on whether a certain cell has an adjacent cell that has the required amount of adjacent bulbs */ private boolean isForced(LightUpBoard board, Point location) { return isForcedEmpty(board, new Point(location.x + 1, location.y)) || @@ -57,10 +57,10 @@ private boolean isForced(LightUpBoard board, Point location) { } /** - * Checks whether a certain cell is forced to be - * @param board - * @param loc - * @return + * Checks whether a certain cell has the required amount of adjacent bulbs + * @param board specified board + * @param loc location of cell to check + * @return boolean value based on whether a certain cell has the required amount of adjacent bulbs */ private boolean isForcedEmpty(LightUpBoard board, Point loc) { LightUpCell cell = board.getCell(loc.x, loc.y); diff --git a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java index 256819bed..95e077861 100644 --- a/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java +++ b/src/main/java/edu/rpi/legup/puzzle/lightup/rules/SatisfyNumberCaseRule.java @@ -242,9 +242,9 @@ public String checkRuleRawAt(TreeTransition transition, PuzzleElement puzzleElem } /** - * - * @param transition - * @return + * Gets all cells in the TreeTransition board that are adjacent to all modified cells + * @param transition TreeTransition object + * @return list of cells that are adjacent to all modified cells, returns null if the number of modified cells is =0 || >4 */ private List getPossibleSpots(TreeTransition transition) { LightUpBoard board = (LightUpBoard) transition.getBoard(); From 9909db968be367dcb9344d525e2ba6158714696c Mon Sep 17 00:00:00 2001 From: Kevin Xu Date: Mon, 15 Aug 2022 22:33:19 -0400 Subject: [PATCH 6/6] revert png changes --- .../edu/rpi/legup/images/Legup/AddChild.png | Bin 88 -> 1662 bytes .../edu/rpi/legup/images/Legup/Check All.png | Bin 441 -> 1063 bytes bin/main/edu/rpi/legup/images/Legup/Check.png | Bin 358 -> 1063 bytes .../edu/rpi/legup/images/Legup/Collapse.png | Bin 150 -> 1597 bytes .../edu/rpi/legup/images/Legup/DelChild.png | Bin 82 -> 1540 bytes .../edu/rpi/legup/images/Legup/Directions.png | Bin 657 -> 1183 bytes bin/main/edu/rpi/legup/images/Legup/Hint.png | Bin 865 -> 1328 bytes .../rpi/legup/images/Legup/LegupSplash.png | Bin 53651 -> 55533 bytes bin/main/edu/rpi/legup/images/Legup/Merge.png | Bin 182 -> 1992 bytes .../edu/rpi/legup/images/Legup/Submit.png | Bin 449 -> 2234 bytes .../Legup/homepanel/new_puzzle_file.png | Bin 2271 -> 0 bytes .../Legup/homepanel/new_puzzle_file.tif | Bin 15380 -> 0 bytes .../images/Legup/homepanel/proof_file.png | Bin 784 -> 0 bytes .../images/Legup/homepanel/puzzle_file.png | Bin 1424 -> 0 bytes .../rpi/legup/images/treetent/UnknownTile.png | Bin 6821 -> 0 bytes bin/main/edu/rpi/legup/legup/config | 4 +- .../rules/nurikabe_reference_sheet.txt | 4 +- .../puzzlefiles/battleship/BattleShipTest | 8 ++-- .../DiagonalAdjacentBoards | 35 ----------------- .../InvalidOrthogonalAdjacentBoards | 36 ------------------ .../OrthogonalAdjacentBoards | 35 ----------------- .../HorizontalValidBoard | 36 ------------------ 22 files changed, 8 insertions(+), 150 deletions(-) delete mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.png delete mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.tif delete mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/proof_file.png delete mode 100644 bin/main/edu/rpi/legup/images/Legup/homepanel/puzzle_file.png delete mode 100644 bin/main/edu/rpi/legup/images/treetent/UnknownTile.png delete mode 100644 bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards delete mode 100644 bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards delete mode 100644 bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards delete mode 100644 bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard diff --git a/bin/main/edu/rpi/legup/images/Legup/AddChild.png b/bin/main/edu/rpi/legup/images/Legup/AddChild.png index 46ef969d5a1fa70440234e46ad2624c117c15295..2a411cddd9cb923fdd7bc3bb899c1eb175c295fc 100644 GIT binary patch literal 1662 zcmV-^27&pBP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV% z1uhK?E3hWpWft>#P^Mlr+2MgdwcX>12}%X@iWVkch8=^T#ZJ*_636> z04V?u0Tck_>?bt1pIFSa1L_vWb5zM z)$^A&HSO^cat**u0E%E(1|T_hS^@wDfC7kt^SKxp_$r^tTtB;f`T4hC>ZYnwxj~2{{Siwtct-fZK;#wjt**?73jC?}LyBm^Evol1lZxJUFP%I(YDYcSQyc zA8!669GM!Fp$hn#~bio7)% zeLn#73SKftY?hjxdPm#Ivh(^~16h+?3`9%0V0MOaFcvU1)BL#yhfTWGfvgaa6 zT!?iUdFY5Ad#0GhJC@t~lL!V?R9DwXot=wU0fXHh0H~@`K8i#d{J=dMwIsx!*|{n? z46~8}pCV(+hD}i9sj~9Tuipy{SOD%J5^3;fvyVOi&~2x)=Z$cdz;Ygzz6*1-T=z`$h4dQi${mH=>$DzDcAV9X&nPU@L!2*3fx449@_4uBciNp2vsm?up@q{Vx}{Tf;t$W zHUm@lT`Gy72LQZYDVfVX)>W0*^;_Bdjx}ps0a)CP0i)vc@vbh2IdCqW9+{)-VcES3 zCTG($kj`Cwt}g0PX3+J1SZgS)Jpho+8iz(k9;}Z>X9p*%050VRP}6{EvKQ(DscDpF z)B5!nj%PAiE1S&$@K%svvy@mSGhcAfasY&YQ;P3y-n^XyW;z-SQR64jQ#! z02eQ^J+hqasH>Z$>3X%G36>y805uEH)H+vcGh;*LN*I_^Ap`~YhNQEz^A6x!r3?Te0Db^IyGopcgVKre6h|@HGMP+Qef_C+ zN=q9Q07@bOBDu;c1Fx$)yG@dk-}d(2$X>oYRLEv600Dcb_9)_>@YY#w2AyD_uI}tM z#-@G~0DvbJ15YGMudA}|GZGp2d2H;Z!|C+gFV38K+Fn(qA`+SA4TnRrrm0X>1)NWu zTc8EVL@PVIKuh^kaCEMv5KKwJL;{lID?|by%QBQZcbZlJp*5UKOAN!BVVY100lM$z zq-QDLmK7JYqM*cL<%#rMU&l76Vsk(oje=MfVh_)q#@w#I01Q?#(-HPy`Tzg`07*qo IM6N<$f+w@<*#H0l literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1c~2L|5R22v2@XjUPXU!Oc)I$ztaD0e0sv2X7e)X8 diff --git a/bin/main/edu/rpi/legup/images/Legup/Check All.png b/bin/main/edu/rpi/legup/images/Legup/Check All.png index bcae7ebe329fbbd28c59cd6a2cc3c6b917e13e03..a929f796f303ea71f3d2bbb684a866717eae1c2f 100644 GIT binary patch literal 1063 zcmV+?1laqDP)xW;ifk-+l!Y6;$40J37~)Eo(Kaya{rw@0bN_c<9!bWo_yfZW~Q=} zr9DbD0EKz6&bFOez$Z{}rXb-Vn_m%>kc(A27>M__Fv1S@c0_gCn*}90Ai_8^mash= zgH;0*O}=$+^mdi9JUnhfV@)_Wk#t?x`6NF0ZFLU%N4h&zrtXRE*rAxkc?hASU=e(M zDd`GZzEHmRUjcMVM((>~m*4SHu-yU}smIymxFsOs!$XPrzd5ZW5Q~APntGn2L@*ot z?c;~eyQQ^5@$S8$Kyc^H4F<^)Z|i2R=B!bd???3x7mP&k)rF)f2woZoDqSjO%Lr$QNgzDci7+&SD{xS#gN_UZuls0uYK* z5AKdKE?1Gwr_t8js6;}y)qOEO@wv;n-r3fIymbYh;Lw!-zWM1=UT{8ieBiGbw~R=m z_%b;&Yk7h|NQTwI96|vP4|jFwyIY&3PZuaSDsNbDhNJRUZ#(!HgAMt6567~m) z<5`fBLP#BBzohK!qWi@1B+2J;Ikx_uycU4skAbU=jg6YF>zbx%T5>c!zpY6-ZEJj= z;|je#9AcEHm|R@5m$TM~AH68iv6*=TrzmOVD*N2qCi6lv2SM6RA{+11Jge(mb~MCzB1m h@k)zzk@DVDzXKd3yCsl=Ehhi~002ovPDHLkV1g7j`>y~1 literal 441 zcmV;q0Y?6bP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vG#Hvj-3HvuzPpLzfQ0ZvIoK~!i%?Uk`k z!!Q&@@5aJXiM0|^r+x+h!HoEwuB>d8U|?fp=Nk|e%&4Exme}vfaqE}jDz=MsPZUM5 zZ|rlWGzB4q5JJd*WrGW>@&0@5j;XsJVu5Ryyv0OD8WPKIGi6-)j zwQ+8V)L3zO#S-|yQW62XME|TPucW0;DbYY)NlT?anduS@<&{`!_)jY?aR%~=ml~E= jw8YuS6G8|fWNd&Pj-M}h#~*2~00000NkvXXu0mjfjXl1z diff --git a/bin/main/edu/rpi/legup/images/Legup/Check.png b/bin/main/edu/rpi/legup/images/Legup/Check.png index 187a5dbadae8fb2ba94be414f116521e9fb70548..a929f796f303ea71f3d2bbb684a866717eae1c2f 100644 GIT binary patch literal 1063 zcmV+?1laqDP)xW;ifk-+l!Y6;$40J37~)Eo(Kaya{rw@0bN_c<9!bWo_yfZW~Q=} zr9DbD0EKz6&bFOez$Z{}rXb-Vn_m%>kc(A27>M__Fv1S@c0_gCn*}90Ai_8^mash= zgH;0*O}=$+^mdi9JUnhfV@)_Wk#t?x`6NF0ZFLU%N4h&zrtXRE*rAxkc?hASU=e(M zDd`GZzEHmRUjcMVM((>~m*4SHu-yU}smIymxFsOs!$XPrzd5ZW5Q~APntGn2L@*ot z?c;~eyQQ^5@$S8$Kyc^H4F<^)Z|i2R=B!bd???3x7mP&k)rF)f2woZoDqSjO%Lr$QNgzDci7+&SD{xS#gN_UZuls0uYK* z5AKdKE?1Gwr_t8js6;}y)qOEO@wv;n-r3fIymbYh;Lw!-zWM1=UT{8ieBiGbw~R=m z_%b;&Yk7h|NQTwI96|vP4|jFwyIY&3PZuaSDsNbDhNJRUZ#(!HgAMt6567~m) z<5`fBLP#BBzohK!qWi@1B+2J;Ikx_uycU4skAbU=jg6YF>zbx%T5>c!zpY6-ZEJj= z;|je#9AcEHm|R@5m$TM~AH68iv6*=TrzmOVD*N2qCi6lv2SM6RA{+11Jge(mb~MCzB1m h@k)zzk@DVDzXKd3yCsl=Ehhi~002ovPDHLkV1g7j`>y~1 literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=E29Ak6qszIGl^@VBRnV@QVc+bPjPO$I!!ueB0hzd3pI$4YrS z4o@%bwMu6$9NF2v(m=Fr@{=r}at4MU&bzX|bCgu5oVvf7r_J5U9{eiQmFIQUe zdFGzwOi4LGm2rJfcHR!Go7Gm@HS@cObjm)~6E)fse(Lf}f9Rt>lf~?k&S#bN%FB(P zhVP5=y?y3$_NKnSMxEbg)@wUlTV-+dhRD3>(R~ZA9rSl~`MKCQ-ZfQ7agyd=wKxCH zXA5enxh|Q!;PtH|Po^E);H9==azsg8oZFMuNh)uzetT+|91#9I=lP@0`_`V*zo6vB zI%9fxgsJ|4-aQl2?&m$*e{k}LtCb*cyiscrZ#r=HP`vx9zaYM+tDnm{r-UW|Rm7LH diff --git a/bin/main/edu/rpi/legup/images/Legup/Collapse.png b/bin/main/edu/rpi/legup/images/Legup/Collapse.png index 0fd314b8f4364df2cc46261bdec5acb66e498777..18207174fc9a05ab48cca76a9ac6b608f96ae200 100644 GIT binary patch literal 1597 zcmV-D2EzG?P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV% z1_cxxbE}j900q5CL_t(o!@ZYXY*XhM$A9lR$FXzr;etbDJFwObA*M)BkV>0&N(X|# z6>2LQZKYqC)?RNHt*Tx?5xuDBq)EHjG_4ZdM=#0{pwUT#sNICZSdglw-Bdde*)2A< zlR7lEWBbiHwofl|Oq|4VOsDmg{_^qb$LIY&&+|JUub{!Wa^;D8XJ@m|x3siAW18j7 zrfIr`5NMi~aX8dT!zlixqr?2;z`%dM<~t5iZ_=_JbB&BtekrB()9&sA!smP1<#zX? z>pGQ61t}$&%mm5gS$XT$h~;#OcLxWR*M#_&{GSb+J-cH|d%J$g;~DSt<2xHTb!zMVUaxz+ukYpdK;Vc9qreQH z*{X(HK*?4Y@Ho-v`{jv=-)B>)%&y_#(3i~`&=$-7s&?tpm5+LRkF*B@PpI$*`xl2D zrq}|g*eU_Dz$AgdeidY=qWo#ZvIq)6`K}CHxbV;8-QBzVfxrP3KD1A+*dZ#QU>FAR z_yp;6oNRWMVlj^p0+*|m&dv*Tb?sF>o~;|tpSO;}*s-QtaPD0HJ&I!8+_&#!hpvAP zWNI=NfJG?uA0m+me*Zqa-lwStWh!-+MB*O^Q8qSg5I@+x`|4Cv6>vDLVW00oRo5ku zs_C~vE|+I~{2J};53^^_?^uL#0?4B%pzCeu`g(l66ZG{J2#1fgq|>8coH?`O(Y2ry z03#!hUEQ{A=uw}~0mSZPpUV{)8ylmi=OqGx=eQdvBauH_*RQ`jyB3rhfN8SD?e+p+ z0OlRo#>YRUr{~860zcwzp?u(h{X&TOHKEi1N+qkqON)5@+O_`Q)Pqt3&@?qC z<@9=87l1)LejC3($oB!IvTzkB*E5-zy^u*doyF_j4&1OaHUN`cZkDmJQ8sRTmYq9~ zqw80J)4(S-yx-W0*>k7S^?$Q#*IR7f{Ihj!ZLMRcPHnw^MFpg+e2`4Ww)=crbTG(f z4ZbfZl?4b(@5N%%r9xpI(2%msB9sPT5DHB$gED8cF=rpw)0`cX1O7@Na6s+q+R=Uf z{3Az~wBV_yuFeXf{yH3v7Qw#^N)y8<5{XRF*LS1_O4F9KV~h5DzUI5EiOT~Q2?l@C zDunv;bLaZ+p{8aWI<)(EI-N~Kqthjqs|6{iZ6gNp`1CR;%{!G@Tws2cblqUn zrl6*2Zs7B6*PTws&=Lax!^2}==JUoQ zb91HJ$z%*@Whs}99{ePPhLOmG@MPxlFSC+k6g<2U6+L6EWAX8R*N*y}1`}oXE z?p8f0>u0!@s{a#6IgO^N*@gxhLAkQevQ7)+Dtu^UGB?pQCEUEI49sI z6pH38OZ;kR=yIlM1IwXYFwq9M?6x@V&stUITz0IVXf$P})49ZxPrh(s$+MuT*XJ52 zqtR3uJobs5H4E0NI@bnxh(=T8aQId(nVcIG;^lI~yL z*Bv#F-%3qh3n~;$!r^!^oz5jQnfU`lLzgGl+?=j8EbCR*#fzW5Z5WkT{C;=E@AtI1 z-8#DNqEfMta-K}4Kq4`dPb4y`!=e86;K7I95aJ!#)b6<1aryGz4Y{0nzNN)6WSW&8 v(=54#z}~)#Nh!-8xZRca2L?V~b^HD;M9P7JSE~;V00000NkvXXu0mjf{bCMy literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iSWg$n5R22v2@-V;GZQ(TE#`>x zJu!TIUEtJ*`47!Qye%etmDg}$xZ=FkVaj#k$2uKii>4mlGGT$tqNVc^k2F>V9p(^O zQ@TW>-6cl$bP0l+XkK?Tj`o diff --git a/bin/main/edu/rpi/legup/images/Legup/DelChild.png b/bin/main/edu/rpi/legup/images/Legup/DelChild.png index 8a9979507d70025b74fc5583d9a14c17d19c6a16..b130336a07055f59be1f72768cbfd2319ba8e06d 100644 GIT binary patch literal 1540 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 diff --git a/bin/main/edu/rpi/legup/images/Legup/LegupSplash.png b/bin/main/edu/rpi/legup/images/Legup/LegupSplash.png index 4958e95ba3ac606eb8d67088866aed38d3a0e077..e5e01ae4b46f15d31c830dabd2d5219ae1ffbe1d 100644 GIT binary patch delta 2116 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 delta 219 zcmaF6k$LiB<_VsBf(#7Yf{gVk@e>&sE^2HHue(rR_Id^b14CQlgnHx6H)ftV*~s3( zDaPR7vw?vjsfm?AKv;*NVMYQY!x0v41_iYU1_r}}ObpahVo$71LEG6KO^mhl=PtAW Px|hMz)z4*}Q$iB}h?6#N diff --git a/bin/main/edu/rpi/legup/images/Legup/Merge.png b/bin/main/edu/rpi/legup/images/Legup/Merge.png index fa3ccc51c365b7a76131664fc6980780102f1e69..35cefcb146dccc8dcac4f0bf5d202a607641d52a 100644 GIT binary patch literal 1992 zcmV;(2RHbMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV% z1`!h5zS;Bu00&4(L_t(o!_}8-Y!ufO$A5PoyY_nRwJ|o{wZRw{KOj(o5R^1PLIOce zOGBHw4-!(MCaT&Gjat!fts3=9rB zhEE8Aq9}1ym3wu4;!tt1@!ICiS4a6TM9h9++Yc19wpzc?H2c}=>c@oN|D^(-Z#f>1 z2g|b1G>v$?o1vk@S|rknESu+5)$KNn+_HNiIfKCA!=G;OdOat~%QsgwHT~G_@pym% z;0BO(w2A;Pot;PN>-!6S|3mowUuG_ngM+QM+bs@k-!A=7h!3n1iPw8Sjg3EIZjuXtS~8goU0pxPj*Y!Plt^T@Kl$Y4 zp4$l6_CDpriMHkOPp99NAbZgm`29`X3ajY8#MrBCvtn6goT4 zBT1DsH}7GRq?Q+@kp~^f-T^(7m3>Z%$FCK3bSUbFb3;$S)i@vau9Ea=WD#zkjs{ zdYowV+ad~w`v?RYnUCaTly|z%*Bi#;(OJB>Nl}#CGXRod(BSh`0mFANnw-v9EJ{_? zD&`|O3C)2%k4_JM|7wrht+oItrfC-!6v#l_NgQbwAd$#Wq?9mx>LkgY5%e2bECH^P z0=!FoEc{G0uCk(86>iN+NZYv%Ve9cEZ z*h;Lu71_6J`UjTNF=AJ#+_ZzSwlT6dQhCXkokc_;9>0#FNL>JuX_~KuLL+7-lbxOg zTPJv6fZ;PoDQ;+|{PPPKGsY-fR8GTptBChpz??7;YEd4EEVe#Q>B@DCzBe>SMd?5x zkw_@5Y4)1{(ym?S#)Xi7)zuZ8fB@iT{BjB-p;NI*V!_%HYHHj>BBNw7S%l=G^5J4` z{__&T<-@kDDVXUIN|rS;)^T%=QdG!fvV_Bvrv1H_lC-(gG*3#W7TK4Yk=ufBh4ZXe5>$WT? z-`NBdJH|yoA#2tw<=V9f1CbcHjEi*qbo6@=Dy~mf7Ny2rtX2-)-E^kgU<3sZsNHXrKW(H5S zPoxJzzj^ST{_o#W?c);I^v?C0x}j|e|Mg_j&}4+{nVEnykVPpDFm~}@da5sUKH}-$ z_p#gZyUCfY)ms&h_vq5cH+k(u2un-drlXVv$fmHbpX`Y0D9zjc))$}4pZrM)yb??X zpYpronegaC3mTTYNR5MTAWREkTFCAaY`k1Q(Vj9jeaoX~LZSKm$@g-ad37N9_dSbL zzc!Y-udJ?CwG%fGhKVGp$VHX(y?Z`oq_l5tJr_NDH(%1d9;t>GMP5jUhtI`63T9RB zA|%sB_ADgab~T+#q+iw^8L%6`k+$BH&0000gK^ z_6+vhA~xaE{e-9cJ1+<=#x8wl&%mUq-AWrfg8EJ>ub9K3TfNc4Y0I0V>m1oN6uXYz f+v_m%APbP0l+XkKpZY#! diff --git a/bin/main/edu/rpi/legup/images/Legup/Submit.png b/bin/main/edu/rpi/legup/images/Legup/Submit.png index ee7ddab64e6c311f0a7cecb6c4acd3f021bf0d22..835c0ffe11ffc2307d1f545ab1bb659dbc31209f 100644 GIT binary patch literal 2234 zcmV;r2u1gaP)4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00009a7bBm000XU000XU0RWnu7ytkSJV``BR7ee_ zRZD0jRTRDNRdrQ&S2{E4kT{Yt3W^Z$3uD$1(Q(9qk$hY@3&DkPC5X5RXk?Ittki|N z5QeN`veli~qYD`j!P#V!kYQYy;KcOg)1Ugi=ef5#o$ho9Vs24g^*;BWd+t52nyj_- ze{UjE>9+ByuccB+VMB7`#;2e6_4U85lzJAyx2LA2 zoaN=^RGg2{8rd9;{~NRM@$u=kwKcd|J3l}F^WpdHm}255B(q%F7N4747Wocyn`e-z+RFOv8~YVVVF6!K^La{HQee zP~TXk7Lr!omD1WFi>)q}{@U86O5qY+xq6M#B(Z6lsvro`_4RcJAnz|OE`BjPJL@{1 zAXOSG*_F@UdM@ZK%qhoVEH(kRpktasP_9QA&!-3FGTp6QpqE~~X2_-#MUgVbP_0%| z#bS}~D-#nFx0jZd*4$fkOOMgVMrWKigPc#bYM78UPyz_Tnh$x;=^U_A+IVn|#xB1B zmR27eR7mRXJe1t;*-=9_{hT$ltXbG6H0{r2`8d9H#gI4Hkb2#?=_L>*!1KJ{ey!~ z`1u~nYDYULg?2Nfa6t>~!;+w&_%J=+pP}mBeOkT!JqL}3^S5Jz|1j9LBT zSLfi*-+wze7?>4+;M_p&e6c`YHY0})(#F<=!=tI}2174=U(;}ZFIC+ws+PeD8Q1F} z_n-x!Q)>%(kA{W|_uqSG;RgXQr~zle!3+YOY?hq89b_9)eSe>7^@w}`@c0P8l4}Sh zOQ;&g5?g+vC{~<}inRc+XvG@UY2oeueNPx>pi`)fzq0pz});f@&3N2DSjC||~1fW{4XQf1N#C3X~n~?>g8;A4ZlYj#lXRtLZ z04A|2Nu|j+BZf=V?SE3R<20IM?qdUYZ@Wr~h|U7Q4L}9F@?LlkaVqk!#od<5pC$4!-@};y0w;8(+zSIoWB>pF07*qo IM6N<$f&qOr=>Px# literal 449 zcmV;y0Y3hTP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vG#Hvj-3HvuzPpLzfQ0ai&wK~!i%?U+GM z12GIma}C5ndaNFS1N0OuxECAPz#gfzQ~ViPsG$b5FbRXoRz5(&qS?ME7K%iiCkj0OPBrL4%W+FW{Sj-$OTYpS<+(V za7bSj2`@N@IFC4&rgRH{8%cmq!X)7m05_Dtn^5yjq^!#Qo5uzs|4$04x^^)4V0`OJZcW3CIrAtfrS|Q;1J+BjG7Pt z|3Y9*ZH)!&l|GD`-^HE>kK!%`@W(kXzV->QCB^rZ=}$ebF4mj=5~gbvTpr;PsWxCH r=8G-FbG<&A=Bvd>Boc|-OH%p)YUsv(%ao8W00000NkvXXu0mjf0(-Eo diff --git a/bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.png b/bin/main/edu/rpi/legup/images/Legup/homepanel/new_puzzle_file.png deleted file mode 100644 index 8d55c14c9356069be9d5c0f0e58c897fa1b48e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2271 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 JZ`;VW{ttS!#4`W@ diff --git a/bin/main/edu/rpi/legup/images/Legup/homepanel/proof_file.png b/bin/main/edu/rpi/legup/images/Legup/homepanel/proof_file.png deleted file mode 100644 index 13da1b285f6b7e6a8f59eab820c415ad7e44f9a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85k7JL734vVty3^1JhDZ7srr_xVLkCyF?NNT&fqh2gZEg_>1G7 zL*S9aXAT9gU>BVJYKGvKMdE=`2Btqhm)cb9Zt8r~ZrhYFx5x09L~@VeGlsa<_lNQy z_J7!TWBbF{4@!R|{&8Jp4}AGa@WVs^1=A(w0aA>CaW$! zP6l`P0QQTHj1O*byppieVUUq@lyzcfYj~`*Lixo7hJp~5QU+NWhQ7`P$1Xo)e9*y> zWf7~ukR$KdyR4g~VXg9tgCz?YHsrFHPSX=(*w(Y4?Gh{Vfil4>9=kFaZfG@0d5H5d z+;$0g{NfQ~LN`a2#NK9x4Kk)(Rt|hwBBc#7S2UtTA9$4ikuJ8(5;@9v{d}s<4#&G? z$v_@h_7#KWioh$3MFERfFh5z~7RY|Wv3C*Qgk~vMSp{}vV-N~o%wwoncIkDG?}wgU zZ;usS(Wtu6czzi(3*U#5D;fx8Naj`ZulZt?ENrtlZ}&!^+um7ju;vTsVHSDJaMZ%V z5XRJzXE+~HHFqQDyuj^uBl@IV`K>&bDGkx~_(X zz3ez+S7Aev%mN8^jbl*e3{J+Vy$2p<{Qo?^^uf2HW%~|2;V7)OeD7@fPVNYIjT zzpCD=fsfMm99qpf-^sKn_2Z{qW_x({w`9HOdbG8-qBdDu;9>C(>yX9a0`b-riJ80k z|4%bl{8v%OU*Gm>g6E_4vnovW>mF|VdCnZ1xQ_WeE&0VA%)4}6RFL{)U@B(tboFyt I=akR{09%tv_5c6? diff --git a/bin/main/edu/rpi/legup/images/Legup/homepanel/puzzle_file.png b/bin/main/edu/rpi/legup/images/Legup/homepanel/puzzle_file.png deleted file mode 100644 index 4ee4d30e5a1b4d858cf32082ae21b7d69ee850cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1424 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 b`9T6f@heqNyGa3;8H8-@XjNjdEAD>)+L)t= diff --git a/bin/main/edu/rpi/legup/legup/config b/bin/main/edu/rpi/legup/legup/config index 8e3b4b84c..cfa1ebeac 100644 --- a/bin/main/edu/rpi/legup/legup/config +++ b/bin/main/edu/rpi/legup/legup/config @@ -15,7 +15,7 @@ + fileCreationDisabled="false"/> + fileCreationDisabled="false"/> - + + @@ -33,5 +33,5 @@ - - \ No newline at end of file + + \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards deleted file mode 100644 index ce6e9d011..000000000 --- a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/DiagonalAdjacentBoards +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards deleted file mode 100644 index bb8ce02ac..000000000 --- a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/InvalidOrthogonalAdjacentBoards +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards b/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards deleted file mode 100644 index 81f42cffc..000000000 --- a/bin/test/puzzles/battleship/rules/AdjacentShipsContradictionRule/OrthogonalAdjacentBoards +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard b/bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard deleted file mode 100644 index adb42c036..000000000 --- a/bin/test/puzzles/battleship/rules/FinishWithShipsBasicRule/HorizontalValidBoard +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file