From 5dbd1fe4b2567ad1f59a607d6a1aea4493197c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Fri, 3 Jun 2022 23:40:00 +0200 Subject: [PATCH] Split level setting into board size and colors counts settings --- android/gradle.properties | 4 +- assets/icons/colors_5.png | Bin 0 -> 1098 bytes assets/icons/colors_6.png | Bin 0 -> 1516 bytes assets/icons/colors_7.png | Bin 0 -> 990 bytes assets/icons/colors_8.png | Bin 0 -> 1559 bytes assets/icons/size_extra.png | Bin 0 -> 962 bytes assets/icons/size_large.png | Bin 0 -> 774 bytes assets/icons/size_medium.png | Bin 0 -> 661 bytes assets/icons/size_small.png | Bin 0 -> 480 bytes icons/build_game_icons.sh | 8 +++ icons/colors_5.svg | 2 + icons/colors_6.svg | 2 + icons/colors_7.svg | 2 + icons/colors_8.svg | 2 + icons/size_extra.svg | 3 + icons/size_large.svg | 3 + icons/size_medium.svg | 3 + icons/size_small.svg | 3 + lib/entities/cell.dart | 2 +- lib/layout/parameters.dart | 6 +- lib/provider/data.dart | 120 ++++++++++++++++++++++------------- lib/utils/board_utils.dart | 2 +- lib/utils/game_utils.dart | 2 +- 23 files changed, 114 insertions(+), 50 deletions(-) create mode 100644 assets/icons/colors_5.png create mode 100644 assets/icons/colors_6.png create mode 100644 assets/icons/colors_7.png create mode 100644 assets/icons/colors_8.png create mode 100644 assets/icons/size_extra.png create mode 100644 assets/icons/size_large.png create mode 100644 assets/icons/size_medium.png create mode 100644 assets/icons/size_small.png create mode 100644 icons/colors_5.svg create mode 100644 icons/colors_6.svg create mode 100644 icons/colors_7.svg create mode 100644 icons/colors_8.svg create mode 100644 icons/size_extra.svg create mode 100644 icons/size_large.svg create mode 100644 icons/size_medium.svg create mode 100644 icons/size_small.svg diff --git a/android/gradle.properties b/android/gradle.properties index 85b94f8..65eed64 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.7 -app.versionCode=7 +app.versionName=0.0.8 +app.versionCode=8 diff --git a/assets/icons/colors_5.png b/assets/icons/colors_5.png new file mode 100644 index 0000000000000000000000000000000000000000..24d2901517b7665bbbf0b7e65540f670fd9ac661 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0WCPk}I_+{y{! z3=9mCC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lHV62GxH2#>FfuYQ zGBGkSF|x2Sv$8X@aj<Z3v2t*;a`Ccp^Re*=aPSIp@CkD8332iZbMlLD3W{<GiE|4} z@Q6t9h)VH_%koLc@kuKQ$S4cSstU=e2`OrcC~1o->4+-ph^pv{spyHR>WixzNoW{J zXqifBn@Q<dNb6b4=-bE|*vcB&%NaSyn>fjvI4PL9Dw?|~S$HT}dMexasMz?b+WM*5 z`Kj3lsyha2IE839hibZnX}U&exkYJv#OQb@==rA@_@^2KrWpoh7zJe-1!o!uXBmfN z8;9nYgyovVlv>1=S;kdZCRSS~*V!c3*`_wyr8U{5H``~l*k`snWOq2`bUNjBJLPpd z=k++}_d4hIxfD)tEuQRFI>o(os(bl#&x)Czm9xC6=Xlr7_o-XpTffk^evx0pV!y^E z{>{q*nwJN(t_*Bj71X{asAElV*ZPp|4I$kdLwh!b_HGXA-x@w)d&Gnt5tDXCPTCbY zd3WUG-BDBaL`~fnJ#Am~wEZ#D55y>~DE-R7z~tfS;uunK>+S96;L8pY4G*_!E$LVg z;HWFaXvh(Iz*%t13Wbgno)Z^qxU&Xs(3+RK+y1WBot&Jua~G_B_r9;5dFPF>XPKFG zXOIi~xx&_GZx~~AO+aaZfmHC}Jfru+J-c#rAGp@l_f$Z%H!vJn>*Ap7#1LPy5tRBE z7|fWf*2VW8-Q)fC<B`8Jb2}LpZ<_XSNruC=3$5v!7;m1l73T|B=;CGOu<}~|A;wj@ zx-tvid9lk>YRW8#%4H8RFX!#`J9FN@?^~(q)Mqog%yL+DTKy}^m)(;-9<=)7;<|&j z(Tt3$w(<}57&Q3B8!|4HOl0`G^OQ)AC-VzO;SEZB8`7A>jxgHIY=|su;8#lslu5YD zvZkAvNBXh-pSxZM((XTA@YD9OR6|s*YC_b?&A~hUd1sUd+=*%k`uf=ZpWSDT6sCDm zJOQt6<la~Qwe9kD5v~83rV7!%-*3FW%l$EL;eNX(@jc(NZZp=4{e3zySX6cAz4ST# zN(={WuWVxMz4p%Q3Hu7KtcwkkrK3z9e390bEO>D&Jl8N`Y0><T^EKbxD|r~cc;(H$ zf)5{Ft6jcTbRhq5(SKL<<6&W2zE9PwajlX+kz-d`V0`V4K(7pcxZ9$8TMzD(jh*u2 ogD51(Ng{vLGxTYjxC_eei03VA-O^OplK|51>FVdQ&MBb@0H)1vWB>pF literal 0 HcmV?d00001 diff --git a/assets/icons/colors_6.png b/assets/icons/colors_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d63b706a2b06e1204e1bff85a0035595953ae8e0 GIT binary patch literal 1516 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0WCPk}I_+{y{! z3=9mCC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l{tNI4ab;j&U}R)q zW@2PvVq|4zWMg4uXJO)CW#VLG;$~;&;b7+FWES9J5#(kO;$acyVG-eF73F0W<6{-) zXO$FSlM-Z;7G#qVVv`YKmlt7I6y;D7<4_joP?g|Rli*aB<kXbn)RE!RljYWz=Qfb% zHc{d+RpK#I=Cx4awN&M`R^zi#=d)Gkv(w;n(Bya2;&;{-aMcxX(-m;n6Y$Uz^wbyh zG7$7J6!J9^@;4R=Fcu0n6%H{I2{ji9w-AZ26p6GFjkXqzvlWZC6-%@eOR^VFb`Vc> z6i;`S$Z(d(c9qO^lg#&!D)f{p^_H&im8tZTsSc2B43=vOk!uc-YYCNa4U=yRlWz}~ z?+BOgj8N!`ROpFP=!sV7i&5;4QJfH~I5AFXQk>G{c%`WcO4AaRrza}UNK&4eq&z!C zWloC9+*Fl$X)5#6RTreIF3eC}lBKpZOKn-U+VULr6*=lFbJbVnsjtb`Sevi0u0UgB zk>-{Xt*xb6+e)=|lxy#*(B56Cy{A%pZ<WseYMlc$ItOcXkJRfPt=Bu&pm)4M??j{C z>1O@2E&AtL4bHb3Txc`6)NXjK%jib8(XC$N+r7qj`i$>SFnKV+<l#h<N0Uq*PcnHj z+4SjT(`QpmpHDS?G1ctlG_zOJ&0fzido#oQ?M(A`v&`SmGXF5!;^S<KPjf7e>%9wR zU|`Poba4!+xb^nV&v2ha3HA@=Q;sMs)o@ikJz>cN)l+_xf~IXcvcOR_bF1nW0oA2b zlCDgdS^3X<zsl!3k+X_tSw63v`~LUi8tdnE_IHb)>wVrAuF2Em%D>t5a^gJZ2#?E& zj0|LghW{)EcmF>+S(|;7_x0iQ_xrQhW>m#Z+dXaV)`)4lwg-tHC^`HvBmT8(*(=5w zd*t4yAM6%uxY_lzF8s|4hKlJ@2`4AAF}x01YJ8y7=))rYmki$}mzpn#c*&dbA<#1I z`a<EO%ln_GWH3m4`St6}mfCs#`%UNeiu0W?yJCMM{ReY;dVh+8?fU(T+74Mc@f9rl z5W2~BiR6N5U;E!F++~<8xnNESb4}9U%V}GgV^SL2F7ZuxcGLdbeLjibMmg6R4YEG5 z%u!b=+M{*4%TRM^h|8~!uLK`5)QMj7xe~smt9DC@|LhEg{XNokv!6cRr15)kf&-s5 z=bP`fx>BX#dJ2X+wnt3yVm&jXsfOQuYQTYj4f;ZzHOj&lM0FfgtzDRIHM6bon%Ll$ zeD=nkN!r&wO{(1(*YI_}D$}co<5Q>aiY;#3tbAD`V<N|jMA7ZlZtqUB9nkD-VE+?0 zuYIY^21lg_hO2kXZs)7pocT*t;DSsB|Ao+f+*PbhahuvC+qTSSzQxK^aa6?lRbNVB zvqQsN(;nkvf3_RVc3?PKVb(LlY{^NU0DZv&^4evRmrQkXCv)sLpcN+F*T^xgZURTe zDJ`*21r77r-v}{&(<t+|Ja_0e&jddq#<u1KU8%Pt!c>GmbWHX6@lbH<r_VRCXELz= zRto+3?q`ZhpQ>lxOa`sT|DPY4x!?VRo7^3xg$&mAcUOtr)|j~ZcZ|q?i$X80hMc(a z{?(KBEMH?XF@oVKd!cu{LlfiU*<x?@mwFjBw24(6*pb@g!kl5DobdmSrx4$Q`N#iU z@89=K=_A7;vwHSJjg1%bG;)l$&Dm;Q^T#OQg6yleEyb7aKRCOmbl&;m{%f`Tf87q* z=9jElel#k!?s;7HdzT8chLy+3Oveli0wxD?E|$y?WjnU$xct+vYgXO==%xWO&C}J- JWt~$(695p_FkJuu literal 0 HcmV?d00001 diff --git a/assets/icons/colors_7.png b/assets/icons/colors_7.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba87aece63cb2ae9589e04100081bd6fd225c2b GIT binary patch literal 990 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0WCPk}I_+{y{! z3=9mCC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lx(E1#xH2#>FfuSO zF)}hUGO{o+vNAETF)^_-GjT98bFwgVu`qM9vhcF9@UgK9u(Jwtu!(ZAi*d3`a&bs= zbIS8_De!VB@^LHkajWw4s0;9@3-D?S@#zTh=?U}e3-jxX@EeH=n2HISi3ysE3t34B z+e(T!NsBtmh`P&)d&r4<%S-skO9UuNg(yphDoaPH%EqY4#j4B2tIMZoDx_*DrfDf= zYAfaHD(C4b7wD-J>Z=s#tCkz8RT!yP8*9`UYt)%&)|+ZJm})kfYPOndcUtOnS?cy# z>rJxJpJb~)&CX!Dz2OXd!`Ti-^PG$qIh!nTF<s_ry28zDrJLC*ck?yw=IcEzHhNla z^0M6OZMDtEdY7-wZeN?-em494ZTI`z9SpEL6kvBa(EdoE{jng2<3SF`gB?x;JDd!5 zJQd=2I>hlzsMFa{r#W)GO$-c75}q!OAr-gY-oEK4k|^T(kjb&t$x$j$Fjv5pP2I&+ zFm;~b1WB0y#@2P8|6RXVvDwpPZbIpelehdg?3=UX@=xhWEgOyXb!X}QW!7kW*~LHx zXy9VLc5nLLt;L)YdjIR)?!k=sXa3;!x%<~wH*75C{BhhYd&&L}mw5}~`3;2A8Y18B zpFNYYZmUQARj(P0ZC@DvCbIpQ<Mn@OthvK}xd*8;7{gXC{eP=bQX%^~vrn63g46HY zUTF>TzFa>9(i)!M`fqTC;kNkF{bi?lKRECk2&6TzzTN-nDo;U?GvoV1JRib-NB5s) zh?f#EkWXuHzg4e)hC%+Tcfi+Ok_xXcFx&7MADHs(dc6^|jG6X>(ix0wTlW{Fu-(|Z zrs1Ulb4m99xo3DbOnLHUQjns<%VkWz4)GXFdh&HrkmP}Xp{#p2j1LIE&9^dO&WQ;) z;4*`8*OvcbCwUBtUwvP4^aGQO=$8G~XBgH`vWXA+#Qx^0=7Y!?j8&g%Jx|JRh*{b& z@dMM8yzKv9lZ_9&SlNGJ=Le>m{44*?88F-Ueya04DL$e1b$s}_HpvB-Kp74eltj~0 ics;t8c?%yqx99$ZM;=--dA6V&%;4$j=d#Wzp$Py%Ejca# literal 0 HcmV?d00001 diff --git a/assets/icons/colors_8.png b/assets/icons/colors_8.png new file mode 100644 index 0000000000000000000000000000000000000000..534373e179076daa289a71e20dff9580310b38a9 GIT binary patch literal 1559 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0WCPk}I_+{y{! z3=9mCC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lJ`V5+ab*AjMlfJv zVq|7!Vr6DxV_{}zVdh|E=455zVgn&=HWnUsRvva%UJf>XPBsBfHbE|SVQzL2ZVpi% z5EA3z5a;C-=i`*(=aS~<k`dsR72uW=<dzrYQ4j(lMPXiL5ndHhJ~c6Z4KaRAaRDs} z0c{BZ9SK2QNkKg+L47G918E^cX(1zNVIvt~6Il^cIT3R?Q44udO9fFY1u<(SaXTe( zdu0g+WeG<W2`5!aXH`iTHAz=BDK~W~cXeqG4QWpeX)jF~Z!KA0ZCO8US$`e503EqN zUAZ7#`Cxs8a07)11H}kK#YjWNC?lm9W2IOV<#<z-L{pU{GnHg>)f98pR138<3$=7h zwG1ouENhJ%YmHnR%{*Jpd|S-|Tde{+ts)2QQU{$fN1bvfoeF2&YG=I~SN%Fy{dzb3 z1~-F7cY`JmgJuuI77xQ#Ps27(qjoQ&4sYX5Z{sc><8B|59$%AQKhu6c(+U2j6a394 z`kPG(Fq<4`J|)n6YLLaWAdBh27BfODXNFkL3bC9WYB@X9YEG!t+%OQD7j8X2+<HNT z^}-07MNzg(qHLE&*)EH=T^4P(A_jz3#@ernwO<`)zb4LMZM?(!1jqFWjvIDa2=Xy7 zFmLsAaSW-r_4dwh^N>Ih_7952B~$k(Iq_#!RjQbD&6pGy%q85sXwer3uPl{CL0MA$ zZW6}F=HI%Mwf3Cd_gOo$XGUh<-@5Pl@!j<^{ua(H{(iIg{0tuniQ95rR~I<{WZ#e{ zQ4+xjN=@Y80}mSF-&a{j%S?ZBefFI1?E9p7KKw4sT~~5q(Ta~d?`t${f37o2-F4Dy z^<D-E{hPlwc*i{DDR($9QQ+I2zNNZHq#o#YRXka7>b%4UUH9V)S6)(xZqWC?zHz<V zwuY?Q=hq(HGhp2lv@}akN85hdqFptUG##Ss%WtqT*RS`FnHIimy$)mXN0pOT1Rvg< z;K&%O!&s|w{70bSH_eGG`kPqps94ThdQe&=;-pZ3d(j^4tL`clZK?~}p1hc(#=&`Q z6N||tnb#Qw(^#S-nW8-Ute<;c@NLSQ*5J4+MC@GGK|aGN@=2T#leQV|u5MZNc85ge zkuRP(lfB#Sv}Z?^FSj@%Vj#7ARn@ncpF1QY@9D?fex4fLduvP9`90B-m-w9Ry0^~g zRYR-K+h37;YO*GNo>rt|c_=I){JGV8-@g@6JHAX_cXo6B>OVTXmnTY?IVEdfnY{CB z+@>F`f>y=<P8s}nU2b2@zUI3;uXXR)yL%Xw+m*{hul-~S)92t%?oQ=C7`m-tCiA0N z#!p_`39i@Naa`oVNukX(n<`(rZw}iW_;CXZ3ty(GoYP^muelcIg$mlI*suQ2eA%=p z`ShLx0uQ`}g5NBdyx2!*i!sX%kG7(VmwgyTc^IGc?+F)Or_@l=#^CDnq2m{)`|3ps z)(4C{H#msKFV4QGWZlqSrgG(X*{<s!H!<s6inLNY-u#7c%?4(cmr?f>j;niE^gdKs z7XLwY&-6oIRbmbaIP8AC?2Eq2E$?c#Tpq^1mkyh`W+<@DdcouI!GMJ&=;@@j2TZr_ zEa&vI-n`Vq^mNiX-^B%fXEe_Qh%ffstizbi{`H@e_I2K~Qx@shTi@1w`r5_z=XHa7 zS9V`k+OKg@WUqKz(uJ^@+WiyizX^Olc5QQ0!T$Ak_G~&RyFpNDg+cc6`S;&-=Ls99 zt&i3Fdh_#=tM*Ixlxp3Q7rreX|5tuq+1;`mZ@;m%e?I7)uVcrwUJg`5lamt|8tNL7 fOkV_mvsOLBzja4_c4$xh2{Ovl)z4*}Q$iB}nOP)I literal 0 HcmV?d00001 diff --git a/assets/icons/size_extra.png b/assets/icons/size_extra.png new file mode 100644 index 0000000000000000000000000000000000000000..d3401d9dd4df7a871eb7ac88592707f63480d0dc GIT binary patch literal 962 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zA<O}c#ab*AjMs`+S z4G_@O)X>({(ACn^)zZ|{($dn_)YsND(AG56*4Eb1GStyB*3r??)iTl5)z#P6H!v_T z)Uh=*G&C|YGB!3gF)=YSGcz|gx3I9Vw6wIcva+_ewzajjx3_n2aBy;Ra&d8Sb#--f zb8~lh_wexW@$vEV^Yi!j4+sbd3=9kp508wDjEahij*gCriHVDgi+5ZfA0MBTl$4yD zoRX4~mX?;4m6e~LUr<m`US3{NQBhM<Q&(5l($do2-rn2W+t=4OVZwxo6DLlYGG*Gd zX|rd~o-=38ym|B1tXZ>R!-kzZckbD<=g5&G$BrGlaN)w`%a`xmx%1$`gC|d(ynXxj z<HwKx|NpltwK>kfz+~#_;uunK>+PN6K_ZC~tQQ)Y`}n+s1Y8B$71EA2%qTw4ar1k< zp!nuLDW)O3y5IHkudZFUdFHzP*}J0G9!t;IaZoaAYt-TG(sLd%FmWg}U?u)}A9(Yz z{yB$5)GtGWDE7q(Yre={xcAs-b1m~S9+O~3mI4Ka$=Ryv2a8^wZ{BHT!5HRMFE(do z^T}G4oIjd7najNY%i64Hp7$pF<^5*!(hY(R42&!SaH8M@qwI{^dX~I;)BjmTtZ2?G zSp6k?K{R{ug_qI>MmL=QdN44uTu@Jt*|l3W{Gi`U`-a)28#wHy{?n`oVULwKUyJH& zi#-jT5q~3#cx!b2if;&Ie|}*5rTr}DUnPjD{bG9(An(Ay%f2P?U*buj8#;e&FRX2r zEZF}g{J>GG8SQ27n2{YO;K0z!x+QT_v=OJ6*L~|Ozv~ALH^lt9XTLn{+YYDy?x$>~ zaws&kF)vH_TYggQN6fGFd!L7wZs4h#@=v!Skp1;eek5NCI54!!81Q*pt7<<ed^x|F zyR?97kJewY9f9oLZ;oqgSYBZla5&5;8&MO!iErMNec!c9R`ON(FN~jFCw*sav+K9V zrFZU}K#L<bu8cqK&Fs?|m?SI~e4PK@{st#%U?4^5f`ttWAF`#dxccJ{E9;?cSL~-K Qz5(SZPgg&ebxsLQ0E{1ItN;K2 literal 0 HcmV?d00001 diff --git a/assets/icons/size_large.png b/assets/icons/size_large.png new file mode 100644 index 0000000000000000000000000000000000000000..18b3420564654a9adf32e5a91d0d41f82fd4e2ce GIT binary patch literal 774 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zA*c;#z;>y6lz{tSB z&&H~up`od%simc*t*x!2qhnxTU~Ft`YHDh(qh)SxZmp|rZEbC1V`HbMZLg=};Nalo z<mBw^?CR?3;o;$BsOx2@=Vz?vXRPn%=ND+KA84W<5)u+>Vi0PoA7y3`7Z(?AZkUje zkd%~^oSdARnwplDR#H+@QBhG<RaISG-QZx>+uJ*7(xfR<rc9kWb;gVtvu4ejJ$v?? zIdisc+qP%Vo`VMu9y@mIY^c-Ir%ykA{P^k9r~m)|>&2?gU|?W8<>}%WQgQ3;9nWCl zK#_)vJS?n20y9&2x)ivYj86RcUoZCM?7IAf>l5AQ?*6mu-fF9ruS)jDm8=f^v&EX# z|F`6Yow^lP40yqNiGok1f8Ow|x_Ls}F0|J0yZ*+6_pNXJq?mbj3(r(!U~pL6u>1F~ zId1>w{`y;T)&BWEU9p&@b>@Nx4ky>1Tm0YmuOWl?PWfX^^(*a>Eiz%b(f9Yf{_D;1 zwf0|6uUvKh$vz?Ox+QkMRJTbppYeU>W5dqCa6ur!_M83g73aUdXkQtBWdDVncdIu( zNPm@n@wzQLvT65Z69j(OdkCu^&(n{8v2VkI->;e)ooyK$7Mp+k<W>9Y;_sFHaZdiv z{~7A(EZKMGgYO$lWbGgJGh}c4e=xAtP5t1~EB$WkTZ`uRa?f5V?-F0Uf}Mdu!ajQA z|F6EaeT)Bl{aqIR_2-@Pq=WOXtY4g8$%kxC54*_!OriMgj0_rL0e{kO-Mfb@i^&#Y h&nV}bSGM{`B~yZ2+wU_c&Xs}`dAj<!taD0e0stH>9UcGx literal 0 HcmV?d00001 diff --git a/assets/icons/size_medium.png b/assets/icons/size_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4f7754fb46de7cf2ddfc265da900bf77cc0d3e GIT binary patch literal 661 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zASQ_9H;>y6lz{toT z#KWSYp`oRvrK_uJU|?WrX=!C;Wo>P3Yinz7Z|~sX5bdfH9UUFxrV|qr6B`?w<f)sS zoSc%9l9iQ}<FA|Jua_I3m!F?sP*6}5tXCYY-<6=>m0-}FsNbDv(3@n?muxU0#c)cR z;hZ^hR<B;YY15{iJ9qBcv*&Q5$&n*RjvYI8{P^(;7cN}BeEIh6+YcT*c=F`Q+qZ8& ze*E}pj>Z4~|7W~e{gi=$vCz}SF{I+w+uJAom>fk|0}gNsrn?@EbYUrUdh*}ixAxtx z6h|j1@AI+urk^?;S-NWSs*p|oTc;JSn%{7%`q)ZF2BN^9$^#F+JumsTuV@zExugp- zi*f?29#mzn+sVkl5W%s)TIZSGueD3$*ByOe_i{HktBqe*W#>PYm+I1n72dxTk*shy z+3@+sZE4ZZ0)Oi+^<PW=Fz3tO7y91pIp@Cn?crr$2rzn}@$KEVZp)5+GrzpODj}ox z*YC^meW197oARISLf77}X@*~4giqSHQ>OXY6lUG&RSXObH;V+Te?Lx|x9@+v>farL z&DWQ_cdvhH4cExPz+fP)@LOFY&XAEIh5N)m%XjZNkY#bR9o!nSbRUOk-+a#eAu!;3 S`i3cTAjO`pelF{r5}E+3Nbo}d literal 0 HcmV?d00001 diff --git a/assets/icons/size_small.png b/assets/icons/size_small.png new file mode 100644 index 0000000000000000000000000000000000000000..2c72840d2dfe2dfb36791973a159869a325de758 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zA@Cfh;ab;j&U}R+A z=402;(9qP>)Y8(@*4Eb1(J?hOH8(eRa&mHYbxkOBPOfxGsd7n8O--wHEuZ3BHN&rO zOT_d8F|%gPnmv2=|Ns9*mhx&bFfdAbx;TbZ+<JR!H(!&3h-)C5=uvSEyMO=vLv_?m zj<xLERaTi1!KygfC$v@nYNNNmLoH_vF9T`dgL=b5o51>-YyP&fU5s<Y<V%?t7&N#p z+}$*7eeLA;u@f6!+peyBd%I>o6SBcI>;)3{)3=_hnqT|5*7RL_62tHFd|#^>8sZuE z*gq<pZu-u5-}ctpBmY2w3)lFW=}^3BK{P9af{wzUt*3vY7ztN}o58{8QTiZAbRT<` WRNXSKx%+!SN<CfuT-G@yGywo@K!HpE literal 0 HcmV?d00001 diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh index 94c69ea..ac70e5f 100755 --- a/icons/build_game_icons.sh +++ b/icons/build_game_icons.sh @@ -19,10 +19,18 @@ AVAILABLE_GAME_IMAGES=" button_start game_fail game_win + colors_5 + colors_6 + colors_7 + colors_8 level_easy level_medium level_hard level_nightmare + size_small + size_medium + size_large + size_extra " # Skins diff --git a/icons/colors_5.svg b/icons/colors_5.svg new file mode 100644 index 0000000..bdf66c3 --- /dev/null +++ b/icons/colors_5.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#97c05c" stroke="#000" stroke-width="2"/><g transform="translate(-1.0061 .33115)" aria-label="5"><path d="m63.315 55.063q0 2.2656-0.85938 4.2188-0.83984 1.9336-2.4609 3.3203-1.7969 1.4844-4.1406 2.207-2.3242 0.70312-5.3125 0.70312-3.4961-0.01953-5.918-0.56641-2.4023-0.52734-3.9258-1.1914v-6.4258h0.82031q1.7773 1.0547 3.8281 1.7578t4.082 0.70312q1.2305 0 2.6562-0.27344 1.4453-0.29297 2.2852-1.0352 0.66406-0.60547 0.99609-1.2305 0.35156-0.625 0.35156-1.9336 0-1.0156-0.46875-1.7383-0.44922-0.74219-1.1719-1.1914-1.0547-0.64453-2.5391-0.83984-1.4844-0.21484-2.6953-0.21484-1.7578 0-3.3789 0.3125-1.6016 0.29297-2.8125 0.58594h-0.85938v-16.406h20.684v5.5664h-13.633v4.7461q0.60547-0.03906 1.5234-0.05859 0.9375-0.03906 1.6406-0.03906 2.4023 0 4.2773 0.46875 1.8945 0.44922 3.2617 1.2695 1.7773 1.0742 2.7734 2.8516 0.99609 1.7578 0.99609 4.4336z"/></g></svg> diff --git a/icons/colors_6.svg b/icons/colors_6.svg new file mode 100644 index 0000000..4c00994 --- /dev/null +++ b/icons/colors_6.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#f29c38" stroke="#000" stroke-width="2"/><g transform="translate(3.8694 .21001)" aria-label="6"><path d="m59.025 55.399q0 2.2461-0.82031 4.2188t-2.3047 3.3203q-1.582 1.4453-3.6719 2.207-2.0703 0.76172-4.8633 0.76172-2.6172 0-4.7852-0.70312-2.1484-0.72266-3.6914-2.1875-1.7773-1.6797-2.7148-4.3359t-0.9375-6.3477q0-3.8281 0.87891-6.7969t2.8711-5.2539q1.9141-2.1875 4.9609-3.3984 3.0664-1.2109 7.2852-1.2109 1.4258 0 3.125 0.19531t2.207 0.29297v5.7227h-0.74219q-0.52734-0.25391-1.7969-0.56641-1.25-0.33203-2.8516-0.33203-3.75 0-5.8398 1.8359t-2.5195 5.1172q1.5039-0.89844 3.1641-1.4453 1.6797-0.56641 3.6133-0.56641 1.6992 0 3.1445 0.39062 1.4648 0.39062 2.7148 1.25 1.6211 1.1328 2.5977 3.0469 0.97656 1.9141 0.97656 4.7852zm-8.8867 4.3945q0.60547-0.66406 0.95703-1.5625 0.37109-0.91797 0.37109-2.4805 0-1.4258-0.41016-2.3242-0.41016-0.91797-1.1328-1.4648-0.70312-0.54688-1.6602-0.74219-0.95703-0.21484-1.9727-0.21484-0.85938 0-1.7969 0.19531-0.9375 0.19531-1.7188 0.48828 0 0.19531-0.01953 0.64453t-0.01953 1.1328q0 2.4023 0.46875 3.9648 0.48828 1.543 1.2891 2.3633 0.54688 0.60547 1.2891 0.89844 0.74219 0.27344 1.6016 0.27344 0.64453 0 1.4258-0.29297t1.3281-0.87891z"/></g></svg> diff --git a/icons/colors_7.svg b/icons/colors_7.svg new file mode 100644 index 0000000..55f53eb --- /dev/null +++ b/icons/colors_7.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#cd5542" stroke="#000" stroke-width="2"/><g transform="translate(3.9378 .2393)" aria-label="7"><path d="m58.459 42.001-13.164 23.301h-8.3594l13.672-23.516h-14.941v-5.5664h22.793z"/></g></svg> diff --git a/icons/colors_8.svg b/icons/colors_8.svg new file mode 100644 index 0000000..7633afb --- /dev/null +++ b/icons/colors_8.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#6041b0" stroke="#000" stroke-width="2"/><g transform="translate(4.1624 .2393)" aria-label="8"><path d="m59.123 57.177q0 3.8672-3.3008 6.3281-3.2812 2.4609-9.0234 2.4609-3.2227 0-5.5273-0.66406-2.3047-0.66406-3.8086-1.8359-1.4844-1.1523-2.207-2.6953-0.70312-1.543-0.70312-3.3203 0-2.1875 1.2695-3.8672 1.2891-1.6992 4.4336-2.9688v-0.11719q-2.5391-1.1719-3.7305-2.9492t-1.1914-4.1211q0-3.457 3.2031-5.6641 3.2031-2.207 8.3398-2.207 5.3906 0 8.4375 2.0117 3.0664 1.9922 3.0664 5.332 0 2.0703-1.2891 3.6914t-3.9453 2.7539v0.11719q3.0469 1.1523 4.5117 3.1055t1.4648 4.6094zm-8.0664-13.438q0-1.4844-1.1523-2.3633-1.1328-0.87891-3.0273-0.87891-0.70312 0-1.4453 0.17578-0.72266 0.17578-1.3281 0.50781-0.56641 0.33203-0.9375 0.87891-0.37109 0.52734-0.37109 1.2109 0 1.1523 0.64453 1.7969 0.66406 0.64453 2.1484 1.2891 0.54688 0.23438 1.4844 0.58594 0.95703 0.33203 2.3047 0.76172 0.89844-1.0547 1.2891-1.8945 0.39062-0.83984 0.39062-2.0703zm0.60547 13.77q0-1.4062-0.70312-2.1289t-2.8906-1.6602q-0.64453-0.29297-1.875-0.72266-1.2305-0.42969-2.0703-0.74219-0.83984 0.76172-1.5234 1.8555-0.66406 1.0742-0.66406 2.4219 0 2.0312 1.4453 3.2422 1.4648 1.1914 3.8086 1.1914 0.625 0 1.4648-0.17578 0.83984-0.19531 1.4453-0.58594 0.70312-0.44922 1.1328-1.0547 0.42969-0.60547 0.42969-1.6406z"/></g></svg> diff --git a/icons/size_extra.svg b/icons/size_extra.svg new file mode 100644 index 0000000..fe07dfb --- /dev/null +++ b/icons/size_extra.svg @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#5f41af" stroke="#000" stroke-width="2"/> + <g transform="translate(4.4197 1.4084)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="13.796" y="16.807" width="12.714" height="12.714"/><rect x="26.51" y="16.807" width="12.714" height="12.714"/><rect x="39.223" y="16.807" width="12.714" height="12.714"/><rect x="51.937" y="16.807" width="12.714" height="12.714"/><rect x="64.651" y="16.807" width="12.714" height="12.714"/><rect x="13.796" y="29.521" width="12.714" height="12.714"/><rect x="26.51" y="29.521" width="12.714" height="12.714"/><rect x="39.223" y="29.521" width="12.714" height="12.714"/><rect x="51.937" y="29.521" width="12.714" height="12.714"/><rect x="64.651" y="29.521" width="12.714" height="12.714"/><rect x="13.796" y="42.235" width="12.714" height="12.714"/><rect x="26.51" y="42.235" width="12.714" height="12.714"/><rect x="39.223" y="42.235" width="12.714" height="12.714"/><rect x="51.937" y="42.235" width="12.714" height="12.714"/><rect x="64.651" y="42.235" width="12.714" height="12.714"/><rect x="13.796" y="54.948" width="12.714" height="12.714"/><rect x="26.51" y="54.948" width="12.714" height="12.714"/><rect x="39.223" y="54.948" width="12.714" height="12.714"/><rect x="51.937" y="54.948" width="12.714" height="12.714"/><rect x="64.651" y="54.948" width="12.714" height="12.714"/><rect x="13.796" y="67.662" width="12.714" height="12.714"/><rect x="26.51" y="67.662" width="12.714" height="12.714"/><rect x="39.223" y="67.662" width="12.714" height="12.714"/><rect x="51.937" y="67.662" width="12.714" height="12.714"/><rect x="64.651" y="67.662" width="12.714" height="12.714"/></g></svg> diff --git a/icons/size_large.svg b/icons/size_large.svg new file mode 100644 index 0000000..174a530 --- /dev/null +++ b/icons/size_large.svg @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#cd5542" stroke="#000" stroke-width="2"/> + <g transform="translate(6.2763 8.2075)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="18.296" y="16.365" width="12.714" height="12.714"/><rect x="31.01" y="16.365" width="12.714" height="12.714"/><rect x="43.724" y="16.365" width="12.714" height="12.714"/><rect x="56.437" y="16.365" width="12.714" height="12.714"/><rect x="18.296" y="29.079" width="12.714" height="12.714"/><rect x="31.01" y="29.079" width="12.714" height="12.714"/><rect x="43.724" y="29.079" width="12.714" height="12.714"/><rect x="56.437" y="29.079" width="12.714" height="12.714"/><rect x="18.296" y="41.792" width="12.714" height="12.714"/><rect x="31.01" y="41.792" width="12.714" height="12.714"/><rect x="43.724" y="41.792" width="12.714" height="12.714"/><rect x="56.437" y="41.792" width="12.714" height="12.714"/><rect x="18.296" y="54.506" width="12.714" height="12.714"/><rect x="31.01" y="54.506" width="12.714" height="12.714"/><rect x="43.724" y="54.506" width="12.714" height="12.714"/><rect x="56.437" y="54.506" width="12.714" height="12.714"/></g></svg> diff --git a/icons/size_medium.svg b/icons/size_medium.svg new file mode 100644 index 0000000..bcc2fba --- /dev/null +++ b/icons/size_medium.svg @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#f29c38" stroke="#000" stroke-width="2"/> + <g transform="translate(11.967 8.1117)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="18.962" y="22.818" width="12.714" height="12.714"/><rect x="31.676" y="22.818" width="12.714" height="12.714"/><rect x="44.389" y="22.818" width="12.714" height="12.714"/><rect x="18.962" y="35.531" width="12.714" height="12.714"/><rect x="31.676" y="35.531" width="12.714" height="12.714"/><rect x="44.389" y="35.531" width="12.714" height="12.714"/><rect x="18.962" y="48.245" width="12.714" height="12.714"/><rect x="31.676" y="48.245" width="12.714" height="12.714"/><rect x="44.389" y="48.245" width="12.714" height="12.714"/></g></svg> diff --git a/icons/size_small.svg b/icons/size_small.svg new file mode 100644 index 0000000..1ccb6e9 --- /dev/null +++ b/icons/size_small.svg @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#97c05c" stroke="#000" stroke-width="2"/> + <g transform="translate(8.8715 12.603)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="28.415" y="24.683" width="12.714" height="12.714"/><rect x="41.128" y="24.683" width="12.714" height="12.714"/><rect x="28.415" y="37.397" width="12.714" height="12.714"/><rect x="41.128" y="37.397" width="12.714" height="12.714"/></g></svg> diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart index 57d927a..9129f4d 100644 --- a/lib/entities/cell.dart +++ b/lib/entities/cell.dart @@ -56,7 +56,7 @@ class Cell { String getImageAssetName(Data myProvider) { int cellValue = this.value; - return 'assets/skins/' + myProvider.skin + '_' + cellValue.toString() + '.png'; + return 'assets/skins/' + myProvider.parameterSkin + '_' + cellValue.toString() + '.png'; } } diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart index f0c0979..c901d7b 100644 --- a/lib/layout/parameters.dart +++ b/lib/layout/parameters.dart @@ -13,7 +13,11 @@ class Parameters { mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ - Parameters.buildParameterSelector(myProvider, 'level'), + // Parameters.buildParameterSelector(myProvider, 'level'), + // SizedBox(height: 5), + Parameters.buildParameterSelector(myProvider, 'size'), + SizedBox(height: 5), + Parameters.buildParameterSelector(myProvider, 'colors'), SizedBox(height: 5), Parameters.buildParameterSelector(myProvider, 'skin'), SizedBox(height: 5), diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 8025bb5..96edef9 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -5,16 +5,30 @@ class Data extends ChangeNotifier { // Configuration available values List _availableLevelValues = ['easy', 'medium', 'hard', 'nightmare']; + List _availableSizeValues = ['small', 'medium', 'large', 'extra']; + List _availableColorsValues = ['5', '6', '7', '8']; List _availableSkinValues = ['default', 'retro', 'symbols']; List get availableLevelValues => _availableLevelValues; + List get availableSizeValues => _availableSizeValues; + List get availableColorsValues => _availableColorsValues; List get availableSkinValues => _availableSkinValues; // Application default configuration - String _level = ''; - String _levelDefault = 'medium'; - String _skin = ''; - String _skinDefault = 'default'; + String _parameterLevel = ''; + String _parameterLevelDefault = 'medium'; + String _parameterSize = ''; + String _parameterSizeDefault = 'medium'; + String _parameterColors = ''; + String _parameterColorsDefault = '6'; + String _parameterSkin = ''; + String _parameterSkinDefault = 'default'; + + // Application current configuration + String get parameterLevel => _parameterLevel; + String get parameterSize => _parameterSize; + String get parameterColors => _parameterColors; + String get parameterSkin => _parameterSkin; // Game data bool _gameIsRunning = false; @@ -29,27 +43,35 @@ class Data extends ChangeNotifier { int _progressTotal = 0; int _progressDelta = 0; - String get level => _level; - void updateLevel(String level) { - _level = level; - - updateBoardSize(getBoardSizeFromLevel(level)); - updateColorsCount(getColorsCountFromLevel(level)); + void updateParameterLevel(String parameterLevel) { + _parameterLevel = parameterLevel; notifyListeners(); } - - String get skin => _skin; - void updateSkin(String skin) { - _skin = skin; + void updateParameterSize(String parameterSize) { + _parameterSize = parameterSize; + updateBoardSize(getBoardSizeFromParameter(parameterSize)); + notifyListeners(); + } + void updateParameterColors(String parameterColors) { + _parameterColors = parameterColors; + updateColorsCount(getColorsCountFromParameter(parameterColors)); + notifyListeners(); + } + void updateParameterSkin(String parameterSkin) { + _parameterSkin = parameterSkin; notifyListeners(); } getParameterValue(String parameterCode) { switch(parameterCode) { - case 'level': { return _level; } + case 'level': { return _parameterLevel; } + break; + case 'size': { return _parameterSize; } break; - case 'skin': { return _skin; } + case 'colors': { return _parameterColors; } + break; + case 'skin': { return _parameterSkin; } break; } return ''; @@ -59,6 +81,10 @@ class Data extends ChangeNotifier { switch(parameterCode) { case 'level': { return _availableLevelValues; } break; + case 'size': { return _availableSizeValues; } + break; + case 'colors': { return _availableColorsValues; } + break; case 'skin': { return _availableSkinValues; } break; } @@ -67,9 +93,13 @@ class Data extends ChangeNotifier { setParameterValue(String parameterCode, String parameterValue) async { switch(parameterCode) { - case 'level': { updateLevel(parameterValue); } + case 'level': { updateParameterLevel(parameterValue); } + break; + case 'size': { updateParameterSize(parameterValue); } break; - case 'skin': { updateSkin(parameterValue); } + case 'colors': { updateParameterColors(parameterValue); } + break; + case 'skin': { updateParameterSkin(parameterValue); } break; } final prefs = await SharedPreferences.getInstance(); @@ -78,47 +108,49 @@ class Data extends ChangeNotifier { void initParametersValues() async { final prefs = await SharedPreferences.getInstance(); - setParameterValue('level', prefs.getString('level') ?? _levelDefault); - setParameterValue('skin', prefs.getString('skin') ?? _skinDefault); - } - - int get boardSize => _boardSize; - void updateBoardSize(int boardSize) { - _boardSize = boardSize; - _progressTotal = boardSize * boardSize; + setParameterValue('level', prefs.getString('level') ?? _parameterLevelDefault); + setParameterValue('size', prefs.getString('size') ?? _parameterSizeDefault); + setParameterValue('colors', prefs.getString('colors') ?? _parameterColorsDefault); + setParameterValue('skin', prefs.getString('skin') ?? _parameterSkinDefault); } - int get colorsCount => _colorsCount; - void updateColorsCount(int colorsCount) { - _colorsCount = colorsCount; - } - - int getBoardSizeFromLevel(String level) { - switch(level) { - case 'easy': { return 6; } + int getBoardSizeFromParameter(String parameterSize) { + switch(parameterSize) { + case 'small': { return 6; } break; case 'medium': { return 10; } break; - case 'hard': { return 14; } + case 'large': { return 14; } break; - case 'nightmare': { return 20; } + case 'extra': { return 20; } break; } - return 8; + return getBoardSizeFromParameter(_parameterSizeDefault); } - int getColorsCountFromLevel(String level) { - switch(level) { - case 'easy': { return 4; } + int getColorsCountFromParameter(String parameterColors) { + switch(parameterColors) { + case '5': { return 5; } break; - case 'medium': { return 5; } + case '6': { return 6; } break; - case 'hard': { return 6; } + case '7': { return 7; } break; - case 'nightmare': { return 7; } + case '8': { return 8; } break; } - return 4; + return getColorsCountFromParameter(_parameterColorsDefault); + } + + int get boardSize => _boardSize; + void updateBoardSize(int boardSize) { + _boardSize = boardSize; + _progressTotal = boardSize * boardSize; + } + + int get colorsCount => _colorsCount; + void updateColorsCount(int colorsCount) { + _colorsCount = colorsCount; } List get cells => _cells; diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart index 5127b15..21a8922 100644 --- a/lib/utils/board_utils.dart +++ b/lib/utils/board_utils.dart @@ -6,7 +6,7 @@ import '../provider/data.dart'; class BoardUtils { static printGrid(List cells) { - String stringValues = '01234567'; + String stringValues = '012345678'; print(''); print('-------'); for (var rowIndex = 0; rowIndex < cells.length; rowIndex++) { diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart index a7005ec..b9eb780 100644 --- a/lib/utils/game_utils.dart +++ b/lib/utils/game_utils.dart @@ -9,7 +9,7 @@ class GameUtils { static Future<void> startGame(Data myProvider) async { print('Starting game'); - print('- level: ' + myProvider.level); + print('- level: ' + myProvider.parameterLevel); print('- size: ' + myProvider.boardSize.toString()); print('- colors: ' + myProvider.colorsCount.toString()); -- GitLab