From 4d1369f19fd290d08a6cf1d2f3a419616d4678df Mon Sep 17 00:00:00 2001 From: Nimrod Abramovich <grumpydormin@gmail.com> Date: Wed, 22 Apr 2020 19:14:11 +0100 Subject: [PATCH] added difficulty setting --- bin/coursework/Main.class | Bin 30145 -> 29947 bytes bin/coursework/RandomGenerator.class | Bin 10222 -> 9996 bytes src/coursework/Main.java | 32 ++---------- src/coursework/RandomGenerator.java | 72 ++++++++++++++++++++------- 4 files changed, 58 insertions(+), 46 deletions(-) diff --git a/bin/coursework/Main.class b/bin/coursework/Main.class index b3a2d151a82b17458c09c455a755a84257e3d373..ad335423a42f6e1153dad4b17f07b9fe36756ed1 100644 GIT binary patch delta 11844 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 NB-1UXE37;Wk^rEjE06#H delta 12163 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�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≀7;?d>f|FqxLpnHBa4~SPh)=$k=^-o?xt&F3GeZ)1z`{3!?I?@v zWXmj-dRqowW;+HcW_t#8W(NinW=94)W+w(;W@m;#W*3G~W><ztW;cddW=OM%iGhKE zlSPjCG_(|R0yWh^y$klu48A*9M74IX$Rh$-h=GNHf!T|Jh1r{do!N(ho7oraUr6JN zhee68&X|EgfC)4M1T`>~ff?LfVb_wD+0LR0G7Hj<1Xtz^tqg1oZIk)4#iP|(G{Ch# zJBudcbC5j@?9A&JpEIz+dpisa>@4amS`5qrOrTjLs0AquOrU`;1~x72?JT<J=AUO^ zWw<c8F<U%JpG5=Id|+T>F<>zS+r-9V#A3+6f@D4$i$04n1Csy~X!;3izAb1#hk=2C zRckwo8OV5~wg|&z1{Q`ZljU;7O)OX}85jkaSgcq~v1qhL*La<Qh2aK@Mq8{J?a(#e zW?*5s1JWoDv(W*oM#ssVxjJxHIb&7hf^PUX1{Q|zAj7#~hP$!2Pj<)^srNur$|%af z$|weoe9)jJ0|Og0u`@8Rv4Av#0?~`b8yXgN3`~$9*OK1O{0iMHeFj!W1H5L{Gl3@H zpoV2ZyDo~_n^^poG013bX9>YtRDtY)BsOruW%OrYXAEHAW(;IdU<^jGPZ92RMV2s@ zU<O8T6PB5QQ9*zUG|9)nXb-As8I0jcVH-;%$Z({jz_^rwg>f0!P)KfI1qTBtNyM<k zPM(-2TrZ-tjU}!RIxwQUjU{m=11F0a`*H>)Nfro?6~q$()rBBAHV}`E)r@^NOA=^Y zQj~o=OA2UAW*bY|W`-n?10cS0Vh~_pVBE*R!nmJ-hw%V|0OKJBamK?8QjA9!WEqb# zs4^a7&|s83&Y;bBg29;aB!d~_DF#c%GYmG2=NP;g&ocxuUYP8VFJ2FdI5tr0hb5DN zje(s(gMk^!GJ~^h7{s7rUJM*8SuEM$5ex<fP6ifPUfw?pOpF3tpczkSWZ?@lCUFK9 zCJ98C)iWRhEte$^YQi@LCQvoXkf03;zD*3i^BMTTOlU~zY-7n6W+~Xl_!=}W8fnG3 z&y0f^6m)8moTBVTpkXb>Z7fBz7=$I+gsy^FoRHzC7IsEac2SOn|8MGoBeWhiodxOl z$S`m-$ubBt$uWpCDKIEADKc0vDKU66DKi8zDKbPesWHSese@gw1um}=;K?Wf9QP~? z$_zG4zZmNnSQ#uBBq8HD;H0I(z#{&iL6U(BJem^7&g{(2)XdJ}SIo{>59%#3)-y23 zgK|(Q3uv$!H2+Y`zydDjgg|MfTzeZ!&5St=>{{Dcz+==b;E^!!7&TKa120n^gCJAE z<h6z3^{`@3h{b>f)LCF)5MnW6sYfaHgjn=h8lW9FW(Gz<0VdEqGc@=yEN;SOaVY~Y zQyGIGQw36(Ox{t*V@0MLnps*V|0|SXY@IA!q$kk6jiqxr1J5P~17Vh)Z7iLWBa56x z`?fJWTh1V|i6Iu&^$=#6FnME<KI5dx4~xX>!JS7)CUIjBWME+GW?*CLVc=)#WiVsv zW3XrHXK-Sg$l%R1g`tsYD#IkEX$(`DW-u&cn$56<X%52<rnwB~nC3BDW}3@zmuUgR zYo>)retQFt?>8(KEHfBb82A}%SZ0F9`OY!0GMr$TTwbgiya^Pep#CqP029kBctM;9 zElh;9wzJHh#lWSton`KF26nCOEb|dL8#36ko`Icd0|PhHMg~5n%?v_JTPMFShGbSq zNyWmz#K+9Q%(9Syfq{u-5zAr*28L}6LM*Eom|51atY_H>W^H2G%Ca5I+R3tqWiObu zkL4iCAu#JO%Q2SYVActi(=2Detg|c^ST2HDmsqZ{Tm!SNv)p324PuqC++}&d@({#i zdBpOR<r$duoaGhEYcT5#%X^j&VAe;LFDzfdtZytoS$>0Ae^~yrGJsgDjI1oIY+x2U nD;Fy_D-Qz$s03o=W#wlTWRPT1W>R1ka*$+t$aI@km_ZT%^@5la diff --git a/bin/coursework/RandomGenerator.class b/bin/coursework/RandomGenerator.class index a8f01bdbc87bbb87844746bc98f29c1b24e0f285..7efe1c3f3f5edb7c8e9beb8d16c29525d3325525 100644 GIT binary patch literal 9996 zcmX^0Z`VEs1_l#GW_AW9Mh2<m{L-T0)bjkIZ2h3byp;T0_td=9qQsK?B6bEAMh1bb z#Ii*FoW#6zegCAa)Z`LI21Y+d21ZXt2A1@q%oIij=ICfoMh32w%(S%3<kFmyN=62r z(!Auv^wbphqRf<HMg{>Nupy--nK}ACnZ+g6j0~K?ndy0nC8b5Fj0~!1(l!u2*iO&9 zlGOCnB5ONqMh4!3{Nm!wq?}aW{Ib+yMg~rh{mzN$Aht3@58MhHA0&T))PPN3v&qcM zEU{x`VAb&S)C^-}U~$e*N#$Z-W)S6J5M&TzWMJ0N3}a`IU}O+RIN7nND6tacZY~CK z22oB1Mh0mf1}+9}5KESafe*rx=V9Q7uoQV1SQ*$rvdTORoD6L23>+Yi8V>_I0|z4m zzfWdfs$XetQfg61Vp2{jBZH7nesW??SYlBohz}KHDaptzW@L~-_6S-8Su-+lq(fp0 zWQv9+S|C_6GN@t*Vhb5A21W*b9tHzY2nfMU1Vvt0VoqslF-Y2ohrt*mEm)jUnwFN6 ziYjZ$!(axI<%MYm1$i+$g9R)Bfg=Xud@cra22qfa);tV0AWhtfDJhOQIUo~@L6UYn z4E78Tj125~sTC!jc_oYtEE=Agp4<#h3@+>p&WsFvh`0eo3lD=UgBv3QOL1mZDmVtg zN<DZOJQ=(g8JN>kOBfkMH9VoA15Q?uq-@R3;KRru2sRBY3{7oZ4BiZWJPiIIQ#ms8 zO2DB2vObW9AqZq9TTyCmepxEW6Cpedp&-ZdWEMN;7v-fEfxH2d2<Ksl07-CV7Q3dT zgTo7CZWIqgG(!v{1A7@LX#LX|8N^VX26clq$i6rphIobqMh51@loXI3An^-!D%1y> zQ6RgLco>oyQWzO{OY#eRQqxKxE`fww7)U`H4?{Xg0bfaeK~QFT22=$|DwBsH3nV3& zlwVSkpNl4&!^4mZk`;i+A`Ay<&F5h#07-J>q^6aCJP8sk;$bKT333*J?171v@-UQv zMA=L73t(auJPef}F)oPNFyU$*h8mDCTXJe%Nl_{&9O`%&>OtYak({4bl9-uS3=(YQ zVQ6A#W@KQ`%u7kF0EMKe29^NwWM^oFMKU-QdL$NS1gDm8F|>e^VGBbXh~)wzx_B76 z8G0BQI5JBhB_JqrpveZT)e|ai&CSrqFoB(+pOHZboO)1Xc^D=#Ok!kU0VQ8X1`${e zM2<F){wX{RQyHc)GO%YP7W<`Elz@|N6c@t`hFR<kGZ`5~5hgq5=j5a&mt^MW74tC6 zW|+gsz*Cf3mReMt>R*(STExg80kZ_`5a;~df<$l;ZVfVS9uLEOh6SJul3!H9$e;-g zC9qOZ{;`IH8kmoy6;u!|!U#Fv!~!mcg$$yg80g|)SjNb}sLjo=f?*Xq!%9X5UWA){ z6AO44Rx_+&WMD2REn#G^fLe<j3=oTvMWCULEX2XEj*)>;mxEygBLiav2g4>t2ByQ? zL3VE8Vc5#Bjgf&ZJGC+xl*<KCf+0Ay#2Qp&?*NtUI~f@yp)P=W6c(h`Adl{b6;xoG zgG-7s^U^_9>;;t~`xqJ2pnAd5u)K%qd=7>Kj0_Cy42KvQ_|YmLE{1~)M?fw)3W~01 zPfsM>5c{k_H4<A9xDp0c3W%_T6r9!|Lle_e1B&vK5|c7>GC@@>2dJVA2A6#7Af_j% z!es*0$V{NhnK6@*fh!qaFflT4q(TcLMg~rhdT`ms$iM?)`xn5Hy%473K;|T-r-IcN zGcs^xK(Z0oK4FM*aKJ*dmo*~;8^}ygPz#|bznqbQIXORvk%13ZiNg%yN7Cz?SYXY_ zz?Ybkk_k%eL8-;1IVFq?tl+YekwLJyG^wO05u6cVaw55<IVG6|Iho0c$XfVPGRrcH zGxPIc>KNS^8F<n%^AdAFRTJ3N?8*71c_pCiBZgW5R~Do~D`9A?BYO;2>%<JzAIQp} z(F;)kPC>9j9@MN+frx|c0A)ukIzh^KgG&;Vvwaf_z)oXlIL*kw25JC-0+=xiRPw&z zVR*~%j*)>6Rtdv`SPa=4(6po(?FrKJfrsHEgAgMFcX4@QfpdONX>K04y8q0>@C78! z0TK_&F9!>L<6-y?s<1griW2jR3-XIo85uZ|^K*)W%M%M2890ja%b`q`<op~*Mg|b& z#K^#&3^ACIfu$(F93)<pU+x6q6*Drhl%(bsFfwoj=a&{Gr@Cc=nnWTHXTsZ}dZ5g} zpvb_;z|6qFz{bD?YGN@kFff7IRA8EufelP^F>o_5GVp-eybMgB<{1i~A4y(-L6m`! zL6AX+fssL&fq`KP12fosE3NGeB3io{#3Q#eNN#12LNH|zOgSy-tqclUGFusxw4|kv zGN>?ZWl-G+wpX2jfkBCZgMooTl!1jokb$2;h(U@$m_e06j6sV*oI#&Kg29qOl0k!k zfk6RcBZDS`76S-afqllvz`$SyYCJM9F)%V{Gw3idLH(o)cBwl9BLhf{pw@N<J+18w zhFaShOtiKz$Zdc-K!|~bfq_AWfrUYqfrCMgfrmjJY#|RsBh*4BP{R%4eXd*vHU<F( z29{mB8O$TMGg$g)ZD+7r&azNjAY~hat*zD;2BlRXCpI!LfXx6!g%kq=g98HtL$r(l z{~`ts7Q5vPi82BKix@aq?Uply$q2+RV&Gu2Th8FkZnvDlO-8^7DrGGr5DJwt07+@f z2<Sqk6l4Uvp;DqU0*Q+lI6w-xIP8`)u(H}|ZDEkw$>7MyAiJ1>7tXPhoyEYmoP|+# z50@1SNR)XegF6$$0S51F48CTpk}S-kto~5(049cTW;3?si~(ArtlJra&Dg<om>CBm zc4f4-Fvy6qvLx(ah}_8#%ft{46-Yr7(AvVFfUXE6hEONU&NQFFPLzEX0}t4q#N`a- zqU<aSpxo5u3>l*AtT1lIa)wAzcD4l!!C=MN%Ne{xIlu;RzzoP+&R{0W0XLv<IfJ?= z2i$;?<qQ&{9Bd01gun)rFK6HcGpaxy00$h)LIy<;M;k<dMYb{6q6L>I8%qK-#6(%a zUan<gn8_dw3PKQu3N|n?>|_9iXA2vnD4Q%x%EEu^p!vp%V>d%f<aUNOD^5w4NGslb zW<1Ph+{+mxBzZ--^~|^=IYqg4Fhp)+Xb*4UW)$TX<yrXuxg_T{h7Oh`jN3tsPAl%^ z43?7II~jTzVKK=i$^{DD95WsWqri+;l0$0?gQ_TxktnYo*rlM@0_mE}$S~{wVM&f1 z4AXZo%-zkfFmgM?Vk<6YGj2(aoeWDD8LW7hGe}DEBAd?xa!7(1H%Jt$|FI;O&{9!u zu))ij8NwwwP*N5Tiy7~71}RY<Ne)q7q%ce|<7we#6y*ik<jBad@c#o*o_P#Hl3YS- zMS0+cv4C6;aSA`kDg4Mz;S=Q*<;yVRmE_;a0C&oIQC_%iRHw9A@UfWjFK3Vz=ab|R z<wtT$Tb>193qPYMKio0*#reefy4$ACVi1<(651%v*9|um6nm0fI~g`JGHhqqZpAOj zuMKj5BO?PMk?gW!m*kRU-^s8Cp2OIdGiXY(FzZ1ghYQ9mFyjVC4wn%q&e??aTd{*; zwqp+$Bpx`oF?51rK?W4wh*;*4<O0Qme+xGwNCNEp2cY6@H^ae5NfuEyN%rjwhvE4W zQXb6x9SJIaSs2tA7?{);IvE%klo>b}R2X;|R2ldg)WC(W34;!U6@xB=4TBzoJ%c`j zD}w=pJA)yE7lRQ)0E00@5Q7OrD1#Y8ID-X46oVB*0)sU}5`zsxDuXRUHiI2QE`vQo z0fQq$5rZ>BDT6CRHG>;NErUBl1A_-c8-pi92ZI+wH-k6BL<S#*$qc>>(-{02W-tUY z%w`B-n9C5su!<p)VGBbv!w!ZRhTRPD3<nqz7%nj+GTdNDVtCAu%<z&Sh2bMZD#K5P zbVe423`S9gOhz?^EJiDaY(_tZT*eTFJjO_de8zZ&0>&hULdFb+BE~$1V#Y#-62@|d zQpQ?_GR6jma>h1>3dSCWD#m_>YR0JyHH@<uY8e+W)G;n*sApWs(7?E!p^<SDLlff; zhGxcn3@wZY8Cn^SGqf?DW$0kMz|h5bjiHb6F+)ESBf~@{E`~`=(hQTCj2V)d>=<S; zxiidS3SgMcl*%xNseoZNQx(H}re=l(Omi3(GA(6T#I%lKG1Fm&1x#ldmNH#sSk82h zVI|W;hE+^|7*;bgGpu6fWmwBB!?2!NhhYP=5yM7iH--(&p$wauqZqa@XEJPO&SBWW z+|IC*xsPE7^9+XF%*z?}GVfs6$GneWKl5dVeaw#-4l=)CIK=#i;TQ`K!*Ld6h7&9% z3@2I48BVh}F`QxXWjM<c$#9M(mf<2x8p9=)Ooq!WO$=99IvK9A^e|jznZ|H~Wi5j$ z%T9({pc;|!2!k%D)`QlF94wm{jxii(U}O+una*$m+}N;TU}iYUz{bGL;0|X6!CB#O zRuY_*3uhI<S+#Ih2b?t-&YA&d&1DgQ+IE2XEyF2>(+n&OmzZxeoMB*NU}bp57{PFs zfsKKU;Ul9H!#M^v26l#@j8+Wi8Q2&&SWFn087_ciSt1!ipe$tu5r&Hlml)VtVi^J; zEGBoRG=|Fz+zcE{0Zg$BR~W7`a5AMba5G$EU}NB7n!}(DWi4fpW4O-1#=yh0jzN^+ z1_K)dFVj87Fov59w-~sX9x?_q+-6{7;AZ;6z|L?7q>fpKk%Qqbn5EC426ibga}L7^ zhI=5r%<WKhe9Su-Y8dV_JYe8s-p!y6R>#l6!=S;im4TaqpT&tm8f-5Yi!Xx!*j{dy zGzNEuhYY6~xL7h7To@jK>}6?U-~zjphv6{;1A`U=3)E-4aGyP4;DoyPDFYYOhGz`? z49^)D7^@i!|1j{gGnoHjP+{ca;$i_KE|xzGjErJz{}^=H8D20l{$;3OWaQ)H6XxUN zW7Yb}V94~JL7jn*oq>^^!JLs1qz2UKb7E&`VE}U(7)1UvNHXwXRl&~C$G~9vpFtD5 z3G56j7#YB7ME^7B;a0=Q$iN`>i$VTB10RC`Hj6+8F(Qo8$ES*kk%2+{7lZ151}g?G zY=$u~{AW-_m11OP*u~BO_B6wP22oU(A|%0~1NM)^e+C5xCWz?_4BQM%pm82Z)00t> zfrWvIfq`KssBHmiWI)?gwM-1N8010i6c9#|fHyqg8XyfWEE*sZs2W%xO*XJ<a8nO# zJX91-DMUZIQiv#ADX8XQ2Gu+aY7CqV3=H=eL>cZg7&1IyaASDLki_tap@iWvLodS< zhWQLn8Fnx{1C=}sVh~S5OCAP>o!~sq2uhm_Yz!=h23lGSOrWtnNH8(Hf(FwhkaIy; zngz`rAVClY2NkBAlr+?j=-z>Z2i!aGP=$ztRpX5Yg#YCj*cliYUNT5BykanAc+KF> z@P;9Q;VnZc!#jqF4DXTrJqhmbNhtni`puAFz`z6=vc&0cP&)(Dd*G;qc@fn!(0~H_ z1gs1kN>EW$r69A(_4g+R8HUdcrVL*g+!?+yBrtqqC}sH0Fp=R03I5JvNWtrGh})3e z4E7LJ{0#|Ha44b1H$(z%DSCYWW{_d{!(htrm%*LkA43Aee}+;<28M}@j3oFwmt23N zxec6nNlfPuBS`i)BMXBJBP)X`BO8M|BRfL^BL_n%BPYW|MlKTkT>$epBMUTtF9#(~ z5XP3jrNDU`k_fOk7$O0WC~#naQZ%tX1ZyBJ^bm;vJles?%OJ_f$Dqf^&)~%<z!1+U z$WYBF#L&wq%&?461Svq4!!!PJq>Rtb!2FxR%K%j3mBB-V5gH;(K%oJ`V9!JRg6T(y z--!$q;`|5+4v2+dgTZ+X>=N|C13fsz8DtnG7z`OD8GIR~7~&bF87dfM7`hl`85T3j zAqB@0cyKI14-Q{&1yBqR4lD@-;%CgTKyotPoDB9LD1kr>0{anF14IJV2B_b`s)-K~ zMFvSmB?di4Wd<)s6^3|5RfcLtHHKbBb%te(8b~2RFo9IULj-#Q!RBO;A4v)n;`|5> zKjP97dIHgAkYUteFl5wa@MY9vh-cJis9-c;=wdWvSj=dI6dVK-hz)}nw8ki8U<S7- zRG4j+Gl+oQ2JYH}#za~e8Ns;+6c8B;|35`I2Rv5DXv)CKXvQGSXv(0>Xn|zC3N(E( zF(`uD>5%pbI|I`n23AG^1}4x%C)D~`Q0uM078T55U}atdVS+4WNm;<a$^sF{nZ>}$ z3T49O*w!$uVPIfDYDh6!GjKB6FmN;4GDtDnF~~65GpI5;FsL&+GMF(sF<3A<BRSLx z>QK<w=}QJS28cu17+AOkxIpd<WpIGH^AyybSzyQI%wpgJGmspd19OxJL<Yu%J9-ua zx(v)`Fr^4HvG~iKL5R_VL4?th!HCg|!GzJ9!H3a@!H?0GA&t?GA%oE$$zNG;e`PVC z_)A1yQj&oQG;t60*EI%a@UX8tiw(2wat14AyX6dWpb;1uBUx#GSOQ>40L6n%3p1lE z$gK<iKWJh6FFlI^G?1oX)563E%Fzl7{~tl55Hki|1_s7p1}4T326o0!1|G&R22sXv z1_{Op1|`Nw1{KCo27SgD1|!B;1~bMu25ZI;1~<k;uqU)2PJ()ZiNO`zcLQZyCvbXV zV&G&@V|WGbUq5GHU=U<r`^&)2$oPkWg;AX87lSYp0~2WV0mP5sN|Kd<fguq#ObzmB z0P7wuKUUD-uP(EmE{om*22L&Q?F_H|KqFC-EFb|cuz(ed7DUB%hWA=9$?XiEWCYk3 zFtBTFXZQ;8zX1Qj{~Hj#w_@O9U|>vP;9yK;;AKo>5M)ee5M#_>kY~(fP-V<!FksAK zFlWqXaAYiC@MSDw2xcs12xm-XNMI}jhkywK*ul^c;9!V^jxcaBgh4|<kim`N2g7Lw zW(F|^M~0u^K0hcd#2HxsGVp@>nSU9?*%@B2GrSP|$si93k+%%*AR)rw$G{5C^ir&Q zxFVTB!@3IF7;OC`S>Q~>v;ZhqFfdkvodxNBNI{*&z#s*6787Vv2x|6U1{Sd6vq33^ z6*SG^$85&3oIyobl*Nb{l(a-yjHLDaL0r(lyQ(OQk&K>y3k#zth^w&h|4oQ`m{PDp zJ<wP@SSg6hjH(_H?ph373=E953|x$L3<8Yx4DyT(40?=p3|5Ry3=WLV4E~HQ3~`K2 z3|WkAU=P`WCxNoz9?E9;1ug~{7_u3DgGX|>7!n!&FmNz1Gw?F#g2SGL!4}Q}g*Xob z%U@7mS%p!7Pl166G!I5}P)HkzvLFS8448{OC_qX<erJIM1xP7~OCTsZ8Mqj`7z7x* z8RQvz81xvs7_1ok7#tY;8T=V1FvKzTF=R1L!VwgI;X&~a9u)sc3X1RWYGyYBs3pR{ z-~dV$APh<vKA?=K3@UPjwPlS!Wr(Vbk*uCSqMUgR%3C1i3;*BN(uU5LK}vf_3vwz0 zFXJ=@A;#$p;*2vGR2Zi-=rc}ZuwtCeV9z)Q>@P@R;sA|eUIt@E1_llWMh1QcZE$ol iF^DioqZB4Ae;I_>8C1Z<3I8t!E(S)>*a-s@BNG7Oj7&%X literal 10222 zcmX^0Z`VEs1_l#GC3XfTMh2<m{L-T0)bjkIZ2h3byp;T0_td=9qQsK?B6bEAMh1bb z#Ii*FoW#6zegCAa)Z`LI21Y+d21ZXt2A1@q%oIij=ICfoMh4E5%(S%3<kFlHMh2eJ zyyV36)D-uk%#>nA1_2+i8KoteIr=`C#U<8^44lE4>3NAIrA4WX4610-HV{78O3%EK z)b!LMYddR32Ht}F;^NGtoK)ZZveaTm22POm&WY(DwlYKy+zJ~XByWM#fK6bt$;`_v zv14Rl)$sJx3}a+qan4Uk<zirF5anSIWDsLyVAjwKV`q?HWDrI;*|Df7u@dBNE(UQ1 zQBDR%25BA!E(UH8OO}U$55kh?Vc>_b6nPj}8Q9nvI6w+ico^6jI2alDeKPY>{YrC_ zQj0<olX6lS8H9ZDlM{2o5{oiHe5fExNk(QdBZCaG^U-3(nvsDE9@dqN3>@i@_yQTJ zp@|j_){G3Q7=qXWhl_!cL63()9~1~eFcU%X7nYb)npzB!HsoP20!a%NXOyO;<)os@ zn(#1~f@FDNnn9sn%+6pAOG4ndf%t`s!Hhu^WTX`jgEdGKcVbG4V@?jp#A1-7Ef0eo zgFPbydtPcqiDzC3BLj<ur=}-2gCm18JA)G=10N!KKrzF^;KJa_$iPyZS(OToM6gnK z9tIBvPeumj^wbhY22l-9Xy|}b79=rSvom-zG6;fA0}DeF92bKZgD($*AIMaW%)AnC zD1fXF;9&>^naNg^nwwvi3i3oS4?_sZu{@c@&iO@osYM`ffF#0r7{WmkT$#nLDe2(w z0+}1h!w|&~&B(xB1`1mLG)4w7RHs4RU=6Y_mWLsZA)b+eIWZ*#<OfLnf}INWfo2rQ zu0$S&B!*;02HukV0-w~h5{OG6;T8r`kjlf522#LRl3x&%nVtbv0g}q#VaNnY2`1&2 zl;r24$!7B~<bY%aAhHO<L0a>881g}q9670JB_L0N1Pgf>ia>&#MId`%q9r^Gr65uE zlKcXgSUC?v1xSnwVm3^;iie>ZB+QnanpaYk3JQl>9)>zlIB+EA=anR8<`shk8+aHR z8JZXw*faA|QY%0qDXM`bfIQh5T40e3PK6$c#Tmh=C0q>6pk&z05DQ{CgNRNZhAxI~ zMh1?|5=a>ciX3RN0c-Vyid%Ct^fL6bGxRYs2!T@%iYyPq1cr%>3@o7J%g7)C%Yn$z z2GT#7hhYlCR7M8&jKpHU)QS>t(v9L`n9eYhonZzegDApe=lq<U)Z~)P{JdfwhFJ`= z85wwrQp-|{ic|fIQc{Z;86;qqfF0tTpIeX!F2t=t#?9qnn8z?5ltJ=~N*Eb5p`ip; z3d%p$kWd5jk+g!!!i5+i=bKo-#jt=u6chuU91Ket85p&>8J07wWM^2x$iRzmvu|Pn z55p>k)r<_x1*Ij73>Hvpk%IwZF|r6Ww2_547}hc}FzRwJtY>6ktl(hS$jHEScst0> z%{&ZS7`8Gpuw|!K27_|BAWAR<r<PcQO6~2S;(Z4rgCx`iP>;fb)EeZ`U9f@*Y;$l) zQD$B`$cjCnQe-b9gBnyXSQ?i1FrClAu%D5Eft}$XBLhEL9mK_OfZ;I6B}YKf747MX zq#I(NHK<ZzD*{);pc(=ZmXLze8f0i<dTKyXeo|smW=>`ar~&}hwZY($j~&GH1l74r zpgNfeR6R3hGBR)_!wV)x298u{VZ_M52~rO(+ZY*mKy3d4Sh5$wbR5W>#Pn3K`eH@~ zt_(;v0^27HQ4S7RX!f#ZWMBiC=?Q8h6y=vQGB79S=P)wx!Rm3CLHtO1eG?0;85#Hz zQ&KWPi9IN_7~G;@1(%hK41&d_NhL*z;EVv16Ui;jDakCz$xKc}*20&PS(aIxnV$z! z$LPk$z>}7lmzV>pn!v7RPtGsRD*<I6G1S_)vLF>&BST{y*<-jGC}ybsKvo8gUWfv4 z3W62#pq7maL>z1fC_7@&2~x%zT#}fa?VDHtb{adwDMki1P#Xvoz>Ha-lJ_+a!yAUT zj0}9RN*ETzV#wZrrX|g2PmrGXJPaQggcupPi^~%Wobz)^bMwH}{U;uV&meIQka$pj zIau&355qT5h0R$~l$cjskYAk2$iR`DpHm!Mo>;)hz)_T64rQ_==jS*wGJq&2Mh5m| zh{22uEJgX{An~I7awiC{n2~{{BsI5yk%2A0w4|W4gp-kpk%gU+88t&z7MG;v@-VV8 zvN19+=Yz@<QAn_5=IaL(W#*LxmlUNY=328eaxgN8gL4izpdmr;RGOKSl3K*Yu#=IC zharlQ8&sL1GzcK-thpH38F_ga1R422Dj+r>nPaUP#=$7S$iS!oQYgg3D9k9r$iS9Z zP>`CJ!pNWt4QCV`7=}O{1GY<yhf$nSf{}rvBp>1e^!frKYR$zc#VEthC=F|xqWYSL zQ5NK2)&fvKa4^a<GB9#6GH?awmlh?bx@Cgen<9{ChqvzaKtaTy$iT?J%)r3F#=rz> zwK6a;Fo7DZV49PG4NP+}a5FG6@POI83{0RFFAAR@NnU_KjDe9skU@xnkwKV&fuWm$ z8En3()^-LFt=$abk=q$0w=zf}m@){aoR;)f1_do?>7xuvOj{Y0H-fEHWnf^CV_;`s zU=U?sVGv~CXAokLVi0CfWe{V~Vi0FAVUS=@V_;xVfLO$!&Y-~n0;XUOF)}bPm@;UB zJ;=zQ#h}f=1oesz*n#d0j0_+(f?C@dbhWlK7-(&0FxJ|_Ah!W-xex;j0|SFJ0}F!; z0|$dF0}q27*g_tNMyQ2Mp!P4s*PLbyYzzVn3@qNe8O$QLGg$a&ZD+7t&SIo3kg|=z z##TnaXb}SktKD)20U3eNMGPElcFP%9+3mEpFi7oWaA0JRUCh7>=h(^4Vqja&!YI3k z%Zddg%Dj`ojfvp^gV#0&A2U`-7G_aaf2g=W6GJ$&8QXHk04-70?F>O?>|i?7i~|wM zGFn?0WJFn65_T{|>|}^xVhD!{q@W3CZDCMAR|FD6s1s#pn$KV-%07#M2W(Hma)xqI zc9sQDZpw0o3{iGg7&m=6L!>A>+X9AQu;Q%c3|^ufU;{W{2IMYhFcal~8&I&EL0yys zZb0#J1_@CPwgn7AU<1mQGjM_#l^_p*1CC`OgCdBd4I;oI+Zb%nf=iT*B>@^@qO4#q z*Dx{6WRM00AqYbS>zNpKGJwLfg^f{^O_n8P;lFjz^lQbjo1r;!J434#rzA_H74JSX z9%eJ{<qQ&%yrSHCW?Yh-qFg%|BDOKKg|~1sigJtcEd2jml5-nFJIfNr?I1>n758!m zOG)mX3_XmnnB)@W0)=jl84rX}V8$!Sp|yoUS(L{}lvfYzQc!GxbWLJpnDzg#B*zYh zX*(F^>}FUHxt(E=6&JG^w<O0-hQ*8wR=mp@Bqe!~&F29*B*BauBnsC5SdvR<i6}SN z;APAV;gTFEDT{~2jCVPMlqioRhbS*n7^ax<wD2;D@`7w~U}RYM|A8paJO&|2E}=D| zJaEHUK(2>4g&*V;eq^WciSml_Wtj0w^6zATJ7t|HFI+dOQ`#)}Sj_mBGf0c`Npgtt zBe|t5&w{UopHY+_?wI@HeBylFZBu742upGaZ4l?{h8qfsJxQ*e44W7kwli$A;+N#t z206fikpYoNc3QDZa!Io9WY`VQVQkA8G$mP>^&pYM1!ESNaf2g=%Lo+bY(o32*g-Md zzK07E51iW=IzX`?0}5|MEb~Zmf#Sixg_{v10rvd^P<gYP;XtG$izu5U`*wyy@O%j= z59a<p0V)ew7*rV;7!NTNFfcGEF>o*_Gw?8|Fz|y*LJbBP22BPz1}z3f25km)1|0@X z23-an27LxS1|tS*24e<S22%!41~Ud921|xO1}lbS25W{)1{;PF23v+I20Ml(2787s z21kae3{DKo7@QflGq^CEW^iS=&*0ARl);1H6@w?k2L>;O&kWuSKN)-&{xkS8GBNlu zaxnNa@-YN33Ni#TiZcW;$})s7DlmjHsxgEyYBPj08ZtyMnlMB%S}{a1Ixs{tIy1yD zdNRZ^`ZL5a1~J4lMld8W#xW!@CNiWjrZZ$PmM~;8PGZProXwEKxP~E@@d$%0<9UW+ z#v2SJj1L(~8NV@<F)=cfGI29hGKnx$G3hc?Gnp~eFxfNIGKDZyF~u>|Go>*!GUYQg zGZitkF!eIDGEHG<VVcL#&a{@HlW8wQ7t>*eZl>!DT};mydYN7`^fCQnn8@^(VG^?h z!(?W8hDpqt3{#mc7^X9OGR$E1XPC*H!Z3rmm|-?^EyEn<UWNtCa~T#gZ(&%(e3W4^ z^9hEf%$FIKG2dfY&ismD1@k+G)y&@+)-eBKSj!^Ju#QEFVLgj1!&(+~hD|JX3@R*M z3|m0e2V)k43aE;JRv#QJ&J0HxjxjJYh_Pre90%7|atzE2Cm7fmm>D$TEIk$hs8}HL zTZWSirx;iml9_KaoMvESU}Y$0j9@s!z{bGF(8TD(aF&6Mft{g?(Td?50~-Se^HBz7 zhVvj<=2r|MP}UX(5rzv47a7=@-!TM0Sd2HA(iko=a5Hc)K4gkzxXf^cfs^qY12@A} z1~vvRCS3+~D9emNj^P>u8v_rMJ%cF2bp|#DUZ#A;FoqipHyOB?iWq|#ZZWVia5MEX zuru5StJ}-S!Egu6I>4X?b}28@UxpJ5cR_lYC7|l~m^~S4816CLXW(P@VNeIF<7b}B zpuw<(ft!J!`7(nv*j_H?dkg|#d%2mvGq^K6U^vCV#r%uGh2bH{UKU{nF0e~^7#=Y& zFlaHbKz+sw_t|3xPN<8YFmOR_c*?-f@Qi_hv5-Oi4+B3tgV`SjK}N1W42+CoZ2uT^ z*%_WQGX7<#U}WUu;}hoN<73tO$zaIzpFy30kDY;$oxzNe5u^sx33Oy<Xl4L&85l(V zGe|P<U{%4+(96JJ`kz4)y9w+J%NZHKYDE7t=;2nw$jHDT_KQLOKLa0w05*$21~DRx z(#NNYiIIUp{1=1je+DZCE^LM|F#KmwMU`S?XV}Tk0QNM)e+E%hmm(y=p#%1h#D4|_ z1}2E<3=G^1OrUWeNE?b#l7WSRiGhJ(C#X&aRnE}1NDULiECzW{{SLxN67UKet^v|e z!J+{ofvN%89s;WdH<7@`Lq*Y)LiD36g^0qHf=X;=P>Ic;#=yzIz_5cslwl`>A;T^P zH-_B|Nep`!N*MMs^fK&Yn9s1EVFv>!M=&smK|BpD6&M(Hf^#+_C`B@`F|ZgKXlXGp zfyVkE!Nl+i8cdTw&IMs<7BqK&1VI=aRG4y7(ojF5dk50=gL?-ast|FoYP`{a@IR#W zewaa$;Ru5%!%+rzhGPr~496Kt8BQ=vWH<>b4Wa&?1o!tO6n``QW=Jq#U;+(c;`BGD ze#Z13I4WUYMD+|bpuj!>D+7lTR1{Sy$ZT@`eTG4X;VgqG!#M_bhVu*w3>O$m87?wR zWVl3vzcU$<@%kI$He@%0Jwz3ML&6jsN~rM-k$_u@9^Y3PWEie7m@-^vaA&x|kic-0 zp_Jhk!$gMLB=|drTz{jv4V-vMOy>|INcZ<W1{sF?45kbZ7~B~iG9)lOVkl*J%rKGR z2?_qrhxwb41)9H?gAykQW6R%C;Jgh<1Xvslk$^`OI50pdnphu#H4qnih(rKtpfWH# zXOLug!Jx<RlEI7N6+=A3YldouHw?WDZyA;`yh93*<?xKZ94X_oGcf;V@G=0Ec%|?V zVT6Xr5>RM>Fxc}DzhL?i;&&ngg*ZP#f&*e9*kEv81G@yh@IViaj|?&lpBM}oJ~Q|- zd|`-Z_{vbh@QtC1;XA`(h95}5u>>9*OVESE7hC}p!Gi-!0)hA$Gc1stj5jBPJqSu5 z5QD&eMAZP1K(zttcd%;WL*zGuB*PyDJ%+ywUJU;j;u-!kR5LO#^fEFsEMsIs3K4<{ zqyioy*b@jgCxiS*QlJp$M{xKNmzK~H2qP<l3?mzZAtO73FCzy-JR>JV1tS+j7b7>r zVn!aM;2@Yltic0updq+I24--ZLWS98IfDq;ZQw33Xe^<HkrAAGKmn1l@c&bUbHIaM zjQk9&i~<b8jQkABj6z7(t3cBy6N4hSbq;Bturo0I0c&6aO?*NttXWX&t-ux)%wk|= zUISr*EM-Yqz`)7^5y+Xvz{(0`!sXc3Fs)%=U_fd}F^V#9GKw*9Gm0}vF-kDVFiJA0 zGD<P1GfFd<G0HGlFv=o1)C%fQ1_mpJ7Yu9+5Qnlcuy6}-2{15$W^SSGJOy=U7T9q) zvl#fm3?v8Vz#Jt4k%4jHj-JJUE(7x!Oew-lEdEkt5Moqf5MfkiFk)0;Fkw_>@L^PA z@MBbGNMqDs$Y9h&@>dqzUs<UB5|NjbWMBeK<U{>+je!|Fe(BC)!)&{p!HU^#IfEQ% z<U+<sR@xty09X=0@nF-!%qR<T>%#vJS{VOJ&td=#Kq=U?FfoF1w8FywM-VB*jDeSd zfl-%%iBXS%ol&2GhtYsRl+lnug3*XUiP4xrg;AeDpV5rLh|!$EjM0L@no*CzjnNwH z2`z||pq^l2a0U0+KpEEwoSv8%I2qI!UV{6+&lngO1R2==GO#l;{$XHY6leOyAk4(T z1X_&%@gumBWMyDrNQ8~If_xglx`)e;6*Oq7%dDr%qPKv7Q%ie0!z(|~2#zERNPr70 zV8x;ZQL&xjofb@TJHtmA0rmw9>{{CyzJUBMz`yYS288de82A_%80{E180{H&866k| z866qK7@Zj88J!ta8C@9+7~L4m89f;s8NC>M8GRUn8GRYT8SNPo7z4l|V8Q@)Ff;@> z7$Tv)e=deFXb1>0xG{WZ03}N?21kY;;GRAxEW{aD|1$7``k8+j#Mv31vokyw{K+5> z3XwMqZy_PV;K#rU&h%2Od$=N*LBpX6+Zb&8BU#`~#P~KSS1>RJgPjHGen>%`#lRp1 zbrut7k_c+{Uj`Pi<Fi32g%vbb@5gM$vYbIhSCqww8I-g{S&XFh{6SpMfVHwHi;;|; ze+vtvD2S`D@c&JSdYDqMLOswJHdrZ$%Z#cX5$;+HTnr41;S5}i5ex#1kqq*TQ4D&F z5e!z0F$@lju?+r<aSU;cF$`IZ31AP|fhRGt;U3Cn_z5ls7#Ok{et}0>xEK-{elu_| zFf;Hn=z_zZg~1li0);pa1Iu4fUs;J!flq;f2{bQ8bWlheiLxLCg$$UBJt#m*L4Id} z1O-Sbh)W<Sk{P%dQy2soQyJtL(-`y^Qy8omGZ-8gGa39Dvl!wSGZ?ZMb8rO3A9zsw zg$Knyl7iwJyqej~0BVUaFgSox1qg!@h7TwsDuap~VQpC>P#K~uV<fBRk0@tegYp(g z`NIFVwX~s=K9JHL+=67xXW(TlU=U&~WDsX8Vo+f$WYA|UV6b8=Ww2)~1N#e7m^eVA zn3utr;XeZh10w@JgElxinHWSEq)`eJmcI-_><mia;)MSf0~cr^9NZ&^7+AqGNg<&6 z(gEZF^-YY7yBXOdLFrZ6NJei5Bj<KT9$`lQZH$837)7@+N+LXQeG?<2Fryqu3|hA? z{J#$_hDgT{&s8$8GFCBgF;+8ZGgdK}G1fBJGgdNqG1fB#Gd6%d2bt9hfqIUK!2|3i j&>)UJ*h@^{kpVsi7EsL#Djt=8F$gm-GAe+kuNV~p`z?o+ diff --git a/src/coursework/Main.java b/src/coursework/Main.java index 6f5bc3b..cbb2058 100644 --- a/src/coursework/Main.java +++ b/src/coursework/Main.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Stack; import java.util.stream.Collectors; -import java.util.stream.Stream; import javafx.application.*; import javafx.geometry.Insets; @@ -27,8 +26,6 @@ import javafx.scene.control.Slider; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.control.ToggleGroup; -import javafx.scene.image.Image; -import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; @@ -190,7 +187,7 @@ public class Main extends Application { Button generateRandomGameButton = new Button("Generate Random\nGame"); generateRandomGameButton.setPrefWidth(loadGameFileButton.getPrefWidth()); - generateRandomGameButton.setPrefHeight(50); + generateRandomGameButton.setPrefHeight(60); generateRandomGameButton.setStyle("-fx-text-alignment:center;"); VBox leftVBox = new VBox(); @@ -373,29 +370,6 @@ public class Main extends Application { return slider; } -// private HBox setupRadioHBox() { -// HBox hboxMiddle = new HBox(); -// ToggleGroup tg = new ToggleGroup(); -// RadioButton easy = new RadioButton("Easy"); -// easy.setToggleGroup(tg); -// RadioButton medium = new RadioButton("Medium"); -// medium.setToggleGroup(tg); -// RadioButton hard = new RadioButton("Hard"); -// hard.setToggleGroup(tg); -// hboxMiddle.setAlignment(Pos.CENTER); -// hboxMiddle.setSpacing(10); -// VBox radioVBox = new VBox(easy, medium, hard); -// radioVBox.setSpacing(5); -// hboxMiddle.getChildren().addAll(new Label("Difficulty:"), radioVBox); -// -// return hboxMiddle; -// } - - private void solveGrid() { - Solver solver = new Solver(N, gridCages); - solver.solvePuzzel(); - } - /////////////////////////////////////////////////////////// private void generateRandomGameEvent() { Stage popupStage = new Stage(); @@ -448,7 +422,7 @@ public class Main extends Application { resetGrid(); int difficulty; if (easy.isSelected()) { - difficulty = 1; + difficulty = 1; } else if (medium.isSelected()) { difficulty = 2; @@ -463,7 +437,7 @@ public class Main extends Application { gridCages = rg.generate(); }); - popupStage.setScene(new Scene(vbox, 250, 250)); + popupStage.setScene(new Scene(vbox, 240, 170)); popupStage.show(); } diff --git a/src/coursework/RandomGenerator.java b/src/coursework/RandomGenerator.java index 8eddff0..7cda69e 100644 --- a/src/coursework/RandomGenerator.java +++ b/src/coursework/RandomGenerator.java @@ -12,7 +12,7 @@ public class RandomGenerator { private int N; private int[][] grid; - private int difficult; // 1 = easy | 2 = medium | 3 = hard + private int difficulty; // 1 = easy | 2 = medium | 3 = hard private List<Integer> uncagedGrids = new ArrayList<Integer>(); private List<Integer> possibleMoves = new ArrayList<Integer>(); @@ -20,6 +20,7 @@ public class RandomGenerator { public RandomGenerator(int N, int difficulty) { this.N = N; + this.difficulty = difficulty; grid = new int[N][N]; } @@ -37,15 +38,52 @@ public class RandomGenerator { int cageProbability = random.nextInt(100); int cageSize; - if (cageProbability < 50) { + + switch (difficulty) { + case 1: + if (cageProbability < 15) { + cageSize = 1; + } + else if (cageProbability < 80) { + cageSize = 2; + } + else if (cageProbability < 95) { + cageSize = 3; + } + else { + cageSize = 4; + } + break; + case 2: + if (cageProbability < 50) { + cageSize = 2; + } + else if (cageProbability < 85) { + cageSize = 3; + } + else { + cageSize = 4; + } + break; + case 3: + if (cageProbability < 45) { + cageSize = 2; + } + else if (cageProbability < 75) { + cageSize = 3; + } + else if (cageProbability < 97) { + cageSize = 4; + } + else { + cageSize = 5; + } + break; + + default: cageSize = 2; } - else if (cageProbability < 85) { - cageSize = 3; - } - else { - cageSize = 4; - } + if (uncagedGrids.size() <= cageSize) { cageSize = uncagedGrids.size(); @@ -373,14 +411,14 @@ public class RandomGenerator { grid = temp; } - private void output() { - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - System.out.print(grid[i][j] + " "); - } - System.out.print("\n"); - } - System.out.print("\n"); - } +// private void output() { +// for (int i = 0; i < N; i++) { +// for (int j = 0; j < N; j++) { +// System.out.print(grid[i][j] + " "); +// } +// System.out.print("\n"); +// } +// System.out.print("\n"); +// } } \ No newline at end of file -- GitLab