From c7a396f44a6726a13acbf41e024c82d76541e510 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Sun, 18 Jul 2021 21:47:29 +0200
Subject: [PATCH] Add minimal gameplay

---
 android/gradle.properties                     |   4 +-
 assets/icons/button_back.png                  | Bin 0 -> 3744 bytes
 assets/icons/button_start.png                 | Bin 0 -> 3969 bytes
 assets/icons/difficulty_easy.png              | Bin 0 -> 2833 bytes
 assets/icons/difficulty_hard.png              | Bin 0 -> 2649 bytes
 assets/icons/difficulty_medium.png            | Bin 0 -> 2857 bytes
 assets/icons/difficulty_nightmare.png         | Bin 0 -> 1848 bytes
 assets/icons/game_fail.png                    | Bin 0 -> 7107 bytes
 assets/icons/game_win.png                     | Bin 0 -> 7906 bytes
 assets/icons/size_10x10.png                   | Bin 0 -> 4747 bytes
 assets/icons/size_15x15.png                   | Bin 0 -> 5415 bytes
 assets/icons/size_20x20.png                   | Bin 0 -> 6558 bytes
 assets/skins/default_0.png                    | Bin 0 -> 170 bytes
 assets/skins/default_1.png                    | Bin 0 -> 1202 bytes
 assets/skins/default_2.png                    | Bin 0 -> 2663 bytes
 assets/skins/default_3.png                    | Bin 0 -> 3030 bytes
 assets/skins/default_4.png                    | Bin 0 -> 1620 bytes
 assets/skins/default_5.png                    | Bin 0 -> 2813 bytes
 assets/skins/default_6.png                    | Bin 0 -> 3220 bytes
 assets/skins/default_7.png                    | Bin 0 -> 1911 bytes
 assets/skins/default_8.png                    | Bin 0 -> 3206 bytes
 assets/skins/default_mine.png                 | Bin 0 -> 6226 bytes
 assets/skins/default_unknown.png              | Bin 0 -> 170 bytes
 assets/skins/empty.png                        | Bin 0 -> 170 bytes
 .../metadata/android/en-US/changelogs/1.txt   |   1 +
 .../metadata/android/en-US/changelogs/2.txt   |   1 +
 .../metadata/android/en-US/changelogs/3.txt   |   1 +
 .../android/en-US/full_description.txt        |   1 +
 .../metadata/android/en-US/images/icon.png    | Bin 0 -> 18343 bytes
 .../android/en-US/short_description.txt       |   1 +
 fastlane/metadata/android/en-US/title.txt     |   1 +
 .../metadata/android/fr-FR/changelogs/1.txt   |   1 +
 .../metadata/android/fr-FR/changelogs/2.txt   |   1 +
 .../metadata/android/fr-FR/changelogs/3.txt   |   1 +
 .../android/fr-FR/full_description.txt        |   1 +
 .../android/fr-FR/short_description.txt       |   1 +
 fastlane/metadata/android/fr-FR/title.txt     |   1 +
 ...ld_icons.sh => build_application_icons.sh} |   2 +-
 icons/build_game_icons.sh                     |  74 +++++++
 icons/button_back.svg                         |   2 +
 icons/button_start.svg                        |   2 +
 icons/difficulty_easy.svg                     |   2 +
 icons/difficulty_hard.svg                     |   2 +
 icons/difficulty_medium.svg                   |   2 +
 icons/difficulty_nightmare.svg                |   2 +
 icons/game_fail.svg                           |   2 +
 icons/game_win.svg                            |   2 +
 icons/size_10x10.svg                          |   3 +
 icons/size_15x15.svg                          |   3 +
 icons/size_20x20.svg                          |   3 +
 icons/skins/default/0.svg                     |   2 +
 icons/skins/default/1.svg                     |   3 +
 icons/skins/default/2.svg                     |   2 +
 icons/skins/default/3.svg                     |   2 +
 icons/skins/default/4.svg                     |   2 +
 icons/skins/default/5.svg                     |   2 +
 icons/skins/default/6.svg                     |   2 +
 icons/skins/default/7.svg                     |   2 +
 icons/skins/default/8.svg                     |   2 +
 icons/skins/default/mine.svg                  |   2 +
 icons/skins/default/unknown.svg               |   2 +
 icons/skins/empty.svg                         |   2 +
 lib/entities/cell.dart                        |  53 +++++
 lib/layout/board.dart                         |  44 ++++
 lib/layout/game.dart                          |  66 ++++++
 lib/layout/parameters.dart                    | 119 +++++++++++
 lib/main.dart                                 |   7 +-
 lib/provider/data.dart                        | 101 +++++++++
 lib/screens/home.dart                         |  74 ++++---
 lib/utils/board_utils.dart                    | 195 ++++++++++++++++++
 lib/utils/game_utils.dart                     |  22 ++
 pubspec.lock                                  |   6 +-
 pubspec.yaml                                  |   2 +
 73 files changed, 785 insertions(+), 46 deletions(-)
 create mode 100644 assets/icons/button_back.png
 create mode 100644 assets/icons/button_start.png
 create mode 100644 assets/icons/difficulty_easy.png
 create mode 100644 assets/icons/difficulty_hard.png
 create mode 100644 assets/icons/difficulty_medium.png
 create mode 100644 assets/icons/difficulty_nightmare.png
 create mode 100644 assets/icons/game_fail.png
 create mode 100644 assets/icons/game_win.png
 create mode 100644 assets/icons/size_10x10.png
 create mode 100644 assets/icons/size_15x15.png
 create mode 100644 assets/icons/size_20x20.png
 create mode 100644 assets/skins/default_0.png
 create mode 100644 assets/skins/default_1.png
 create mode 100644 assets/skins/default_2.png
 create mode 100644 assets/skins/default_3.png
 create mode 100644 assets/skins/default_4.png
 create mode 100644 assets/skins/default_5.png
 create mode 100644 assets/skins/default_6.png
 create mode 100644 assets/skins/default_7.png
 create mode 100644 assets/skins/default_8.png
 create mode 100644 assets/skins/default_mine.png
 create mode 100644 assets/skins/default_unknown.png
 create mode 100644 assets/skins/empty.png
 create mode 100644 fastlane/metadata/android/en-US/changelogs/1.txt
 create mode 100644 fastlane/metadata/android/en-US/changelogs/2.txt
 create mode 100644 fastlane/metadata/android/en-US/changelogs/3.txt
 create mode 100644 fastlane/metadata/android/en-US/full_description.txt
 create mode 100644 fastlane/metadata/android/en-US/images/icon.png
 create mode 100644 fastlane/metadata/android/en-US/short_description.txt
 create mode 100644 fastlane/metadata/android/en-US/title.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/1.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/2.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/3.txt
 create mode 100644 fastlane/metadata/android/fr-FR/full_description.txt
 create mode 100644 fastlane/metadata/android/fr-FR/short_description.txt
 create mode 100644 fastlane/metadata/android/fr-FR/title.txt
 rename icons/{build_icons.sh => build_application_icons.sh} (92%)
 create mode 100755 icons/build_game_icons.sh
 create mode 100644 icons/button_back.svg
 create mode 100644 icons/button_start.svg
 create mode 100644 icons/difficulty_easy.svg
 create mode 100644 icons/difficulty_hard.svg
 create mode 100644 icons/difficulty_medium.svg
 create mode 100644 icons/difficulty_nightmare.svg
 create mode 100644 icons/game_fail.svg
 create mode 100644 icons/game_win.svg
 create mode 100644 icons/size_10x10.svg
 create mode 100644 icons/size_15x15.svg
 create mode 100644 icons/size_20x20.svg
 create mode 100644 icons/skins/default/0.svg
 create mode 100644 icons/skins/default/1.svg
 create mode 100644 icons/skins/default/2.svg
 create mode 100644 icons/skins/default/3.svg
 create mode 100644 icons/skins/default/4.svg
 create mode 100644 icons/skins/default/5.svg
 create mode 100644 icons/skins/default/6.svg
 create mode 100644 icons/skins/default/7.svg
 create mode 100644 icons/skins/default/8.svg
 create mode 100644 icons/skins/default/mine.svg
 create mode 100644 icons/skins/default/unknown.svg
 create mode 100644 icons/skins/empty.svg
 create mode 100644 lib/entities/cell.dart
 create mode 100644 lib/layout/board.dart
 create mode 100644 lib/layout/game.dart
 create mode 100644 lib/layout/parameters.dart
 create mode 100644 lib/utils/board_utils.dart
 create mode 100644 lib/utils/game_utils.dart

diff --git a/android/gradle.properties b/android/gradle.properties
index 818e87b..db7a1ee 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.2
-app.versionCode=2
+app.versionName=0.0.3
+app.versionCode=3
diff --git a/assets/icons/button_back.png b/assets/icons/button_back.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a802ff2d2bc0c90488a1c319288be9f28cdea5e
GIT binary patch
literal 3744
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Bd2>3_*8t*cliYI14-?iy0W?oEaG8oERJS
zYjH3zFi4iTMwA5Sr<If^7Ns(jmzV2h=4BTrCl;jY<rk&TerF@az`&>L>EaktaqI2e
z%94<)vd5Qy-BSNGMa@`P#9uqiVZ&Sb*bUp}WqmK&k|iW!FvXSQIL8UG19N@1tleUp
zv6(@UyQPIiTufO}p^fdNlbOP5mKi?NW~QidrWj2=c}C^Q_4456l}%5c?wwhA`un`k
zAN@bX?3-`?-unBwy;8hvY;6_I9sAA}%HN!8TwA(L_1>&)U+*Pdp3U%~?KIzMfzv|M
zSFY5F4&wQf%d8u&y!UAD%y<0fM86*qov|xvlgu{zBZ0rStWBA_t98v}bLIo`de%D5
zI^MD8Q!OL5Ro!2&lNPCb`f9<ny$@LLzx}sv`x3*eQ|p#3d;D?ky=&HS3$JaM&hWuL
z=9<-^$u{fGY?8`fX*pH+;W-DpkH-ty(!T%sThaaWxAez;#-^^P^Lnp*zV=b<UE-Xh
zsh3}ze^9@8|E*tL#m`@QbJ$H-#BnaRReW#gwdsEZ{{_5Ttakm|@d|S_X%ETUUs(E=
zKS;8h9y!<I;r42^?@vQQjSm|fbl{6n&s(%ld247&xsQ-YU3~FzlW@08=hqb?F$%^z
z&R7|HOV{|y+Dkv4eBbco-u<7PUhkN0IMZQX!OhaQy15Fo)0OU**XjP|I5=7U#6Fq(
zKecxDUzzvVNY*HeagS<m``YjO`Z!rmy<nMaK6&|(FBexFx*wn2yVZ7^?EP;Hu8Gf$
z-mcD$uROipdTyqwxIv;rr^V&-HQ%<z_g8t(F5BGC?IRZOWVOKesQ230emieozJKBK
zIZt6VE{&P<elT6;-R|>4EBaADP2(eb)@3=0{;8Mu?^kljFLPy8<5<D?{b2Fboc!D3
z_y63emU}g4{<}j@7)&qhG&p?o{?mU?JFd@vCOeH&+Q8C5wmZ3et-8N!@t;!0JMv+3
zj~rnL-OKhg<axaKfvHg;{ho|jho(lwnE(0u{O#TKPq!ooHOwl=Ik%OsR`%52=Z)tg
zHSK)30zw7n&3*QCQ~mz50~dd<sI6jBV_lJ*e?htP%KHM}>pUi<=eF8z;hoHM<?Cfn
zz0W$orS7{{m;7%2e`pCq=s~0NoA?<SSQ;1@m=b~*SQr?X7#J8C8W<QH7#I{77z7v?
zI2e$G9m-5v_cAalG+0^WM>wi~xws`>-1VfQu|}Y@U!kIZfRl&C+e_yb_}tC;<+6Xq
ztKN+Q3>r^3^J^yhNhf9Wmpu!(;qJYw?Aina0frOPwDb;W-dbM4TCeg^rt+8T6(+`p
zIT;+$&h1Xmdo6#&KeN3nbJUB0QKV(2_Lk#L;z3PjPFp_ke=f{0VPUw`VmsIWWwJ)6
z_NFBE`Wdo{6H|g7n7au$Je%@z`o%oP_djbaPSx&mU{K)9>e0@e|L$c2OZ}7O4#hXR
z1sGU1K9EX&xgamkq1k>?)?qIWhNh5$uibxw3VsIUL@+TrEZ}~(c}uXg<dp~fhsCZc
zFmP~8ZF{;U+B`TQ;rpKqL(yEX<;NaBy>d52+23FP>#f}@7cZNr^_cJC?)}l+j0z1`
zxZY`<y5!2qRrl#gWy!;4|ChH8m`bVqiaK@Q&f()iK>-FPmg(Jz*&6QK6Ee6DMKsS}
z(7$Bz>h1itPxD3pOf-?xUcTeJ`Ef@EfdHw)*9uvuuYJ(QUG=Koq?)_5_SzxsAIc|Z
zZe?Xsn9!)ZLnpwKiTmBZ_VD1(D_0q^*GqU8%Ca~ZFgvfT(_G3KbMWrp=8RS6?L4oq
z<K^PBPhL>p@Tl~m0K*UdZ4*>VSj&(9hz$9(UFXxzy^C1tRc`0c=VWZC=X$sB!q29r
z^IUoVx>$;CuIrMk;b36=6ISrKEv$f5?9K}Fm8%zC%|F=AAmA{I_51aWS3YHKz2D5w
zsL)UmJ%#st@Tvn%v&~8sLzh483@cz~S7czBa8NAuBKNxo91099AMWQDu!_YrpI|Nj
zz~;cfp-^>@S9G82&kMq@S1!KxX8!|c295{wo2;F!Sj!7UKngmWs_!dZ<a)RDU|^d(
zlLLdJ_73OhDMvMT{H?ur!1gQ1e6NE~ce_Sz0qHgP)+DXB<3ZUqQ&#gI0t`$V`yMzk
za47g4tPPsSD$eA<pvW5jf-CRR_eCpeZvQ^0y+eS3X~iy(8iS}CitCd^V!lb=Sv`I2
zC4M`W1_ovBbr+nMefyuryLH~WiT)oH8CWcmBec8@u04P1`5~2qO`sUxU)Mal<hsmD
z@fZ#UMz>Eh4X5#O*tq_zI{5a*wDJ#%4OJ`wxd&SrUWqlt-U(PxU-m+XUGZT3_w6wU
zb=QQ3eNb%J#G1fr?%LzL>`6?4V#6<%6;20R8L~teSjCxE1Th41uUqMBd$671lUT#r
z2hZB|mc3OJ)Yu{55X%%}v~DTSTb+|4F_CQYOecaFzOB|#bnkdS>qF(iuRpH*zS7R{
zNu*)#w>_(8H#c!JUeP?j`S+1w>;D%`Yp>+yxqnb>s9`mby#6u%;?=g`v-2Kv*s)C5
z&*1Jn|KZ;!`jyJUAWOv?_Wu5CJ5e$D)}@8N*9z2eC{#19;?b_K|0~TWs`Nv^L6T|C
z1^3T(c?CYdE7(FgSSIXakpE<}^x=mdUk*E#fIfzr{lCx0%k@8SW_Zdm;cRe2Q>iB?
zV%!^?cUA6TIZ>Uq`cM4|CPsw=20Lx8Gu#MYpm9LJ!H{W+#I#TUq`sU|<=)5C%5X}c
zA-B2XxhBKyA8oD%91CWw6^PuWQMcRv>%<i6ddX--g$5&*6(%~*|1X{{uP64rFP4LW
zaf!n=v##wdFYWsjy#sa2TAUbuatGx1$bMD~@3Ohd%e3OX`oyVi&nv}~BI9Bh85Itk
zwOHCOxtV3sj@h83V(7JTN?!W$jT!<98twPHigtI4tk-X45Ky?V{IKUMrfd!d#)|tN
zGI~Vcwz&sh<L6*<Xi&KOaklD*mKP5fy(!k-qv6c(G;V_8Dc$$M;##{koEcK%Cz{mo
zYTXZ3-4`@PK5p%qMLdjG3O(hlgTK_fS~?X3zFT3a?asonU|n{Q^r34U`lo)K?=Jc+
z`m>vX@k(W2S#RKvP%rCu0S<v}46pWT{_9?(ljCYxx<i9MX7YRv0f)Oxf9eCpwk?|T
z^T6jT6>DPRgd9NGY0(`GenABWmLEpqI~UDa9IcRXJadoU9J{`oYJV5;fc)M4N$cKz
z*L{J3dUrOo+xTraacy7_NHB?BU;a8xYqN$k1IK~o8t;X6ESmH4b85;d?a6&C0t`$a
z4$6FEn#<9<%tdfp-0juA2gMng92z!?KHa)VG&Mb1pxcP0fuU)8Tz2bPjm-_LYeD8H
zgazJH-lE}OsrJEDlF5N#WBp>CEgI=}_D_-Go5$A!GS*|4M)=R2AjJ>#^(2o*2HIKu
z*DW%+{YROJrGcT&{?f$_v%cG=o9mvk-TSDEfl<N1p?g!=GzGyRHT?yz?jAp)eF{{{
z?$W5ws_^^KWpul$c8?5`1H(_Tr;~pj-J-1GWCga`QvB&VHEEUxhEGeb?dbZ(eW&Vd
zQ`DbdaUa8`Sl-~g^=69=2Ln^sl*_GRPdz`c)OxDH`-PuF>_AXZ{ptPuObniRd(*T}
zEnB>_iN#{}4@DLSjb`V`9<DzhB(I<N_Kxbkhu<x#+V!Mb7&wwAbZ@eVUjKRe@yXk_
z=Z8FeZ?--7TC=wM*K}tFff=Hy$vUzZ&WhgQzmXVsw>Q_Er|y2J`qej<e!JiOJH6t+
z4+ld^_>^}4eReV%C-%AipWJumr}p0Oze~6OImXV!@KPjo?+4LTLk(k{W(I{Du9ij_
zOfk=_xL6n*pKjuCt@Ke(%~o!+>s4R~ICCxAE+u=hh<UpJgKOm#k(bjQ7!>X<ia8<r
z^ohWKk<>E5#BQeNyi6J!H0qTOb$$AuyZM1#><zzbVH^x8TNlafawzz5vsLL0OYYKh
z!Ylz6Z^Gv6y>&C0%RahuUrx;O7e5;rv>xtBWR>Ncd%UzoJ^$m8`bnRh#QEknEpMxA
zWYAi2P{LdEj=Hm9_^khn>&r5x?!2?1=M~TD5OZ+>h80pA3<?Y^3<3;H3>*xMNDU8$
z6%GxJ%g*iG*1jz<s9{yY%=DYrc`T~rxBB}ZSi%sRSg$hi*Y4Q*O9B^}=WY((J40lF
zn$>*2&qX))&*wB)SAEz$7bGMzyLfHPH(n{TIhw9tK>~AD9xa{q@Z$8~xuC|@BK_sh
zCckE?(3({ip_X&t2t#PX&T8hLTG5ZzabL)P|1<P@(_TLxz5rLoxG4|6l<urwC}~->
zSzF7%(t&pe|D5#~YASzd&Azws-ft^44h^Z-Q*@8){j~qDC}W4meQ^7cQ{&g|`A34M
z?_48oYA&^J)3cBoE(TZozo*ZfoHd*GT#rC_6z4UT2BZ6bzfZkhEO|Y1U*3;bx5979
z-@n<-$?UaA+2-Wa)!THg_oP*vpTYkqltbg$)$~tkpG0OCn=F=n6MCX{$+tOA&xIQ{
zI^64yi)pjnxix*KPrdu$^a)>Iv6Pp&*1mqLpRCkqBl+EEr;(TRiEFj}X*!3~-~Cvb
z9e=a++Q;<?MvZUg{aLr>6SrOWUv(+P<~MzwweDG~*Gx7`Olr)z_w(*f)91(kJlXH4
zexcG!s`zcc$}Yo$4wv?SsVdohJUHW2vTd01w-@U(s}IhMDY<ARIG@cS$-nj;@6nl2
zcP_-|My~$&JmK_-dy|gU_N|pSkA8Qv<0Sh*Uc2uGWq%&KZ2sP3*_`|QB1=|5{mqK=
zlEs^}7q7V`H}i>OARA-z>8RtuCu`TO*_0I@S!^`@sI|#KsXOs?w;f(jJ-$cv+1|bK
zb97&IY8#a5o_v?4?z_eRw%4`a_awAbVV$W<Q<wf;|LutQj63h=>!w6XXB7XLdHSBY
zX^`}t|5vtKEaSN`$GGO}Hi>-S+g14+U-~js98PUd?MUrBePypsv=k2y&&Ol+j14kb
W=VyFZ=wo1DVDNPHb6Mw<&;$UP5TdvM

literal 0
HcmV?d00001

diff --git a/assets/icons/button_start.png b/assets/icons/button_start.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a3b74a3b98f45de590a7f290b810daba7120912
GIT binary patch
literal 3969
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Bd2>3_*8t*cliYI14-?iy0W?oEaG8oERJS
zYjH3zFi4iTMwA5Sr<If^7Ns(jmzV2h=4BTrCl;jY<rk&TerF@az`)Pv>EaktaqI2e
z@{*8Hx#Q{AH~+paH=U15Z%xw;2S<U(Kmie@NAI*2y|ZNDa9QQ$;J_j{MX70%mvI7z
zq9U&*=gSFdEQ=&K6lbbTHd?vFM{SAEso6qxzu!4ntWhwk)HhyV^WIYa@984F`{!r>
zu6-KU%f`&?yvNa{{#oUgYd)8|UfmXZk-av1OX#&;1`Dp!e5VCY3(a5Y9<gnS#E<G#
z(z)x?L!+4{f0=eg-pKOrv*2ZI-<73LJkGG)D;(v1xrwnrW}56Y#c4}*m;3VSM0Zvd
zYn`68apu3Ho1SlauwCHm<*>+_<WD=+JT+ANy!v1Gi>b^EC3ZU5+DX1KGV^WM9(;7V
zyI{ZZ`X76ZR_7@Gd#Rh6&vNx4Kg*6OD{I)8f9Rx1<{Ydst1e0V@PEPnq*&2uXGIl$
zICLqsq!<5eJ+^J?T)}_qqMCK93R9A~)ucUU9u4e`sak3}@qCVW;Gz2tCK^j`OtKUW
zuT>Df_k{b)%%Iat+4|VHxawW^rn=<VO*dy{6+gi<?WTp@?wYpw?`}+;zg>Obg*CH#
zPO=!arkb1epI)tAb>gDw|M>G$X6QdW#sB17He<NP)+<F5&wtrluG_Hfmejv8j%$A$
zBsa8Y%?!PEVmDWPV(#rr{EG{>vukvx)-3CObxZ93ySL{~#Q3#yGJC1G9e;Z7<F|}$
z2Ok};(=&*4=-hKu|Mh0xZMFMLzrL5NS{d5k$>jBH!?w`++u>>@ZnybF;un-e94lqJ
z{VkfML*HQjaTZ3?2{9@A4&2M#E%@(PSk=GJN0zDi@C7ixo-F0tt84PBjbZ0jv-j7T
zH~wLK_27QZwPK!WbIn;SVsktX9bqs%m~Qv6jX`i{44)e7icSyN>38dXZ~i{7_-yD5
zkp*fsm!h=ZY<K>-zb8uee#XHi45k~OEjf86y<VmIZRMu$5M?#i6<td&_Fg%1QN`C)
z*mu7Cy#`OlRZXe$QsaZe@@E^H^Dr@#9yB_?iJy^yrGbHgDIth~g@J*Ifq{{sfq}t+
zfkA<RL4bjQg8@mHE8)^VDHdj?70sO0+8H<6OkVwWH2M0;#w9kLC1CnX_7&3qzt1an
zdeQh@>BUFW^vo}2vO9lD3QBM+;5qhAYZ+tr;uWt;>Z>2TZ;P9^@XM23#a}l0i#9Pc
zJ~{oNSA6B_>I1Rt|F3`fz_Bbadb6M$hl2gQpGK2+?T~*_@FTzNZ&T0R$Q}VlhM6t(
z-PiVQ6IcH8c7y7b!`hSH#4;r|F-&S*d%L=VrBmwP?3ZSb72>A_XI`?q<JiO?^kn7N
z%(-I!X1}zwZh0^9^2xUSVh@`bE;ZhLR?^1s_RGxjBm15>9Z+acN%;O{uBL;v&mQqI
zF~tml1FimLKTCH`xIHgP<f-Fn;mkwxPIJhx6xf~5*Ds0u@qfL>d7cgSq4Rc}Z+PIy
z@RG}*$W<cOZkFTouWqZ>WG_4x#y$1AS+JL%Xl<oV^RYEndLAs_6mnmrKhL;Sw<n5`
zQAMrc`o54yYjR7bzUWg)4ZU#U>2a3Mg8O?8Yn&2ruwr`Cb@Jcc2lsu1)0gV^#Vy%4
zud&JH#r78#y+5}JB(^ZD6MiuDt07<O|Fj!MFPZ0WzEaz^f59S~f=Z@d_rNxWbpi?1
zQ??yu+Ok-8_2QM$k6P~<&JuL!Uu$_-{ApH;Fq4IU!w>K2tlSs;oYGn!EV^@9xuq?4
zM?=1VLPIf&#+p14Uxv1~uR^VU6&vz?w9;9laei;yl)nNY916;ew=&J5Grc3)JY07&
zG`2E)5?U~K)vvIqN3*?b)5`W}Y<@2x7bSLH{Am%3IMWI5hO(kluV1cRFT}F1O4gyj
zre;>0TVNZ5pXh^Er7i-Bk<p&X_MHOHJ2%Pib8KKZC*q(Yc<aah4U259yzV%#sD{N=
zl4*wn!^Aq?s554_#3p*y&z9ElXkiy?U992Epw6wZh{H|T{k7A%;PsJ*;_m+YJt?B<
z;%=UYZ47=Q4laTvqP!;A)tfe`pL)k=@?&vI)yd^TitP}&x^w0ij+|e_D)v-CB$eX<
z6QhgXDSth|uqoBma*G6K8wX5LY?#a{@bY>??cxuyF=k)IBc}Y`xabdWmk~?BG6tot
zfa<*(-{+MER0RIxbCqPW2xbs;J+XRE*p%J7x&x-{U*EzYaG;Z^L*tO;J`Mk0Hg0nk
zt+|vxMX_Nui@;6|`>kJAC<s=q+@j&k5YDZzb<rM!IrDz2$ul`HsB<YCTy*Duvxe06
z-7FCPA`VqkUz7XRtgezwCjuA@yNeuocXH~Sy89!3vbx=0&xx**OdgR8g03Aq1KbX~
zXq-B1zI5{K#wZR3#wY5HH?O(v>$H;Ep%ButXbwB0LW7O#j!P-~!lu}^h(F!9+e?9g
zWx{ffrEY><pLpu41Ltkn&c)=wP}wyhEF$^7T+oz7Z?an$1RVCcR{m&r>MnY*b<vw}
zZbpTMn(j{vS`T%9vi~=mol$|I>(h<cqXG;}CxTmy_GxTxcHXt~H@EgF?fNbAuk$b}
zG~{%DS}mQ_`nJke{m8%Pj35zLk29+lq}y|emu&a&@>b$lpvI^YG^KifwTDskHV1~S
zoC=FLO3$W6NzZY!O}E-N^Ln%QBLxPQfHsadm(SGAbL8_@XtiTtyrS3Oq2#h`s#VSM
zj=M^&3<3^@N)_+yo_<(=pyK^$0R|=w=cYfW*xKXQNbfV0WpZG6+VSAUL3#e#3MMe;
zgXaZ(zWLb<j0z1&E;nRnzkP6Que}2U#{wC~Z>le3s%?|XI9M7OPDQfiT1|R4fuUBs
z#gTzy!5pPGFAO&@?@3Z*U<o)TyFl%nS8ba0x4#F3=Pz?&;8@VZo_M=2-Rhs!5k6a%
z28MOZeG`71&YqolU{6B3`K_X_YS97=OdUnnKK}4uEVJ*|?q8Y)ECIV2l=g7W3Xby^
zzUEf?qNUp0UYVtV;S*1tud=%~^SQwOng3*exkYGMyE!n_2)z_Io2H%HePRjwJ>FLz
z(kC7^n{!-!qJTr(!|fmc3zdmn4$x0b7qj1H#VUW)nV~ZF>*P&ZFIuk(9x7}3z_D=R
zY~zi(Tr3m(Ka@^?{r31qu3N?>ZVa}cK4#9^v0h3#*^%L?_#NpT@zvMs_mo?1b8BIE
zrMcr<t)sZ?a>M&#r<CLc95|UeLJHa|WW_}O{C+04EPY$XMq4YE3E>B8;}Q<OeJH4N
z`|>lz1{qcX#UDGhG<FC$WHNO`6zo19P<ODE!9p$cOVeqy%~gr+f_<K?3|iVdK0gUB
zP;8jPDv+uD*>H6qx84r_wf@T6|8DI%&Biie5rdNGo$dSm1i}i^*)BYuKWAd;!B&PM
zA%~U+;W3%p<kMBW4&Du3_u_#w!%7Z?q=Royh&|mda%ZmVDh@lA2~7-2B6l84agzFT
zPtoz<d*k;VO5A!Z6IL+@Y3{I1*WUfWiD4zD!X@(^eR+1JuZ8b4U*}%uxb<K=s8~{B
z-Tu1d|7-sO{nd6q1P(|tbqLgKyFJT-)jX<{Rh(&uM}wJ2499{fMi;Fe=WBbKxEY_Q
zG<dL<-?~;I5(6qWT{!-wf>_p!E;>7EZJ9rUibrP#L+*EnyZJb4TqRk>!9~crUxwnR
zUd$9tJjC^GPJq-t&AE5}1QaMXY-SPgs0!5mTO2&+K=>5?OB1%PG&#AQ?O`j!CxHcL
zZn%8j8@yun?hQ@W8I??Xw`><$2$E<Jy`$e3SMuY`nrOa>(K61-<x>^b2rT%_av{{D
zL#(Fzt=7*Y&o3=#UD(uA|Nl?2N!4sV#a4#7`Ug6@pDt>#e^sN|E3)u`-CoVZPt(&K
z8ALfBY<%qQcyRv$^Gj2DnYiESgcZ~~9c*PdC%$0yZ^qx*9DQv2r|9n}-fykD=E0}`
zZyrqb{Br5L#twl4u1p3uoLA2O#8WO>lYKk%me4fC9S=6C??^5eRqhZt@RiA+>ho!V
zvKz+MpTCtIT)!%R>0b5XmoHO~x7Z$>Ti@bVKew5|i6N7-;Pa%8w=@2nyUzJ!=Wmg{
zJ5A@g>4}R~{XTf1qKTVvj@|*jy$>F6E&YAQL26T<{*K>)1&R%mXKr}D>2%ZibBAU3
z7|m3Bv)1W`Lc{A9mg+}dK9qkT>ixKEs#1!;fv+~ZUTwMDbidqjMv9*!yTAdy-N*0M
zh9xX#lV=rY@|blze0fRKLD^mJ(q}!%c3Gg%P*Qnw`K`LHg*#ZkyW1RWWiX23db@T>
z9rxi@@jFK^n&g>t>9I^u%&T*&O3GdJm+RdJwcz)1%N|N!ekp3t!p?MJPT}s;Z{~|{
z`u^_ykE%`X9JV{Yu=L)V)f+xVvB9YF;_e=|{L@PXXB)rSy|VX*QuDmOTI{D~P#R^(
zZMB9otSd4Wz5IMwks&}_=d;f5S!{i3)vl&VK@F=Sr0#n7%J^OpxVXYpefAkpEArYL
zlbJu?^rtX=`Sox5G%p{n0O8-4qO^XzDZjp<&}RB+P`gra=IvQ)GvzgpPICdtYpPCb
zk!E^wC1OuJ|C+-`7(zd=%`csMaogiIhTgR%&pxY6=A6uY<v?4?<dq9s=Uu&H^N9P*
zb3;o9UKR0~=d<f<i+Hc)-{(7M#GxTQ?PE;y)7jB13XAd<PLKLJLuElqUq&?d&o$pK
z+{t?)k+U!VVK{@vk5}_^H~h?~%l?pdM|$O9W5xwOk3OBXtU0zj<DE&@t6O6F{ideL
zhZ-hD2wuOj#60TW^*d)ztlK8*tjOk-7*!yf8XBo=Qf_@C2-F?;xRt?2Zi2ba;dF1E
zmo>}&FDgvAvNh=c<kn|%PX3$WqTsLg`N*^4%C9oED_)*hv0^)q{lxPxmpL#g9M=AS
zlF2W9#o|OM#l?+_8`HhcOuxtDrq1vw^7Ci!A3c2WKl3kh?n()bUOe4pW|YA}hez>M
zg_2XRMO;fZP3mvb&ec9tyrbri6vN7cMv@Z`KNY>QP4{xivxNSMn^);Nvg>b~;>X*>
zap3Dg{xcc6SHq(DHeIhYIVbg}{*B$*gO7w~A5X0lNq-bDrEzmYWOV7FD^-gcPN%Fl
z`w;nNapBbm{~v!3F}=MkV|6a0XVvGM@<!2Lqy0>;Zl0@V(|7H1z0>PAOIaA)6K^I;
zCPm(=+O_iChHatqV^S;+$G>IHnw7i$)6L(D-Ljhh&;KQSJ|VgLZSSOC+bVxWy_U+I
xTB^*@cWBdLqa&M+q`yj>rpwF5)>iSj-f4Z(v?HutP7DkT44$rjF6*2UngH3y1KI!p

literal 0
HcmV?d00001

diff --git a/assets/icons/difficulty_easy.png b/assets/icons/difficulty_easy.png
new file mode 100644
index 0000000000000000000000000000000000000000..66f1476dadfda62b03378a040f10737d9edbab1c
GIT binary patch
literal 2833
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
BeO>?n

literal 0
HcmV?d00001

diff --git a/assets/icons/difficulty_hard.png b/assets/icons/difficulty_hard.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c1aef8bb260d6e5241a0856c11cfae129c9d24e
GIT binary patch
literal 2649
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
O3=E#GelF{r5}E+GTm*pt

literal 0
HcmV?d00001

diff --git a/assets/icons/difficulty_medium.png b/assets/icons/difficulty_medium.png
new file mode 100644
index 0000000000000000000000000000000000000000..146d9b9ca714b9c82e9a5188e88e5cc8736b893e
GIT binary patch
literal 2857
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

literal 0
HcmV?d00001

diff --git a/assets/icons/difficulty_nightmare.png b/assets/icons/difficulty_nightmare.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cda5bce2f117d694c2940ba080121c4bc0c8b74
GIT binary patch
literal 1848
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
ZGro*pp8Wjpp&U?^=;`X`vd$@?2>_UuE|mZP

literal 0
HcmV?d00001

diff --git a/assets/icons/game_fail.png b/assets/icons/game_fail.png
new file mode 100644
index 0000000000000000000000000000000000000000..e93f8fa2815c0bac52c52a719f296671ac841e08
GIT binary patch
literal 7107
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
SIWjOXFnGH9xvX<aXaWG=Ycn+f

literal 0
HcmV?d00001

diff --git a/assets/icons/game_win.png b/assets/icons/game_win.png
new file mode 100644
index 0000000000000000000000000000000000000000..d73741df40e8cb97e2bf0eec929bba2e7859459a
GIT binary patch
literal 7906
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

literal 0
HcmV?d00001

diff --git a/assets/icons/size_10x10.png b/assets/icons/size_10x10.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cdbbb197a5dc4cab3a3e41259f8a3fa39cff9b8
GIT binary patch
literal 4747
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
DnH!vr

literal 0
HcmV?d00001

diff --git a/assets/icons/size_15x15.png b/assets/icons/size_15x15.png
new file mode 100644
index 0000000000000000000000000000000000000000..45b2f4b3c2d657cd840e5ace4ceac18a8e4386f3
GIT binary patch
literal 5415
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

literal 0
HcmV?d00001

diff --git a/assets/icons/size_20x20.png b/assets/icons/size_20x20.png
new file mode 100644
index 0000000000000000000000000000000000000000..29ec37fc99149d700b7d4627fd13e982347da8fb
GIT binary patch
literal 6558
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
Kb6Mw<&;$TP{z3Zy

literal 0
HcmV?d00001

diff --git a/assets/skins/default_0.png b/assets/skins/default_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..586de0573e7f77d97c16942f603b8ee6d9c7d7bc
GIT binary patch
literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE6jLZxS3>iZITo@P_I14-?iy0VXB0!k&?2PAU
z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zAU=HvJab;j&SYBm&
zi-CcGu_VYZn8D%MjWh-Z25C<h#}En0w+9Uw85kH2Dg0g@$IG9<z`(#zpd)mEfw7(a
Q;yVz})78&qol`;+06ZHlVE_OC

literal 0
HcmV?d00001

diff --git a/assets/skins/default_1.png b/assets/skins/default_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4b951d92fa7c2c3d7843ef06e725fab8fc34e48
GIT binary patch
literal 1202
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU
z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zAtP1c6ab*|<0~7)i
z_*j@27#M0xg8YIR7@1gD+1NR`xOsT_1q6k}#HD3q<rI}w)YLV#v~_g#jf_pqEUm0<
zZ0#MLT|B+Kef|7{L!#o6(=zibtEy`nn>+d^&YZho(UN5=R<2sNe)FDvhYlY-e&Xb*
zGiT3Tx_srv&3pGBJbe7*>GKyaU%h$z{=>&lpTB(l_WkFtKY#zRT8PUqFfbW-x;TbZ
z+<JQ<Jy<wVqV-|v!8Re0H8%vSkID(YW((}xdyK0?X@$Zzm+ybd_ZvK3p&;FU^!u4R
z-@hAwj`0@}6b!7GyDnw5{e|Dt`!u7^GqKK@Xuja(TFVD}_AutoKf@UQl=sHODrTv9
zC!{YZ=R5ok&v&Q^zt^z&6I;o(J&b3aH?bWtf5N*%A^*U}E7BYOZeGLq+AWngLw1ts
zf~PyzFt)mHVp~(AmF;kwJCfOK?-bL7|1E16muD5R>3FH6A9%&SiA_d+y77XYDwfQA
zd#4#M_&O_vC*#e$DaH>TG^Fsn*rO`RY&IoWl6hOqPqm*+Wp{m4qaA9V^gY{E$)fXK
zZb}WK?A~~lXorPAA}me$8`{>r4m~L<@ZQgDYWhzmt4V@SW7ajyJ!OxSR-W+`oR|La
z@JL+tfx}xT8Y}opDW@M;T^sm>M`OFoxdwCh<!Z|sR({{j)W-jRjs#QI$xSCD3#uRM
z3!5J}aq_-eTtnwP)rp1+qM|-NKf?ZD@1C?>o!kp<-M0ICg!zMEr0L}&j0R=v3_h#W
zI4s@qBY*M%#>q?9ZuV(nyQ6P*){0Zypr){Pn&*OskNcRpH~BiT?Ad>3tHEa#ivzp&
zS*_#e+wk+!ydCE}BO2;CklaiuvvSMYp!C0jf`Wgq*D+Y0Z0dU9_$?n~sHdx+%Q~lo
FCIE;3LaqP+

literal 0
HcmV?d00001

diff --git a/assets/skins/default_2.png b/assets/skins/default_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c47dee8a726f1e8e7f5193bfd5650f608e755124
GIT binary patch
literal 2663
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
PK~=t|tDnm{r-UW||J;3J

literal 0
HcmV?d00001

diff --git a/assets/skins/default_3.png b/assets/skins/default_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..7da3d63267168150d65b94e11187d833f63d5e6a
GIT binary patch
literal 3030
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

literal 0
HcmV?d00001

diff --git a/assets/skins/default_4.png b/assets/skins/default_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bfd5edb7930ebf522874d20a79596bc03b5fe49
GIT binary patch
literal 1620
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU
z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zA{1o65;>s`zMpy{!
zyuOTsfq`LZNswPK10xeN3o9Et2PYRd4==xfkg$lTxP+vXw4A(xqLQ+jx`w8fj-I}O
zk+F$|wXL0_le3GfyQi18kFQ@)NN89@WK>*2QgTXKdQNVBacNn3Wp#a1b8B0BcmKpm
zlc!FfIcxrcMN5_~U$JWSnzb7?ZrZ$k$FALb_8mBQ=<u-<Cr_O|bK&BptJiPdx_#&F
zgNKhEKY9M*<*V0k-+%b{>GPMb-@gC&`Rn(ezyJK#HRv%gFdKQgIEGZ*dVA-&zi@)c
z(TBIA)`SGI#Axhbe-PIZU7+tG`2AjW{?fd)%z=S{T-R>>uK#sa!sNX#%Q@e3KmCg4
zv&`D_WO`SD%<)3Mu#0neVtF6^J$ygw!z+gO=l8E)$2c+gmGp%r`xv*rk~Y|T+C1S)
zbt$h##hP`DfAv=8AF%t%8?ksF<L9~`Y(4*%tYd6Ff7MjsecLZKnV|a(YhOukFnBF(
z@OAYrHlFIm>llB2zhbIT<W$RCwj%$)raAczsqMSirfgf4?Ql@Jl(!=;;C_ScE9nhU
zwajUC-+48DuK*c%#Z=+_u3v02A@>{3zLMUc@LJm7<K|s#B1^BBCLD+@<?WCOzu)lo
zmGlOa=h6We7p`Mej=Ex+aKX8hw_{%T{f4`*qyv`kV>I4X!+fkJ;Ch3i|Kass<&PMX
zt{-}Ter?uKW*LJ&Q6?O636mfGn=EK^pvIZ4P+hN}fwPTADO9JRVWIw^_xaN51r7hq
z55GTuM$p3H$&82m6?-2rO7VO*=afr0dH%!i^R6EmF7Io-KVL?pfWh1IzERKvhG~=b
z)pi|V)KRT1+xUR7Owz8wj7#o7&?R{>n}(%J_6r?mj_~@W-ptCEp!xFtR4$nVL6^$I
zIOP)dKjhpK^noFpSKi?^3x9&<%YLx7`+biYb^K3+Yy=y5JK`X-gx9Y#IR}}qNZU1B
z;{=)fUIb*az4TF#$tg}CC;Z#4ZoqRO=+bt7F&l@)4>|vwU$6W^`9P5~+eXI^3{ziz
z`28JhdVJqQMjh3^^ZgT89KI}i$Z6yCfuU`ZU94&agR|%SXvGQ!Z_jxBiiRR*&w7^+
z4AUn43zGr4EnbXM?m)n$|4%vZYzL{FsR~x94I=MrR5VPw{_y+!&PSk7D26yFwDSSu
zv$p&HQztPntvWpaK=%>z2abC)AO4rMzWet4^#A1!`s-&gFmWg};3Hm?b#9W2s$kr<
z^!9vn7e-s-1N!ZXcyyE;xSH}JtL3pp-|MM=nOu9q4L<oixD6`dJYD@<);T3K0RUqx
B=cWJv

literal 0
HcmV?d00001

diff --git a/assets/skins/default_5.png b/assets/skins/default_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..38d695079a8377d20cb67e7e300a2a9b2c38da69
GIT binary patch
literal 2813
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
We(ep=tyl<Zh<LjCxvX<aXaWGxtL8!g

literal 0
HcmV?d00001

diff --git a/assets/skins/default_6.png b/assets/skins/default_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9074fa7dfbdcb7506cf0296c9385eb7bc410269
GIT binary patch
literal 3220
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
DM5=<#

literal 0
HcmV?d00001

diff --git a/assets/skins/default_7.png b/assets/skins/default_7.png
new file mode 100644
index 0000000000000000000000000000000000000000..8bf9bda2e28c5ef165e2a8e0ed3eaee7973be116
GIT binary patch
literal 1911
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$I14-?iy0VXB0!k&?2PAU
z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zA(hl$mab*|<qai?C
z2>e^czMO%9VMj@jUoZnB6Eh1d8#@OlHxDl#zo3w?sDzZXjI5lzf})a!rk1vjp1z@x
zv8kDbm9?#dqm#3%o4c2{kFS3~U~p(yL}YYqTtZTEN@`k0W>$7?UVcGgQE^FWS$Rce
zRc&2;Lt}GWdq-DyPhbCp$y29IpE-Bl`~?daEnc#8#mZHy*KgRkY4g@?+js2Rf8gMu
z!$*&wJag{+rOQ{YUb}wt*6llY@7;g!@X^y}&tJTJ_4>`*_a8rf{_^$vkDtGO|M~k*
zb3(N>0|N`Er;B5Vgyh?Uf2*%D%dkCoJ|`?a`|?EI*&!ykk}gitP~Ns@S(}b)hi2dP
z6<4w@f4X$qKwigt^9`Y8IhSvKtNmy5zd?TA`JL<5z5e;|j`=At_!pi%dt%s&CO4*C
z3nn(`WvDFRmg1x*m(N-J%f;EvdKr(Kb-V;hF3xq-Y*O15Fl#~U5@A&?E01jpLmZh;
zhD~|1cJcK?7NRG`X6#(;akSeY*xK)?wt;bdLl@JXJ^n}k@toNbT&Tir+#4)1=iEV`
zx|XJeHfK`omnW=|%Zpp~z)Shg8ZD!}JJ}zo)i*ZD7EFG*_<_P38~=j|qIXPUQ>&7<
z76cog`H~iuu)MwL?S{=Wo6Z{*Y<^;N`FEw@ofLn=y-CJz-YiP6esiaA>dU#O4*9;T
zUiLj*_RSvWgUuT@t0h*kC!{~*xGcS2uI%2@1m!ntW+hk6Kjin+-{<|Mq#KpZO=UMS
zb&U2JOYT@Hky2%>osh21dUr#x{mCzNYuo0=ahV-BS1U57W$qn=%d?|7t=9*A5PW0e
zW4L$a?8N2so9=EXwr5S|ewcQzU&Myl+CR7;k?~GQ{E`LCW#0k{)-mP1Qq!zpDf<@u
z!C5RX>`c%HgEunEAN;Y|vD0|r1I`;Smp@2Sy|czgqk^%_FTfy>+5BwCo5s2N8XEUF
z%zZ;-+UCk>&3gE3nk3i0#<@(QvmZR$by}oHw_&!PR$Tk+pZfz1t}~eT2Ypn1!xM0k
z&HS_w*S}K-eH*)K3xX{jj~4By?CHu+e9j{}w_vl$!i05vdAnBr;L0;v98z+?ms|95
z_k(A)T73t7kE&|jdXOe7`v2O2vx-{39xi*uCE9=ZESpwZe#7kkl@^@lH}9{!!De0_
zT%>*H&C*9YZ+L<?^5;zp+QgO@x9HJ)nLBfqEfUYm>I$*pHh-<TlQ)km<j=&$*@{|y
zhkRq5j*9KbT%KZiM`lry60`BlLM^`oXN|nd4xgPoWligB{}mpe3X11-DehRg^a;bA
zErFk8?ucka@|rh?s8r5aId5T-NZz}pOZfA4X;kv&RcT~4&ldE`YoA%;bTo%AElSgp
z-P~I9W%KOhDSJ50_Xk{JH0~Dmib{AUm-Q+kO<VP{<cyyaCMoXtIcw5mgULT<PhvWA
zCHOL@@#_^gIgG7WWH!xgzH;Tzner(jn?FpNxg<p-EpJg8Lt0pHF-zLKMbC0)-1I)H
zH{<2vG~+XKmZsV6Nm;%!vu(Pni0OgTQC+JZEM4gPSpb}2PpxbH&(L$cTZ_p%S{76U
Ndb;|#taD0e0s!ozYZCwf

literal 0
HcmV?d00001

diff --git a/assets/skins/default_8.png b/assets/skins/default_8.png
new file mode 100644
index 0000000000000000000000000000000000000000..8733181012a39f2acc822446787d29bc79c113ec
GIT binary patch
literal 3206
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

literal 0
HcmV?d00001

diff --git a/assets/skins/default_mine.png b/assets/skins/default_mine.png
new file mode 100644
index 0000000000000000000000000000000000000000..71f1ea3c0204c33522ed29671136ea61d074e4b6
GIT binary patch
literal 6226
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
E0Jfj~Q~&?~

literal 0
HcmV?d00001

diff --git a/assets/skins/default_unknown.png b/assets/skins/default_unknown.png
new file mode 100644
index 0000000000000000000000000000000000000000..be034071b95e7be9a24632a1ff4c7a68ad25b0c7
GIT binary patch
literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE6jLZxS3>iZITo@P_I14-?iy0VXB0!k&?2PAU
z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zAU=HvJaZOK87w&lZ
zgn@y9u_VYZ*z4N+f)@-74AP!1jv*3~Zx0$WGB7Y4Quw_*j+Z}yfq{XcKu72R17kb;
Q#djc{r>mdKI;Vst0Mi98$p8QV

literal 0
HcmV?d00001

diff --git a/assets/skins/empty.png b/assets/skins/empty.png
new file mode 100644
index 0000000000000000000000000000000000000000..586de0573e7f77d97c16942f603b8ee6d9c7d7bc
GIT binary patch
literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE6jLZxS3>iZITo@P_I14-?iy0VXB0!k&?2PAU
z7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kz!zAU=HvJab;j&SYBm&
zi-CcGu_VYZn8D%MjWh-Z25C<h#}En0w+9Uw85kH2Dg0g@$IG9<z`(#zpd)mEfw7(a
Q;yVz})78&qol`;+06ZHlVE_OC

literal 0
HcmV?d00001

diff --git a/fastlane/metadata/android/en-US/changelogs/1.txt b/fastlane/metadata/android/en-US/changelogs/1.txt
new file mode 100644
index 0000000..777d1a0
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/1.txt
@@ -0,0 +1 @@
+Add initial empty app
diff --git a/fastlane/metadata/android/en-US/changelogs/2.txt b/fastlane/metadata/android/en-US/changelogs/2.txt
new file mode 100644
index 0000000..fe56ebf
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/2.txt
@@ -0,0 +1 @@
+Improve CI/CD, add jabber notification on create tag
diff --git a/fastlane/metadata/android/en-US/changelogs/3.txt b/fastlane/metadata/android/en-US/changelogs/3.txt
new file mode 100644
index 0000000..c4767c3
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/3.txt
@@ -0,0 +1 @@
+Add minimal playable game.
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
new file mode 100644
index 0000000..fe3f142
--- /dev/null
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -0,0 +1 @@
+Simple Minehunter Game
diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8cff21a3902028c01974a4f3062e10c15544ee9
GIT binary patch
literal 18343
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
Iol`;+03Cc}TL1t6

literal 0
HcmV?d00001

diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt
new file mode 100644
index 0000000..fe3f142
--- /dev/null
+++ b/fastlane/metadata/android/en-US/short_description.txt
@@ -0,0 +1 @@
+Simple Minehunter Game
diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt
new file mode 100644
index 0000000..fe3f142
--- /dev/null
+++ b/fastlane/metadata/android/en-US/title.txt
@@ -0,0 +1 @@
+Simple Minehunter Game
diff --git a/fastlane/metadata/android/fr-FR/changelogs/1.txt b/fastlane/metadata/android/fr-FR/changelogs/1.txt
new file mode 100644
index 0000000..9246663
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/1.txt
@@ -0,0 +1 @@
+Création de l'application minimale, vide.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/2.txt b/fastlane/metadata/android/fr-FR/changelogs/2.txt
new file mode 100644
index 0000000..cdf380a
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/2.txt
@@ -0,0 +1 @@
+Amélioration de la chaîne CI/CD, envoi d'un message à la création de version
diff --git a/fastlane/metadata/android/fr-FR/changelogs/3.txt b/fastlane/metadata/android/fr-FR/changelogs/3.txt
new file mode 100644
index 0000000..75d5298
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/3.txt
@@ -0,0 +1 @@
+Ajout du jeu minimal, jouable.
diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt
new file mode 100644
index 0000000..170a1a6
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/full_description.txt
@@ -0,0 +1 @@
+Jeu du démineur simple
diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt
new file mode 100644
index 0000000..170a1a6
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/short_description.txt
@@ -0,0 +1 @@
+Jeu du démineur simple
diff --git a/fastlane/metadata/android/fr-FR/title.txt b/fastlane/metadata/android/fr-FR/title.txt
new file mode 100644
index 0000000..170a1a6
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/title.txt
@@ -0,0 +1 @@
+Jeu du démineur simple
diff --git a/icons/build_icons.sh b/icons/build_application_icons.sh
similarity index 92%
rename from icons/build_icons.sh
rename to icons/build_application_icons.sh
index fefc393..569a16a 100755
--- a/icons/build_icons.sh
+++ b/icons/build_application_icons.sh
@@ -4,7 +4,6 @@
 command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
 command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
 command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
-command -v convert >/dev/null 2>&1 || { echo >&2 "I require convert (imagemagick) but it's not installed. Aborting."; exit 1; }
 
 CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
 BASE_DIR="$(dirname "${CURRENT_DIR}")"
@@ -46,3 +45,4 @@ build_icon  48 ${BASE_DIR}/android/app/src/main/res/mipmap-mdpi/ic_launcher
 build_icon  96 ${BASE_DIR}/android/app/src/main/res/mipmap-xhdpi/ic_launcher
 build_icon 144 ${BASE_DIR}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher
 build_icon 192 ${BASE_DIR}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher
+build_icon 512 ${BASE_DIR}/fastlane/metadata/android/en-US/images/icon
diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh
new file mode 100755
index 0000000..aae2bcb
--- /dev/null
+++ b/icons/build_game_icons.sh
@@ -0,0 +1,74 @@
+#! /bin/bash
+
+# Check dependencies
+command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
+command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
+command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
+
+CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
+BASE_DIR="$(dirname "${CURRENT_DIR}")"
+
+OPTIPNG_OPTIONS="-preserve -quiet -o7"
+
+# optimize svg
+function optimize_svg() {
+  SOURCE="$1"
+
+  cp ${SOURCE} ${SOURCE}.tmp
+  scour \
+      --remove-descriptive-elements \
+      --enable-id-stripping \
+      --enable-viewboxing \
+      --enable-comment-stripping \
+      --nindent=4 \
+      -i ${SOURCE}.tmp \
+      -o ${SOURCE}
+  rm ${SOURCE}.tmp
+}
+
+# build icons
+function build_icon() {
+  ICON_SIZE=192
+  SOURCE="$1"
+  TARGET="$2"
+
+  optimize_svg "${SOURCE}"
+
+  inkscape \
+      --export-width=${ICON_SIZE} \
+      --export-height=${ICON_SIZE} \
+      --export-filename=${TARGET} \
+      ${SOURCE}
+
+  optipng ${OPTIPNG_OPTIONS} ${TARGET}
+}
+
+function build_icon_for_skin() {
+  SKIN_CODE="$1"
+
+  build_icon ${CURRENT_DIR}/skins/${SKIN_CODE}/mine.svg ${BASE_DIR}/assets/skins/${SKIN_CODE}_mine.png
+  build_icon ${CURRENT_DIR}/skins/${SKIN_CODE}/unknown.svg ${BASE_DIR}/assets/skins/${SKIN_CODE}_unknown.png
+  for VALUE in {0..8};
+  do
+    if [ -f "${CURRENT_DIR}/skins/${SKIN_CODE}/${VALUE}.svg" ]; then
+      build_icon ${CURRENT_DIR}/skins/${SKIN_CODE}/${VALUE}.svg ${BASE_DIR}/assets/skins/${SKIN_CODE}_${VALUE}.png
+    fi
+  done
+}
+
+# Game icons
+build_icon ${CURRENT_DIR}/button_back.svg ${BASE_DIR}/assets/icons/button_back.png
+build_icon ${CURRENT_DIR}/button_start.svg ${BASE_DIR}/assets/icons/button_start.png
+build_icon ${CURRENT_DIR}/difficulty_easy.svg ${BASE_DIR}/assets/icons/difficulty_easy.png
+build_icon ${CURRENT_DIR}/difficulty_medium.svg ${BASE_DIR}/assets/icons/difficulty_medium.png
+build_icon ${CURRENT_DIR}/difficulty_hard.svg ${BASE_DIR}/assets/icons/difficulty_hard.png
+build_icon ${CURRENT_DIR}/difficulty_nightmare.svg ${BASE_DIR}/assets/icons/difficulty_nightmare.png
+build_icon ${CURRENT_DIR}/game_fail.svg ${BASE_DIR}/assets/icons/game_fail.png
+build_icon ${CURRENT_DIR}/game_win.svg ${BASE_DIR}/assets/icons/game_win.png
+build_icon ${CURRENT_DIR}/size_10x10.svg ${BASE_DIR}/assets/icons/size_10x10.png
+build_icon ${CURRENT_DIR}/size_15x15.svg ${BASE_DIR}/assets/icons/size_15x15.png
+build_icon ${CURRENT_DIR}/size_20x20.svg ${BASE_DIR}/assets/icons/size_20x20.png
+build_icon ${CURRENT_DIR}/skins/empty.svg ${BASE_DIR}/assets/skins/empty.png
+
+# Skins
+build_icon_for_skin "default"
diff --git a/icons/button_back.svg b/icons/button_back.svg
new file mode 100644
index 0000000..2622a57
--- /dev/null
+++ b/icons/button_back.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 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#e41578" stroke="#fff" stroke-width=".238"/><path d="m59.387 71.362c1.1248 1.1302 4.0012 1.1302 4.0012 0v-45.921c0-1.1316-2.8832-1.1316-4.0121 0l-37.693 20.918c-1.1289 1.1248-1.1479 2.9551-0.02171 4.084z" fill="#fefeff" stroke="#930e4e" stroke-linecap="round" stroke-linejoin="round" stroke-width="8.257"/><path d="m57.857 68.048c0.96243 0.96706 3.4236 0.96706 3.4236 0v-39.292c0-0.96825-2.467-0.96825-3.4329 0l-32.252 17.898c-0.96594 0.96243-0.9822 2.5285-0.01858 3.4945z" fill="#fefeff" stroke="#feffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4.314"/></svg>
diff --git a/icons/button_start.svg b/icons/button_start.svg
new file mode 100644
index 0000000..e9d49d2
--- /dev/null
+++ b/icons/button_start.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 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#49a1ee" stroke="#fff" stroke-width=".238"/><path d="m34.852 25.44c-1.1248-1.1302-4.0012-1.1302-4.0012 0v45.921c0 1.1316 2.8832 1.1316 4.0121 0l37.693-20.918c1.1289-1.1248 1.1479-2.9551 0.02171-4.084z" fill="#fefeff" stroke="#105ca1" stroke-linecap="round" stroke-linejoin="round" stroke-width="8.257"/><path d="m36.382 28.754c-0.96243-0.96706-3.4236-0.96706-3.4236 0v39.292c0 0.96825 2.467 0.96825 3.4329 0l32.252-17.898c0.96594-0.96243 0.9822-2.5285 0.01858-3.4945z" fill="#fefeff" stroke="#feffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4.314"/></svg>
diff --git a/icons/difficulty_easy.svg b/icons/difficulty_easy.svg
new file mode 100644
index 0000000..da0e21f
--- /dev/null
+++ b/icons/difficulty_easy.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="#41ff6a" stroke="#000" stroke-width="2"/><path d="m23.408 53.415 20.8 13.7c0.2 0.1 0.3 0.2 0.5 0.3 1.3 0.5 2.8-0.1 3.3-1.3 0.5-1.3-0.1-2.8-1.3-3.3l-23.2-9.6c-0.2 0-0.3 0.2-0.1 0.2zm23.7 11.6c0.1 0.8-0.5 1.4-1.3 1.5s-1.4-0.5-1.5-1.3 0.5-1.4 1.3-1.5c0.8 0 1.5 0.5 1.5 1.3z"/><path d="m41.708 36.515c0.1 0.4 0.6 0.7 1 0.7 0.9-0.1 1.9-0.1 2.8-0.1 1.5 0 2.9 0.1 4.3 0.3 0.6 0.1 1.2-0.4 1.2-1v-6.9c0-0.6-0.5-1-1-1-3.2 0.1-6.4 0.7-9.3 1.6-0.5 0.2-0.8 0.7-0.6 1.3z"/><path d="m52.508 37.815c2.1 0.5 4.2 1.3 6.2 2.2 0.5 0.3 1.2 0 1.4-0.6l2.7-8.2c0.2-0.5-0.1-1.1-0.6-1.3-3-0.9-6.1-1.5-9.3-1.6-0.6 0-1 0.4-1 1v7.5c-0.1 0.5 0.2 0.9 0.6 1z"/><path d="m81.508 46.115-8.4 6.1c-0.4 0.3-0.5 0.8-0.3 1.3 0.9 1.6 1.6 3.2 2.2 4.9 0.2 0.5 0.7 0.8 1.2 0.6l9.8-3.2c0.5-0.2 0.8-0.7 0.6-1.3-1-2.9-2.3-5.7-3.8-8.2-0.2-0.4-0.9-0.6-1.3-0.2z"/><path d="m32.908 40.015c2.3-1.1 4.7-2 7.2-2.5 0.6-0.1 1-0.7 0.8-1.3l-1.5-4.7c-0.2-0.5-0.8-0.8-1.3-0.6-2.9 1.2-5.7 2.7-8.2 4.6-0.4 0.3-0.5 0.9-0.2 1.4l2 2.8c0.2 0.4 0.8 0.5 1.2 0.3z"/><path d="m63.408 31.615-2.8 8.6c-0.1 0.4 0 0.9 0.4 1.1 1.7 1 3.4 2.2 4.9 3.6 0.4 0.4 1.1 0.3 1.5-0.1l5.7-7.9c0.3-0.4 0.2-1.1-0.2-1.4-2.5-1.9-5.3-3.4-8.2-4.6-0.5-0.2-1.1 0.1-1.3 0.7z"/><path d="m67.908 46.815c1.3 1.4 2.5 2.8 3.5 4.4 0.3 0.5 0.9 0.6 1.4 0.3l8.3-6c0.4-0.3 0.5-0.9 0.2-1.4-1.8-2.5-3.9-4.8-6.2-6.8-0.4-0.4-1.1-0.3-1.5 0.2l-5.9 8.1c-0.2 0.3-0.2 0.8 0.2 1.2z"/><path d="m24.408 46.315c1.8-2 3.9-3.7 6.2-5.1 0.5-0.3 0.6-1 0.3-1.4l-1.8-2.4c-0.3-0.5-1-0.6-1.5-0.2-2.3 2-4.4 4.3-6.2 6.8-0.3 0.4-0.2 1.1 0.2 1.4l1.4 1c0.5 0.3 1 0.3 1.4-0.1z"/><path d="m13.808 54.815 6 2c0.5 0.2 1-0.1 1.2-0.6 1.1-2.6 2.2-4.3 3.9-6.4 0.4-0.4 0.3-1.1-0.2-1.4l-5.9-4.2c-0.5-0.3-1.1-0.2-1.4 0.3-1.6 2.5-3.2 6.1-4.1 9-0.3 0.6 0 1.2 0.5 1.3z"/><path d="m75.808 60.915c0.4 1.7 0.7 3.5 0.9 5.3 0 0.5 0.5 0.9 1 0.9h10.2c0.6 0 1-0.5 1-1-0.1-3.1-0.5-6-1.3-8.9-0.1-0.6-0.7-0.9-1.3-0.7l-9.8 3.2c-0.6 0.2-0.9 0.7-0.7 1.2z"/><path d="m15.808 67.115c0.1-3.2 0.7-6.3 1.7-9.2 0.2-0.5-0.1-1.1-0.6-1.3l-0.4-0.1c-0.5-0.2-1.1 0.1-1.3 0.7-0.8 3.2-1.3 6.5-1.3 9.9z"/></svg>
diff --git a/icons/difficulty_hard.svg b/icons/difficulty_hard.svg
new file mode 100644
index 0000000..254346a
--- /dev/null
+++ b/icons/difficulty_hard.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="#d31158" stroke="#000" stroke-width="2"/><path d="m69.154 59.254-24.4 5.1c-0.2 0-0.4 0.1-0.5 0.1-1.3 0.6-1.9 2-1.4 3.3 0.6 1.3 2 1.9 3.3 1.4l23-9.7c0.2 0 0.1-0.2 0-0.2zm-25 8.7c-0.6-0.5-0.6-1.4-0.1-2s1.4-0.6 2-0.1 0.6 1.4 0.1 2c-0.5 0.5-1.4 0.6-2 0.1z"/><path d="m41.054 38.354c0.1 0.4 0.6 0.7 1 0.7 0.9-0.1 1.9-0.1 2.8-0.1 1.5 0 2.9 0.1 4.3 0.3 0.6 0.1 1.2-0.4 1.2-1v-6.9c0-0.6-0.5-1-1-1-3.2 0.1-6.4 0.7-9.3 1.6-0.5 0.2-0.8 0.7-0.6 1.3z"/><path d="m51.854 39.754c2.1 0.5 4.2 1.3 6.2 2.2 0.5 0.3 1.2 0 1.4-0.6l2.7-8.2c0.2-0.5-0.1-1.1-0.6-1.3-3-0.9-6.1-1.5-9.3-1.6-0.6 0-1 0.4-1 1v7.5c-0.2 0.5 0.1 0.9 0.6 1z"/><path d="m82.754 46.554-12.2 8.9c-0.4 0.3-0.5 0.8-0.3 1.3 0.9 1.6 1.2 2.6 1.8 4.3 0.2 0.5 0.7 0.8 1.2 0.6l14.4-4.7c0.5-0.2 0.8-0.7 0.6-1.3-1-2.9-2.6-6.4-4.1-8.9-0.3-0.5-1-0.6-1.4-0.2z"/><path d="m32.154 41.854c2.3-1.1 4.7-2 7.2-2.5 0.6-0.1 1-0.7 0.8-1.3l-1.5-4.7c-0.2-0.5-0.8-0.8-1.3-0.6-2.9 1.2-5.7 2.7-8.2 4.6-0.4 0.3-0.5 0.9-0.2 1.4l2 2.8c0.3 0.4 0.8 0.5 1.2 0.3z"/><path d="m62.754 33.454-2.8 8.6c-0.1 0.4 0 0.9 0.4 1.1 1.7 1 3.4 2.2 4.9 3.6 0.4 0.4 1.1 0.3 1.5-0.1l5.7-7.9c0.3-0.4 0.2-1.1-0.2-1.4-2.5-1.9-5.3-3.4-8.2-4.6-0.5-0.1-1.1 0.2-1.3 0.7z"/><path d="m67.154 48.654c1.3 1.4 2.5 2.8 3.5 4.4 0.3 0.5 0.9 0.6 1.4 0.3l8.3-6c0.4-0.3 0.5-0.9 0.2-1.4-1.8-2.5-3.9-4.8-6.2-6.8-0.4-0.4-1.1-0.3-1.5 0.2l-5.9 8.1c-0.2 0.3-0.1 0.9 0.2 1.2z"/><path d="m23.654 48.154c1.8-2 3.9-3.7 6.2-5.1 0.5-0.3 0.6-1 0.3-1.4l-1.7-2.4c-0.3-0.5-1-0.6-1.5-0.2-2.3 2-4.4 4.3-6.2 6.8-0.3 0.4-0.2 1.1 0.2 1.4l1.4 1c0.4 0.4 1 0.3 1.3-0.1z"/><path d="m15.954 57.654 0.5 0.2c0.5 0.2 1-0.1 1.2-0.6 1.1-2.6 2.5-5 4.2-7.1 0.4-0.4 0.3-1.1-0.2-1.4l-1.2-0.8c-0.3-0.4-1-0.2-1.3 0.3-1.6 2.5-2.9 5.3-3.8 8.2-0.2 0.5 0.1 1.1 0.6 1.2z"/><path d="m75.054 62.754c0.4 1.7 0.7 3.5 0.9 5.3 0 0.5 0.5 0.9 1 0.9h10.2c0.6 0 1-0.5 1-1-0.1-3.1-0.5-6-1.3-8.9-0.1-0.6-0.7-0.9-1.3-0.7l-9.8 3.2c-0.5 0.2-0.8 0.7-0.7 1.2z"/><path d="m15.054 68.954c0.1-3.2 0.7-6.3 1.7-9.2 0.2-0.5-0.1-1.1-0.6-1.3l-0.3-0.1c-0.5-0.2-1.1 0.1-1.3 0.7-0.8 3.2-1.3 6.5-1.3 9.9z"/></svg>
diff --git a/icons/difficulty_medium.svg b/icons/difficulty_medium.svg
new file mode 100644
index 0000000..a6a8c55
--- /dev/null
+++ b/icons/difficulty_medium.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="#eeb517" stroke="#000" stroke-width="2"/><path d="m53.928 43.009-11 21.7c-0.1 0.2-0.1 0.3-0.2 0.5-0.4 1.4 0.4 2.7 1.7 3.2 1.4 0.4 2.7-0.4 3.2-1.7l6.6-23.7c0-0.1-0.2-0.2-0.3 0zm-8.5 24.3c-0.8 0.1-1.5-0.4-1.6-1.1-0.1-0.8 0.4-1.5 1.1-1.6 0.8-0.1 1.5 0.4 1.6 1.1 0.1 0.8-0.4 1.5-1.1 1.6z"/><path d="m41.128 37.409c0.1 0.4 0.6 0.7 1 0.7 0.9-0.1 1.9-0.1 2.8-0.1 1.5 0 2.9 0.1 4.3 0.3 0.6 0.1 1.2-0.4 1.2-1v-6.9c0-0.6-0.5-1-1-1-3.2 0.1-6.4 0.7-9.3 1.6-0.5 0.2-0.8 0.7-0.6 1.3z"/><path d="m51.928 41.209c2.1 0.5 3.5 1 5.5 2 0.5 0.3 1.2 0 1.4-0.6l4.2-12.8c0.2-0.5-0.1-1.1-0.6-1.3-3-0.9-6.9-1.5-10.1-1.7-0.6 0-1 0.4-1 1v12.4c-0.1 0.5 0.2 0.9 0.6 1z"/><path d="m80.928 47.009-8.4 6.1c-0.4 0.3-0.5 0.8-0.3 1.3 0.9 1.6 1.6 3.2 2.2 4.9 0.2 0.5 0.7 0.8 1.2 0.6l9.8-3.2c0.5-0.2 0.8-0.7 0.6-1.3-1-2.9-2.3-5.7-3.8-8.2-0.2-0.4-0.9-0.5-1.3-0.2z"/><path d="m32.328 40.909c2.3-1.1 4.7-2 7.2-2.5 0.6-0.1 1-0.7 0.8-1.3l-1.5-4.7c-0.2-0.5-0.8-0.8-1.3-0.6-2.9 1.2-5.7 2.7-8.2 4.6-0.4 0.3-0.5 0.9-0.2 1.4l2 2.8c0.2 0.4 0.8 0.5 1.2 0.3z"/><path d="m62.828 32.509-2.8 8.6c-0.1 0.4 0 0.9 0.4 1.1 1.7 1 3.4 2.2 4.9 3.6 0.4 0.4 1.1 0.3 1.5-0.1l5.7-7.9c0.3-0.4 0.2-1.1-0.2-1.4-2.5-1.9-5.3-3.4-8.2-4.6-0.5-0.1-1.1 0.2-1.3 0.7z"/><path d="m67.328 47.709c1.3 1.4 2.5 2.8 3.5 4.4 0.3 0.5 0.9 0.6 1.4 0.3l8.3-6c0.4-0.3 0.5-0.9 0.2-1.4-1.8-2.5-3.9-4.8-6.2-6.8-0.4-0.4-1.1-0.3-1.5 0.2l-5.8 8.1c-0.3 0.3-0.3 0.9 0.1 1.2z"/><path d="m23.828 47.209c1.8-2 3.9-3.7 6.2-5.1 0.5-0.3 0.6-1 0.3-1.4l-1.8-2.4c-0.3-0.5-1-0.6-1.5-0.2-2.3 2-4.4 4.3-6.2 6.8-0.3 0.4-0.2 1.1 0.2 1.4l1.4 1c0.5 0.4 1 0.3 1.4-0.1z"/><path d="m16.128 56.709 0.5 0.2c0.5 0.2 1-0.1 1.2-0.6 1.1-2.6 2.5-5 4.2-7.1 0.4-0.4 0.3-1.1-0.2-1.4l-1.2-0.8c-0.5-0.3-1.1-0.2-1.4 0.3-1.6 2.5-2.9 5.3-3.8 8.2-0.1 0.5 0.2 1.1 0.7 1.2z"/><path d="m75.228 61.809c0.4 1.7 0.7 3.5 0.9 5.3 0 0.5 0.5 0.9 1 0.9h10.2c0.6 0 1-0.5 1-1-0.1-3.1-0.5-6-1.3-8.9-0.1-0.6-0.7-0.9-1.3-0.7l-9.8 3.2c-0.6 0.2-0.8 0.7-0.7 1.2z"/><path d="m15.228 68.009c0.1-3.2 0.7-6.3 1.7-9.2 0.2-0.5-0.1-1.1-0.6-1.3l-0.3-0.1c-0.5-0.2-1.1 0.1-1.3 0.7-0.8 3.2-1.3 6.5-1.3 9.9z"/></svg>
diff --git a/icons/difficulty_nightmare.svg b/icons/difficulty_nightmare.svg
new file mode 100644
index 0000000..6d18292
--- /dev/null
+++ b/icons/difficulty_nightmare.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="#727272" stroke="#000" stroke-width="2"/><path d="m70.135 63.932-24.924 0.42736c-0.19644-0.03756-0.41166 0.02311-0.50988 0.0043-1.3895 0.34521-2.2418 1.6076-1.9948 2.9784 0.34521 1.3895 1.6076 2.2418 2.9784 1.9948l24.412-5.2084c0.19644 0.03756 0.13578-0.17766 0.03756-0.19644zm-26.189 3.8507c-0.49544-0.60378-0.32643-1.4878 0.27734-1.9832 0.60378-0.49544 1.4878-0.32643 1.9832 0.27734 0.49544 0.60378 0.32643 1.4878-0.27734 1.9832-0.585 0.39721-1.4878 0.32643-1.9832-0.27734z"/><path d="m41.054 38.354c0.1 0.4 0.6 0.7 1 0.7 0.9-0.1 1.9-0.1 2.8-0.1 1.5 0 2.9 0.1 4.3 0.3 0.6 0.1 1.2-0.4 1.2-1v-6.9c0-0.6-0.5-1-1-1-3.2 0.1-6.4 0.7-9.3 1.6-0.5 0.2-0.8 0.7-0.6 1.3z"/><path d="m51.854 39.754c2.1 0.5 4.2 1.3 6.2 2.2 0.5 0.3 1.2 0 1.4-0.6l2.7-8.2c0.2-0.5-0.1-1.1-0.6-1.3-3-0.9-6.1-1.5-9.3-1.6-0.6 0-1 0.4-1 1v7.5c-0.2 0.5 0.1 0.9 0.6 1z"/><path d="m80.972 47.708-8.7626 6.3924c-0.2873 0.21547-0.35912 0.5746-0.21547 0.93372 0.64642 1.1492 0.86189 1.8674 1.2928 3.0884 0.14365 0.35912 0.50277 0.5746 0.86189 0.43094l10.343-3.3757c0.35912-0.14365 0.57459-0.50277 0.43095-0.93372-0.71824-2.0829-1.8674-4.5968-2.9448-6.3924-0.21547-0.35912-0.71824-0.43095-1.0055-0.14365z" stroke-width=".71824"/><path d="m32.154 41.854c2.3-1.1 4.7-2 7.2-2.5 0.6-0.1 1-0.7 0.8-1.3l-1.5-4.7c-0.2-0.5-0.8-0.8-1.3-0.6-2.9 1.2-5.7 2.7-8.2 4.6-0.4 0.3-0.5 0.9-0.2 1.4l2 2.8c0.3 0.4 0.8 0.5 1.2 0.3z"/><path d="m62.754 33.454-2.8 8.6c-0.1 0.4 0 0.9 0.4 1.1 1.7 1 3.4 2.2 4.9 3.6 0.4 0.4 1.1 0.3 1.5-0.1l5.7-7.9c0.3-0.4 0.2-1.1-0.2-1.4-2.5-1.9-5.3-3.4-8.2-4.6-0.5-0.1-1.1 0.2-1.3 0.7z"/><path d="m67.154 48.654c1.3 1.4 2.5 2.8 3.5 4.4 0.3 0.5 0.9 0.6 1.4 0.3l8.3-6c0.4-0.3 0.5-0.9 0.2-1.4-1.8-2.5-3.9-4.8-6.2-6.8-0.4-0.4-1.1-0.3-1.5 0.2l-5.9 8.1c-0.2 0.3-0.1 0.9 0.2 1.2z"/><path d="m23.654 48.154c1.8-2 3.9-3.7 6.2-5.1 0.5-0.3 0.6-1 0.3-1.4l-1.7-2.4c-0.3-0.5-1-0.6-1.5-0.2-2.3 2-4.4 4.3-6.2 6.8-0.3 0.4-0.2 1.1 0.2 1.4l1.4 1c0.4 0.4 1 0.3 1.3-0.1z"/><path d="m15.954 57.654 0.5 0.2c0.5 0.2 1-0.1 1.2-0.6 1.1-2.6 2.5-5 4.2-7.1 0.4-0.4 0.3-1.1-0.2-1.4l-1.2-0.8c-0.3-0.4-1-0.2-1.3 0.3-1.6 2.5-2.9 5.3-3.8 8.2-0.2 0.5 0.1 1.1 0.6 1.2z"/><path d="m73.314 60.926c0.51791 2.2011 0.90634 4.5317 1.1653 6.8623 0 0.64738 0.64738 1.1653 1.2948 1.1653h13.207c0.77686 0 1.2948-0.64738 1.2948-1.2948-0.12948-4.0138-0.64738-7.7686-1.6832-11.523-0.12948-0.77686-0.90634-1.1653-1.6832-0.90634l-12.689 4.1433c-0.64738 0.25895-1.0358 0.90634-0.90634 1.5537z" stroke-width="1.2948"/><path d="m15.054 68.954c0.1-3.2 0.7-6.3 1.7-9.2 0.2-0.5-0.1-1.1-0.6-1.3l-0.3-0.1c-0.5-0.2-1.1 0.1-1.3 0.7-0.8 3.2-1.3 6.5-1.3 9.9z"/></svg>
diff --git a/icons/game_fail.svg b/icons/game_fail.svg
new file mode 100644
index 0000000..1b9e313
--- /dev/null
+++ b/icons/game_fail.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 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.16545 0 0 .16545 4.4777 4.4833)"><g transform="translate(1,1)"><g fill="#f57c00"><polygon points="331.8 7.533 331.8 162.58 306.2 169.67 306.2 35.095"/><polygon points="281.28 144.07 281.28 236.06 255.68 243.14 255.68 171.63"/><polygon points="281.28 236.06 344.17 218.56 338.54 227.27 281.28 243.14"/><polygon points="485.4 127 391.53 272.07 472.09 305.6 468.33 314.73 365.93 272.07 454.17 135.7"/></g><g fill="#ff9801"><path d="m493.93 314.73-170.67 93.867v17.067h-136.53v-16.981c0.68-0.071 1.364-0.1 2.048-0.085h32.085v-25.6c0.014-4.707 3.826-8.52 8.533-8.533h34.816l86.955-47.189-60.928-25.344 48.299-74.667 5.632-8.704-62.891 17.493v-91.989h24.918v25.6l25.6-7.083v7.083l122.37-33.963-88.235 136.36 102.4 42.667 3.755-9.131z"/><path d="m306.2 35.095v108.97h-24.917l-25.6 27.563-23.296 25.002-17.237-9.045-71.083-37.205 7.168 17.152 50.859 122.2-45.909 3.498 55.979 41.983-35.328 20.139 44.715 19.115h7.851c-4.707 0.014-8.52 3.826-8.533 8.533v25.6h-32.085c-0.684-0.014-1.368 0.014-2.048 0.085v-0.085l-128-51.2 59.733-34.133-102.4-76.8 110.93-8.533-78.165-187.65-7.168-17.152 161.96 84.821 17.237 9.046z"/><polygon points="281.28 144.07 281.28 236.06 255.68 243.14 255.68 171.63"/><path d="m289.13 408.6h8.533v17.067h-127.91c0.939-8.961 8.021-16.042 16.981-16.981 0.68-0.071 1.364-0.1 2.048-0.085h32.085v-25.6c0.014-4.707 3.826-8.52 8.533-8.533h34.816l86.955-47.189-60.928-25.344 48.299-74.667 31.232-8.704-53.931 83.371 60.928 25.344-86.955 47.189h-9.215c4.707 0.014 8.52 3.826 8.533 8.533z"/><polygon points="281.28 236.06 344.17 218.56 338.54 227.27 281.28 243.14"/><polygon points="331.8 162.58 459.8 127 454.17 135.7 331.8 169.67"/></g><g fill="#ffb301"><polygon points="351.17 327.28 290.24 301.93 338.54 227.27 369.77 218.56 315.84 301.93 376.77 327.28 289.82 374.47 264.22 374.47"/><polygon points="281.28 144.07 281.28 236.06 255.68 243.14 255.68 171.63"/></g><polygon points="255.68 171.63 255.68 243.14 281.28 236.06 281.28 243.14 338.54 227.27 290.24 301.93 351.17 327.28 264.22 374.47 221.55 374.47 176.84 355.35 212.16 335.21 156.18 293.23 202.09 289.73 151.24 167.53 144.07 150.38 215.15 187.59 232.39 196.63" fill="#fdd834"/><polygon points="281.28 236.06 344.17 218.56 338.54 227.27 281.28 243.14" fill="#fec108"/><path d="m340.33 427.71v40.619h-170.67v-40.619c-0.014-0.684 0.014-1.368 0.085-2.048 0.939-8.961 8.021-16.042 16.981-16.981 0.68-0.071 1.364-0.1 2.048-0.085h132.44c0.684-0.014 1.368 0.014 2.048 0.085 9.726 1.03 17.097 9.249 17.067 19.029z" fill="#ffe0b2"/><path d="m289.13 383v25.6h-68.267v-25.6c0.014-4.707 3.826-8.52 8.533-8.533h51.2c4.708 0.014 8.521 3.826 8.534 8.533z" fill="#ecf0f1"/><path d="m16.067 451.27h477.87c4.713 0 8.533 3.821 8.533 8.533v34.133c0 4.713-3.821 8.533-8.533 8.533h-477.87c-4.713 0-8.533-3.821-8.533-8.533v-34.133c-1e-3 -4.712 3.82-8.533 8.533-8.533z" fill="#4e342e"/><path d="m16.067 451.27h452.27c4.713 0 8.533 3.821 8.533 8.533v34.133c0 4.713-3.821 8.533-8.533 8.533h-452.27c-4.713 0-8.533-3.821-8.533-8.533v-34.133c-1e-3 -4.712 3.82-8.533 8.533-8.533z" fill="#795548"/></g><path d="m494.93 443.73h-145.07v-15.05c-7e-3 -7.152-2.802-14.019-7.791-19.144l156.97-86.331c2.875-1.576 4.593-4.66 4.417-7.935-0.176-3.274-2.214-6.157-5.242-7.415l-92.967-38.733 88.317-136.49c1.921-2.977 1.805-6.831-0.294-9.686-2.098-2.855-5.742-4.117-9.156-3.172l-142.78 39.666v-150.91c-1e-3 -3.508-2.148-6.658-5.413-7.941s-6.982-0.437-9.371 2.132l-106.5 114.69-173.42-90.842c-3.184-1.669-7.073-1.163-9.724 1.266s-3.494 6.258-2.11 9.576l80.792 193.92-99.175 7.625c-3.541 0.275-6.542 2.714-7.533 6.124-0.992 3.41 0.233 7.078 3.075 9.209l92.008 69.008-48.458 27.692c-2.846 1.623-4.511 4.733-4.283 8.002 0.227 3.268 2.307 6.118 5.35 7.332l112.04 44.815c-4.151 4.906-6.441 11.117-6.47 17.544v15.05h-145.07c-9.421 0.011-17.055 7.645-17.067 17.065v34.133c0.012 9.421 7.646 17.054 17.067 17.067h477.87c9.421-0.012 17.054-7.646 17.067-17.067v-34.133c-0.013-9.42-7.647-17.054-17.068-17.066zm-371.23-112.06c2.496-1.425 4.106-4.01 4.284-6.878s-1.1-5.633-3.4-7.355l-84.267-63.208 88.342-6.792c2.729-0.212 5.19-1.719 6.619-4.053s1.651-5.212 0.598-7.738l-76.25-183 158.28 82.908c3.408 1.784 7.589 1.067 10.208-1.75l96.15-103.54v140.4c0 2.667 1.247 5.18 3.369 6.794s4.878 2.143 7.447 1.431l131.94-36.65-81.658 126.19c-1.372 2.124-1.732 4.747-0.982 7.162s2.532 4.373 4.866 5.346l86.042 35.85-153.22 84.275h-23.408v-17.067c-2e-3 -1.186-0.129-2.368-0.377-3.527l83.277-51.09c2.734-1.674 4.298-4.739 4.051-7.935-0.248-3.196-2.266-5.983-5.226-7.215l-51.442-21.433 48.35-74.733c1.921-2.977 1.805-6.831-0.294-9.686-2.098-2.855-5.742-4.117-9.156-3.172l-77.717 21.592v-87.883c-1e-3 -3.508-2.148-6.658-5.413-7.941s-6.982-0.437-9.371 2.132l-44.4 47.817-82.567-43.25c-3.184-1.669-7.073-1.163-9.723 1.266-2.651 2.429-3.494 6.258-2.11 9.576l53.517 128.44-34.167 2.625c-3.541 0.275-6.542 2.714-7.533 6.124-0.992 3.41 0.233 7.078 3.075 9.209l45.575 34.175-24.05 13.742c-2.665 1.524-4.307 4.361-4.3 7.431s1.661 5.9 4.333 7.411l40.673 22.969c-0.224 1.105-0.338 2.229-0.34 3.356v17.067h-23.958l-110.07-44.026zm93.942-8.441-37.833-28.375 23.325-1.792c2.729-0.212 5.19-1.719 6.619-4.053s1.651-5.212 0.598-7.738l-48.967-117.52 67.425 35.317c3.408 1.787 7.59 1.07 10.208-1.75l34.05-36.667v77.375c0 2.667 1.247 5.18 3.369 6.794 2.123 1.614 4.878 2.143 7.447 1.431l66.875-18.575-41.692 64.433c-1.372 2.124-1.732 4.747-0.982 7.162s2.532 4.373 4.865 5.346l45.467 18.95-71.972 44.153c-1.568-0.497-3.2-0.762-4.845-0.787h-51.2c-1.655 0.024-3.297 0.292-4.873 0.796l-31.052-17.529 22.283-12.733c2.495-1.425 4.106-4.01 4.284-6.878 0.179-2.868-1.1-5.633-3.399-7.355zm12.758 60.766h51.2v17.067h-51.2zm-51.2 44.684c7e-3 -5.824 4.726-10.543 10.55-10.55h132.5c5.824 7e-3 10.543 4.726 10.55 10.55v15.05h-153.6zm-162.13 66.25v-34.133h477.87l0.017 34.133z"/></g></svg>
diff --git a/icons/game_win.svg b/icons/game_win.svg
new file mode 100644
index 0000000..fe20923
--- /dev/null
+++ b/icons/game_win.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 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.17604 0 0 .17604 7.9341 1.7716)"><path d="m101.92 496.35c-1.8555 0-3.7109-0.69532-5.1484-2.0898-2.9297-2.8438-3-7.5234-0.15234-10.453l9.1875-9.4648c2.8438-2.9297 7.5234-3 10.453-0.15625s3 7.5234 0.15625 10.453l-9.1914 9.4648c-1.4492 1.4961-3.375 2.2461-5.3047 2.2461z" fill="#ff4e61"/><path d="m201.65 133.26c-1.8516 0-3.7109-0.69531-5.1445-2.0898-2.9297-2.8438-3-7.5234-0.15625-10.449l9.1914-9.4688c2.8438-2.9297 7.5195-3 10.449-0.15625s3 7.5234 0.15625 10.453l-9.1914 9.4688c-1.4492 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#ff4e61"/><path d="m413.8 100.39c-1.8555 0-3.7109-0.69141-5.1484-2.0859-2.9297-2.8438-3-7.5234-0.15625-10.453l9.1914-9.4688c2.8438-2.9258 7.5234-2.9961 10.453-0.15234 2.9297 2.8398 3 7.5234 0.15625 10.449l-9.1914 9.4688c-1.4492 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#5c73bc"/><path d="m413.8 463.77c-1.8555 0-3.7109-0.69532-5.1484-2.0859-2.9297-2.8438-3-7.5234-0.15625-10.453l9.1914-9.4688c2.8438-2.9258 7.5234-3 10.453-0.15625s3 7.5234 0.15625 10.453l-9.1914 9.4688c-1.4492 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#fa0"/><path d="m63.07 112.91c-1.8516 0-3.7109-0.69141-5.1445-2.0859-2.9297-2.8438-3-7.5234-0.15625-10.453l9.1914-9.4687c2.8438-2.9258 7.5234-2.9961 10.453-0.15234 2.9258 2.8438 2.9961 7.5234 0.15234 10.449l-9.1914 9.4688c-1.4492 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#fa0"/><path d="m12.309 278.82c-1.8516 0-3.7109-0.69141-5.1445-2.0859-2.9297-2.8438-3-7.5234-0.15625-10.453l9.1875-9.4688c2.8438-2.9297 7.5234-3 10.453-0.15625 2.9297 2.8438 3 7.5234 0.15625 10.453l-9.1914 9.4688c-1.4453 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#2dc471"/><path d="m216.29 278.49-23.996 12.996c-6.2226 3.3711-13.496-2.0742-12.309-9.2148l4.582-27.523c0.47266-2.8359-0.4375-5.7266-2.4375-7.7344l-19.414-19.496c-5.0352-5.0547-2.2578-13.863 4.7031-14.906l26.824-4.0156c2.7656-0.41407 5.1524-2.1992 6.3867-4.7812l12-25.043c3.1133-6.4922 12.102-6.4922 15.215 0l11.996 25.043c1.2383 2.582 3.625 4.3672 6.3867 4.7812l26.828 4.0156c6.957 1.043 9.7344 9.8516 4.6992 14.906l-19.41 19.496c-2 2.0078-2.9141 4.8984-2.4414 7.7344l4.582 27.523c1.1914 7.1406-6.082 12.586-12.305 9.2148l-23.996-12.996c-2.4727-1.3398-5.4258-1.3398-7.8945 0z" fill="#ffd02f"/><path d="m220.24 512c-4.082 0-7.3906-3.3086-7.3906-7.3906v-115.59c0-4.082 3.3086-7.3945 7.3906-7.3945s7.3906 3.3125 7.3906 7.3945v115.59c0 4.082-3.3086 7.3906-7.3906 7.3906z" fill="#5c73bc"/><path d="m220.3 357.42h-0.11328c-4.082 0-7.3945-3.3125-7.3945-7.3945s3.3086-7.3906 7.3945-7.3906h0.11328c4.082 0 7.3906 3.3086 7.3906 7.3906s-3.3086 7.3945-7.3906 7.3945z" fill="#5c73bc"/><path d="m220.3 332h-0.14838c-4.082-0.0156-7.375-3.3398-7.3594-7.4219 0.0195-4.0742 3.3242-7.3594 7.3906-7.3594h0.14848c4.082 0.0156 7.375 3.3398 7.3594 7.4219-0.0156 4.0703-3.3242 7.3594-7.3906 7.3594z" fill="#fa0"/><path d="m87.234 230.89c-1.9297 0-3.8555-0.75-5.3047-2.2422l-79.34-81.738c-2.8438-2.9297-2.7773-7.6094 0.15234-10.449 2.9297-2.8438 7.6094-2.7734 10.453 0.15235l79.344 81.738c2.8438 2.9258 2.7734 7.6094-0.15625 10.449-1.4375 1.3945-3.293 2.0898-5.1484 2.0898z" fill="#ff4e61"/><path d="m113.95 258.5c-1.8633 0-3.7266-0.69922-5.1641-2.1055-2.9219-2.8516-2.9766-7.5312-0.125-10.453l0.082-0.082c2.8516-2.918 7.5312-2.9766 10.453-0.12109 2.9219 2.8516 2.9766 7.5312 0.12109 10.453l-0.0781 0.082c-1.4492 1.4805-3.3672 2.2266-5.2891 2.2266z" fill="#fa0"/><path d="m131.4 276.48c-1.8555 0-3.7109-0.69531-5.1484-2.0898-2.9258-2.8438-2.9961-7.5234-0.15235-10.449l0.0781-0.0859c2.8476-2.9297 7.5273-2.9961 10.453-0.15235 2.9297 2.8438 3 7.5234 0.15625 10.453l-0.082 0.082c-1.4492 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#5c73bc"/><path d="m353.24 227.99c-1.8555 0-3.7109-0.69141-5.1445-2.0859-2.9297-2.8438-3-7.5234-0.15625-10.453l79.34-81.734c2.8438-2.9297 7.5234-3 10.453-0.15625 2.9297 2.8438 3 7.5234 0.15625 10.453l-79.344 81.734c-1.4492 1.4922-3.375 2.2422-5.3047 2.2422z" fill="#fa0"/><path d="m326.52 255.6c-1.9141 0-3.8242-0.73828-5.2695-2.2109l-0.082-0.082c-2.8633-2.9141-2.8203-7.5938 0.0899-10.453 2.9141-2.8633 7.5938-2.8203 10.453 0.0898l0.082 0.082c2.8594 2.9141 2.8203 7.5938-0.0937 10.453-1.4375 1.4141-3.3086 2.1211-5.1797 2.1211z" fill="#ff4e61"/><path d="m309.07 273.58c-1.9297 0-3.8555-0.75-5.3047-2.2422l-0.082-0.082c-2.8398-2.9297-2.7734-7.6094 0.15625-10.453s7.6094-2.7734 10.453 0.15234l0.082 0.082c2.8398 2.9297 2.7734 7.6094-0.15625 10.453-1.4375 1.3945-3.293 2.0898-5.1484 2.0898z" fill="#fa0"/><path d="m300.65 116.69c-1.2422 0-2.5-0.3125-3.6523-0.97266-3.5469-2.0234-4.7812-6.5391-2.7578-10.082l56.863-99.652c2.0234-3.543 6.5352-4.7773 10.082-2.7539 3.5469 2.0234 4.7812 6.5391 2.7578 10.082l-56.863 99.652c-1.3633 2.3867-3.8594 3.7266-6.4297 3.7266z" fill="#62d38f"/><path d="m281.52 150.33c-1.293 0-2.5977-0.33593-3.7891-1.0469l-0.0976-0.0586c-3.5-2.0938-4.6445-6.6328-2.5469-10.137 2.0938-3.5078 6.6328-4.6445 10.137-2.5508l0.0977 0.0586c3.5039 2.0938 4.6445 6.6328 2.5508 10.137-1.3867 2.3164-3.8359 3.5976-6.3516 3.5976z" fill="#fa0"/><path d="m269.02 172.25c-1.3008 0-2.6172-0.34375-3.8086-1.0625l-0.0977-0.0586c-3.4961-2.1094-4.6211-6.6523-2.5156-10.148 2.1094-3.4961 6.6523-4.6172 10.148-2.5117l0.0976 0.0586c3.4961 2.1094 4.6211 6.6523 2.5117 10.148-1.3867 2.3008-3.832 3.5742-6.3359 3.5742z" fill="#2dc471"/><path d="m139.96 116.69c-2.5703 0-5.0664-1.3398-6.4297-3.7305l-56.863-99.648c-2.0234-3.5469-0.78906-8.0586 2.7539-10.082 3.5469-2.0234 8.0625-0.79297 10.086 2.7539l56.863 99.648c2.0234 3.5469 0.78906 8.0625-2.7539 10.086-1.1562 0.66016-2.4141 0.97266-3.6562 0.97266z" fill="#5c73bc"/><path d="m159.09 150.33c-2.5078 0-4.957-1.2773-6.3438-3.582-2.1016-3.5-0.96875-8.043 2.5273-10.145l0.10157-0.0586c3.5-2.1016 8.0391-0.97266 10.141 2.5273 2.1055 3.5 0.97266 8.0391-2.5273 10.145l-0.0977 0.0586c-1.1914 0.71484-2.5039 1.0547-3.8008 1.0547z" fill="#ff4e61"/><path d="m171.6 172.25c-2.5 0-4.9375-1.2656-6.3281-3.5625-2.1172-3.4922-1-8.0352 2.4883-10.152l0.0977-0.0586c3.4961-2.1133 8.0391-1 10.156 2.4922 2.1133 3.4922 1 8.0352-2.4922 10.152l-0.0977 0.0586c-1.1992 0.72656-2.5195 1.0703-3.8242 1.0703z" fill="#fa0"/><path d="m402.14 357.28-15.523 11.602c-4.0234 3.0117-9.6523-0.043-9.5234-5.1641l0.5039-19.75c0.0508-2.0352-0.87109-3.9648-2.4688-5.1641l-15.508-11.621c-4.0234-3.0156-2.9453-9.4726 1.8242-10.93l18.391-5.6094c1.8906-0.57812 3.3906-2.082 4-4.0156l5.9375-18.785c1.5391-4.875 7.8359-5.8125 10.652-1.5898l10.863 16.285c1.1211 1.6758 2.9688 2.6797 4.9414 2.6797l19.18 0.0117c4.9766 4e-3 7.7891 5.8828 4.7578 9.9492l-11.676 15.672c-1.2031 1.6172-1.5586 3.7383-0.94922 5.6719l5.918 18.797c1.5312 4.875-3.0273 9.4453-7.7148 7.7344l-18.078-6.5977c-1.8594-0.67969-3.9258-0.37109-5.5273 0.82422z" fill="#ffd02f"/><path d="m261.51 512c-4.082 0-7.3906-3.3086-7.3906-7.3906 0-57.23 22.832-95.922 41.984-118.3 20.828-24.332 41.613-35.023 42.488-35.469 3.6406-1.8477 8.0898-0.39063 9.9336 3.2539 1.8438 3.6367 0.39453 8.0781-3.2422 9.9297-0.3125 0.16016-19.5 10.164-38.367 32.395-25.227 29.719-38.016 66.121-38.016 108.2 0 4.082-3.3086 7.3906-7.3906 7.3906z" fill="#ff4e61"/><path d="m102.86 397.35 11.766 15.605c3.0547 4.0469 9.2852 2.7305 10.547-2.2266l4.8633-19.113c0.5-1.9648 1.9102-3.5547 3.7695-4.2461l18.039-6.707c4.6797-1.7383 5.3906-8.25 1.207-11.016l-16.141-10.672c-1.6602-1.1016-2.6914-2.9726-2.7578-5.0039l-0.61719-19.75c-0.15625-5.1211-5.9492-7.832-9.7969-4.5859l-14.84 12.516c-1.5312 1.2891-3.5781 1.7227-5.4726 1.1562l-18.422-5.5c-4.7773-1.4258-9.0703 3.4102-7.2617 8.1836l6.9688 18.41c0.71875 1.8945 0.48438 4.0352-0.625 5.7188l-10.77 16.348c-2.793 4.2422 0.34375 9.9375 5.3125 9.6445l19.145-1.1406c1.9727-0.11719 3.875 0.77343 5.0859 2.3789z" fill="#ffd02f"/><path d="m179.02 512c-4.082 0-7.3906-3.3086-7.3906-7.3906 0-30.059-6.6797-57.559-19.852-81.734-1.9531-3.5859-0.62891-8.0742 2.957-10.027 3.5859-1.9531 8.0742-0.62891 10.027 2.9531 14.363 26.375 21.648 56.254 21.648 88.809 0 4.082-3.3086 7.3906-7.3906 7.3906z" fill="#fa0"/><path d="m268.93 55.898c0-11.285-8.8828-20.434-19.836-20.434-10.957 0-19.836 9.1484-19.836 20.434 0 11.285 8.8789 20.438 19.836 20.438 10.953 0 19.836-9.1523 19.836-20.438z" fill="#ffd02f"/><path d="m373.08 446.81c0-11.285-8.8789-20.434-19.832-20.434-10.957 0-19.836 9.1484-19.836 20.434s8.8789 20.434 19.836 20.434c10.953 0 19.832-9.1484 19.832-20.434z" fill="#5c73bc"/><path d="m44.129 450.86c0-9.0508-7.1211-16.387-15.91-16.387-8.7852 0-15.906 7.3359-15.906 16.387 0 9.0547 7.1211 16.391 15.906 16.391 8.7891 0 15.91-7.3359 15.91-16.391z" fill="#62d38f"/><path d="m88.172 288.35c0-9.0508-7.1211-16.387-15.91-16.387-8.7852 0-15.906 7.3359-15.906 16.387s7.1211 16.391 15.906 16.391c8.7891 0 15.91-7.3398 15.91-16.391z" fill="#5c73bc"/><g fill="#ff4e61"><path d="m210.84 16.391c0-9.0547-7.1211-16.391-15.906-16.391-8.7891 0-15.91 7.3359-15.91 16.391 0 9.0508 7.1211 16.387 15.91 16.387 8.7852 0 15.906-7.3359 15.906-16.387z"/><path d="m365.23 152.88c0-9.0508-7.125-16.391-15.91-16.391-8.7852 0-15.91 7.3398-15.91 16.391s7.125 16.387 15.91 16.387c8.7852 0 15.91-7.3359 15.91-16.387z"/><path d="m139.96 32.746c-1.8555 0-3.7109-0.69141-5.1484-2.0898-2.9297-2.8438-3-7.5195-0.15625-10.449l9.1914-9.4688c2.8438-2.9297 7.5234-3 10.449-0.15625 2.9297 2.8438 3 7.5234 0.15625 10.453l-9.1875 9.4688c-1.4492 1.4922-3.3789 2.2422-5.3047 2.2422z"/></g></g></svg>
diff --git a/icons/size_10x10.svg b/icons/size_10x10.svg
new file mode 100644
index 0000000..538fd9d
--- /dev/null
+++ b/icons/size_10x10.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="#c5ffc5" stroke="#000" stroke-width="2"/>
+  <path d="m32.035 62.07v35.93h35.93v-35.93zm31.808 31.808h-12.37v-12.37h12.37zm-0.0014-15.903h-12.369v-12.37h12.37zm-28.274-12.37h12.37v12.37h-12.37zm0 15.905h12.37v12.37h-12.37z" stroke-width="1.767"/><g transform="translate(1.9e-4,-4.3517)" fill="#00d600" stroke="#009100" aria-label="10x10"><path d="m15.292 8.8519v21.126h-5.8377v-13.843q-1.4169 1.0769-2.7488 1.7428-1.3177 0.66595-3.3156 1.2752v-4.7325q2.9472-0.94934 4.5767-2.2812 1.6295-1.3319 2.5505-3.2873z"/><path d="m21.569 19.507q0-5.9227 2.1254-8.289 2.1396-2.3663 6.5037-2.3663 2.097 0 3.4431 0.52426 1.3461 0.51009 2.1962 1.3461 0.85015 0.82182 1.3319 1.7428 0.49592 0.90683 0.79348 2.1254 0.58094 2.3238 0.58094 4.8459 0 5.6535-1.9128 8.2748t-6.5887 2.6213q-2.6213 0-4.2366-0.83598t-2.6496-2.4513q-0.75097-1.1477-1.176-3.1314-0.41091-1.9979-0.41091-4.4066zm5.7244 0.01417q0 3.9674 0.69429 5.4268 0.70846 1.4453 2.0404 1.4453 0.87849 0 1.5161-0.60928 0.65178-0.62345 0.94934-1.9554 0.31172-1.3319 0.31172-4.1516 0-4.1374-0.70846-5.5543-0.69429-1.4311-2.097-1.4311-1.4311 0-2.0687 1.4594-0.63762 1.4453-0.63762 5.3701z"/><path d="m40.174 14.93h6.8437l2.3946 4.1941 2.7772-4.1941h6.362l-5.1293 7.1696 5.4977 7.8781h-6.7304l-2.7772-4.8459-3.2731 4.8459h-6.2486l5.4693-7.8781z"/><path d="m73.358 8.8519v21.126h-5.8377v-13.843q-1.4169 1.0769-2.7488 1.7428-1.3177 0.66595-3.3156 1.2752v-4.7325q2.9472-0.94934 4.5767-2.2812 1.6295-1.3319 2.5505-3.2873z"/><path d="m79.635 19.507q0-5.9227 2.1254-8.289 2.1396-2.3663 6.5037-2.3663 2.097 0 3.4431 0.52426 1.3461 0.51009 2.1962 1.3461 0.85016 0.82182 1.3319 1.7428 0.49592 0.90683 0.79348 2.1254 0.58094 2.3238 0.58094 4.8459 0 5.6535-1.9128 8.2748t-6.5887 2.6213q-2.6213 0-4.2366-0.83598t-2.6496-2.4513q-0.75097-1.1477-1.176-3.1314-0.41091-1.9979-0.41091-4.4066zm5.7244 0.01417q0 3.9674 0.69429 5.4268 0.70846 1.4453 2.0404 1.4453 0.87849 0 1.5161-0.60928 0.65178-0.62345 0.94934-1.9554 0.31172-1.3319 0.31172-4.1516 0-4.1374-0.70846-5.5543-0.69429-1.4311-2.097-1.4311-1.4311 0-2.0687 1.4594-0.63762 1.4453-0.63762 5.3701z"/></g></svg>
diff --git a/icons/size_15x15.svg b/icons/size_15x15.svg
new file mode 100644
index 0000000..51282ff
--- /dev/null
+++ b/icons/size_15x15.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="#ffdfba" stroke="#000" stroke-width="2"/>
+  <path d="m24.111 46.113v51.887h51.778v-51.887zm32.165 18.883v13.733h-12.836v-13.733zm-12.836-3.4332v-12.016h12.836v12.016zm28.731 32.615h-12.465v-12.016h12.465zm0-15.448h-12.465v-13.733h12.465zm-15.897 3.4332v12.016h-12.836v-12.016zm15.897-20.6h-12.465v-12.016h12.465zm-44.631-12.016h12.465v12.016h-12.465zm0 15.448h12.465v13.733h-12.465zm0 17.167h12.465v12.016h-12.465z" stroke-width="1.7167"/><g transform="matrix(1.0992 0 0 1.0992 -4.9603 -7.468)" fill="#ff9924" stroke="#9f5300" stroke-width=".90975" aria-label="15x15"><path d="m17.799 10.888v19.585h-5.4118v-12.833q-1.3135 0.99829-2.5483 1.6157-1.2216 0.61736-3.0737 1.1822v-4.3872q2.7322-0.88007 4.2427-2.1148 1.5106-1.2347 2.3644-3.0474z"/><path d="m25.785 11.216h12.702v4.269h-8.6037l-0.45974 2.8898q0.89321-0.42033 1.7601-0.6305 0.88007-0.21017 1.7339-0.21017 2.8898 0 4.6893 1.747 1.7996 1.747 1.7996 4.4004 0 1.8652-0.93261 3.586-0.91948 1.7207-2.6271 2.6271-1.6945 0.90634-4.3478 0.90634-1.9046 0-3.2707-0.35466-1.3529-0.36779-2.3118-1.0771-0.94575-0.72245-1.5368-1.6288-0.59109-0.90634-0.98516-2.2593l5.4118-0.59109q0.19703 1.3004 0.91948 1.9834 0.72245 0.6699 1.7207 0.6699 1.1165 0 1.839-0.84066 0.73558-0.8538 0.73558-2.5351 0-1.7207-0.73558-2.522-0.73558-0.80126-1.9572-0.80126-0.77499 0-1.4974 0.38093-0.53855 0.27584-1.1822 0.99829l-4.558-0.65677z"/><path d="m40.864 16.523h6.3444l2.2199 3.8881 2.5745-3.8881h5.8978l-4.755 6.6465 5.0965 7.3033h-6.2393l-2.5745-4.4923-3.0343 4.4923h-5.7927l5.0703-7.3033z"/><path d="m71.627 10.888v19.585h-5.4118v-12.833q-1.3135 0.99829-2.5483 1.6157-1.2216 0.61736-3.0737 1.1822v-4.3872q2.7322-0.88007 4.2427-2.1148 1.5106-1.2347 2.3644-3.0474z"/><path d="m79.614 11.216h12.702v4.269h-8.6037l-0.45974 2.8898q0.89321-0.42033 1.7601-0.6305 0.88007-0.21017 1.7339-0.21017 2.8898 0 4.6893 1.747t1.7995 4.4004q0 1.8652-0.93261 3.586-0.91948 1.7207-2.6271 2.6271-1.6945 0.90634-4.3478 0.90634-1.9046 0-3.2707-0.35466-1.3529-0.36779-2.3118-1.0771-0.94575-0.72245-1.5368-1.6288-0.59109-0.90634-0.98516-2.2593l5.4118-0.59109q0.19703 1.3004 0.91948 1.9834 0.72245 0.6699 1.7207 0.6699 1.1165 0 1.839-0.84066 0.73558-0.8538 0.73558-2.5351 0-1.7207-0.73558-2.522-0.73558-0.80126-1.9572-0.80126-0.77499 0-1.4974 0.38093-0.53855 0.27584-1.1822 0.99829l-4.558-0.65677z"/></g></svg>
diff --git a/icons/size_20x20.svg b/icons/size_20x20.svg
new file mode 100644
index 0000000..4734ae1
--- /dev/null
+++ b/icons/size_20x20.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="#ffc4c4" stroke="#000" stroke-width="2"/><path d="m15.971 30.405v67.595h68.058v-67.595zm32.033 19.075v12.498h-12.96v-12.498zm-12.96-3.4681v-12.138h12.96v12.138zm44.53 47.537h-12.138v-12.138h12.138zm0-15.965h-12.138v-12.138h12.138zm-15.965 0h-12.138v-12.138h12.138zm0 3.826v12.138h-12.138v-12.138zm15.965-19.431h-12.138v-12.498h12.138zm-15.965 0h-12.138v-12.498h12.138zm-15.606 3.4681v12.138h-12.96v-12.138zm0 15.965v12.138h-12.96v-12.138zm31.571-47.538v12.138h-12.138v-12.138zm-15.965 12.138h-12.138v-12.138h12.138zm-44.172-12.138h12.138v12.138h-12.138zm0 15.606h12.138v12.498h-12.138zm0 15.968h12.138v12.138h-12.138zm0 15.965h12.138v12.138h-12.138z" stroke-width="1.734"/><g transform="matrix(1.0243 0 0 1.0243 -.37355 -10.97)" fill="#ff1e1e" stroke="#8e0000" stroke-width=".97628" aria-label="20x20"><path d="m19.449 35.993h-17.121q0.29423-2.536 1.7794-4.7637 1.4992-2.2417 5.6043-5.2821 2.5079-1.8634 3.2085-2.8302 0.70054-0.96674 0.70054-1.8354 0-0.93872-0.70054-1.5972-0.68653-0.67252-1.7373-0.67252-1.0928 0-1.7934 0.68653-0.68653 0.68653-0.92471 2.4239l-5.7164-0.46236q0.33626-2.4099 1.2329-3.7549 0.89669-1.359 2.5219-2.0736 1.6393-0.72856 4.5255-0.72856 3.0123 0 4.6796 0.68653 1.6813 0.68653 2.634 2.1156 0.96674 1.4151 0.96674 3.1804 0 1.8774-1.1069 3.5868-1.0928 1.7093-3.9931 3.7549-1.7233 1.1909-2.3118 1.6673-0.57444 0.47637-1.359 1.247h8.9109z"/><path d="m21.887 25.639q0-5.8565 2.1016-8.1963 2.1156-2.3398 6.431-2.3398 2.0736 0 3.4046 0.5184 1.331 0.50439 2.1717 1.331 0.84065 0.81263 1.317 1.7233 0.49038 0.89669 0.7846 2.1016 0.57444 2.2978 0.57444 4.7917 0 5.5903-1.8915 8.1823t-6.515 2.592q-2.592 0-4.1892-0.82664t-2.62-2.4239q-0.74257-1.1349-1.1629-3.0964-0.40631-1.9755-0.40631-4.3574zm5.6604 0.01401q0 3.923 0.68653 5.3661 0.70054 1.4291 2.0176 1.4291 0.86867 0 1.4992-0.60246 0.6445-0.61648 0.93872-1.9335 0.30824-1.317 0.30824-4.1052 0-4.0912-0.70054-5.4922-0.68653-1.4151-2.0736-1.4151-1.4151 0-2.0456 1.4431-0.63049 1.4291-0.63049 5.3101z"/><path d="m40.284 21.114h6.7672l2.3678 4.1472 2.7461-4.1472h6.2908l-5.0719 7.0895 5.4362 7.79h-6.6551l-2.7461-4.7917-3.2365 4.7917h-6.1788l5.4082-7.79z"/><path d="m76.866 35.993h-17.121q0.29423-2.536 1.7794-4.7637 1.4992-2.2417 5.6043-5.2821 2.5079-1.8634 3.2085-2.8302 0.70054-0.96674 0.70054-1.8354 0-0.93872-0.70054-1.5972-0.68653-0.67252-1.7373-0.67252-1.0928 0-1.7934 0.68653-0.68653 0.68653-0.92471 2.4239l-5.7164-0.46236q0.33626-2.4099 1.233-3.7549 0.89669-1.359 2.5219-2.0736 1.6393-0.72856 4.5255-0.72856 3.0123 0 4.6796 0.68653 1.6813 0.68653 2.634 2.1156 0.96674 1.4151 0.96674 3.1804 0 1.8774-1.1069 3.5868-1.0928 1.7093-3.9931 3.7549-1.7233 1.1909-2.3118 1.6673-0.57444 0.47637-1.359 1.247h8.9109z"/><path d="m79.304 25.639q0-5.8565 2.1016-8.1963 2.1156-2.3398 6.431-2.3398 2.0736 0 3.4046 0.5184 1.331 0.50439 2.1717 1.331 0.84065 0.81263 1.317 1.7233 0.49038 0.89669 0.7846 2.1016 0.57444 2.2978 0.57444 4.7917 0 5.5903-1.8915 8.1823t-6.515 2.592q-2.592 0-4.1892-0.82664t-2.62-2.4239q-0.74257-1.1349-1.1629-3.0964-0.40631-1.9755-0.40631-4.3574zm5.6604 0.01401q0 3.923 0.68653 5.3661 0.70054 1.4291 2.0176 1.4291 0.86867 0 1.4992-0.60246 0.6445-0.61648 0.93872-1.9335 0.30824-1.317 0.30824-4.1052 0-4.0912-0.70054-5.4922-0.68653-1.4151-2.0736-1.4151-1.4151 0-2.0456 1.4431-0.63049 1.4291-0.63049 5.3101z"/></g>
+  </svg>
diff --git a/icons/skins/default/0.svg b/icons/skins/default/0.svg
new file mode 100644
index 0000000..fed760a
--- /dev/null
+++ b/icons/skins/default/0.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><text x="29.053539" y="43.304588" fill="#000000" font-family="sans-serif" font-size="40px" letter-spacing="0px" word-spacing="0px" style="line-height:1.25" xml:space="preserve"><tspan/></text></svg>
diff --git a/icons/skins/default/1.svg b/icons/skins/default/1.svg
new file mode 100644
index 0000000..da4bfe1
--- /dev/null
+++ b/icons/skins/default/1.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="2" fill="none"/>
+<g stroke-width="3.1763" aria-label="1"><path d="m66.056 3.7513v92.497h-25.559v-60.61q-6.2037 4.7148-12.035 7.6306-5.7695 2.9157-14.517 5.5833v-20.72q12.904-4.1565 20.038-9.988t11.167-14.393z"/></g></svg>
diff --git a/icons/skins/default/2.svg b/icons/skins/default/2.svg
new file mode 100644
index 0000000..7f1a27e
--- /dev/null
+++ b/icons/skins/default/2.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="2"><path d="m87.905 96.249h-75.809q1.3028-11.229 7.8787-21.093 6.638-9.9259 24.815-23.388 11.105-8.2509 14.206-12.531 3.1019-4.2806 3.1019-8.1269 0-4.1565-3.1019-7.0722-3.0398-2.9778-7.6926-2.9778-4.8389 0-7.9408 3.0398-3.0398 3.0398-4.0944 10.732l-25.311-2.0472q1.4889-10.67 5.4593-16.626 3.9704-6.0176 11.167-9.1815 7.2583-3.2259 20.038-3.2259 13.338 0 20.72 3.0398 7.4445 3.0398 11.663 9.3676 4.2806 6.2657 4.2806 14.082 0 8.313-4.9009 15.882-4.8389 7.5685-17.681 16.626-7.6306 5.2732-10.236 7.3824-2.5435 2.1093-6.0176 5.5213h39.456z"/></g></svg>
diff --git a/icons/skins/default/3.svg b/icons/skins/default/3.svg
new file mode 100644
index 0000000..e48bb58
--- /dev/null
+++ b/icons/skins/default/3.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="3"><path d="m37.686 30.831-23.884-4.2806q2.9778-11.415 11.415-17.494 8.4991-6.0796 24.008-6.0796 17.805 0 25.745 6.638 7.9408 6.638 7.9408 16.688 0 5.8935-3.2259 10.67-3.2259 4.7769-9.7398 8.375 5.2732 1.3028 8.0648 3.0398 4.5287 2.7917 7.0102 7.3824 2.5435 4.5287 2.5435 10.856 0 7.9408-4.1565 15.261-4.1565 7.2583-11.973 11.229-7.8167 3.9083-20.534 3.9083-12.407 0-19.604-2.9157-7.1343-2.9157-11.787-8.4991-4.5907-5.6454-7.0722-14.144l25.249-3.35q1.4889 7.6306 4.5907 10.608 3.1639 2.9157 8.0028 2.9157 5.087 0 8.437-3.7222 3.412-3.7222 3.412-9.9259 0-6.3278-3.288-9.8019-3.2259-3.4741-8.8093-3.4741-2.9778 0-8.1889 1.4889l1.3028-18.053q2.1093 0.31018 3.288 0.31018 4.963 0 8.2509-3.1639 3.35-3.1639 3.35-7.5065 0-4.1565-2.4815-6.638t-6.8241-2.4815q-4.4667 0-7.2583 2.7296-2.7917 2.6676-3.7843 9.4296z"/></g></svg>
diff --git a/icons/skins/default/4.svg b/icons/skins/default/4.svg
new file mode 100644
index 0000000..609d440
--- /dev/null
+++ b/icons/skins/default/4.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="4"><path d="m56.297 79.25h-46.032v-20.782l46.032-54.717h22.023v55.895h11.415v19.604h-11.415v16.998h-22.023zm0-19.604v-28.599l-24.319 28.599z"/></g></svg>
diff --git a/icons/skins/default/5.svg b/icons/skins/default/5.svg
new file mode 100644
index 0000000..3e4ce20
--- /dev/null
+++ b/icons/skins/default/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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="5"><path d="m23.479 3.7513h59.99v20.162h-40.634l-2.1713 13.648q4.2185-1.9852 8.313-2.9778 4.1565-0.99259 8.1889-0.99259 13.648 0 22.147 8.2509 8.4991 8.2509 8.4991 20.782 0 8.8093-4.4046 16.936-4.3426 8.1269-12.407 12.407-8.0028 4.2806-20.534 4.2806-8.9954 0-15.447-1.675-6.3898-1.737-10.919-5.087-4.4667-3.412-7.2583-7.6926-2.7917-4.2806-4.6528-10.67l25.559-2.7917q0.93056 6.1417 4.3426 9.3676 3.412 3.1639 8.1269 3.1639 5.2732 0 8.6852-3.9704 3.4741-4.0324 3.4741-11.973 0-8.1269-3.4741-11.911-3.4741-3.7843-9.2435-3.7843-3.6602 0-7.0722 1.7991-2.5435 1.3028-5.5833 4.7148l-21.527-3.1019z"/></g></svg>
diff --git a/icons/skins/default/6.svg b/icons/skins/default/6.svg
new file mode 100644
index 0000000..684ec0f
--- /dev/null
+++ b/icons/skins/default/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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="6"><path d="m85.547 24.999-25.125 3.1019q-0.99259-5.2732-3.35-7.4445-2.2954-2.1713-5.7074-2.1713-6.1417 0-9.5537 6.2037-2.4815 4.4667-3.6602 19.107 4.5287-4.5907 9.3056-6.762 4.7769-2.2333 11.043-2.2333 12.159 0 20.534 8.6852 8.437 8.6852 8.437 22.023 0 8.9954-4.2806 16.44-4.2185 7.4445-11.787 11.291-7.5065 3.7843-18.859 3.7843-13.648 0-21.899-4.6528-8.2509-4.6528-13.214-14.827-4.9009-10.236-4.9009-27.048 0-24.629 10.36-36.044 10.36-11.477 28.723-11.477 10.856 0 17.122 2.5435 6.3278 2.4815 10.484 7.3204 4.1565 4.8389 6.3278 12.159zm-46.528 40.51q0 7.3824 3.7222 11.601 3.7222 4.1565 9.1195 4.1565 4.963 0 8.313-3.7843t3.35-11.291q0-7.6926-3.4741-11.725t-8.6232-4.0324q-5.2732 0-8.8713 3.9083-3.5361 3.9083-3.5361 11.167z"/></g></svg>
diff --git a/icons/skins/default/7.svg b/icons/skins/default/7.svg
new file mode 100644
index 0000000..40d418c
--- /dev/null
+++ b/icons/skins/default/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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="7"><path d="m13.119 4.5268h73.762v17.06q-9.6158 8.6852-16.068 18.797-7.8167 12.283-12.345 27.358-3.5982 11.725-4.8389 27.731h-25.187q2.9778-22.271 9.3676-37.346t20.224-32.259h-44.915z"/></g></svg>
diff --git a/icons/skins/default/8.svg b/icons/skins/default/8.svg
new file mode 100644
index 0000000..c444e92
--- /dev/null
+++ b/icons/skins/default/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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="3.1763" aria-label="8"><path d="m28.039 46.588q-5.9556-3.1639-8.6852-7.0722-3.7222-5.3352-3.7222-12.283 0-11.415 10.732-18.673 8.375-5.5833 22.147-5.5833 18.239 0 26.924 6.9482 8.7472 6.9482 8.7472 17.494 0 6.1417-3.4741 11.477-2.6056 3.9704-8.1889 7.6926 7.3824 3.5361 10.981 9.3676 3.6602 5.8315 3.6602 12.904 0 6.8241-3.1639 12.78-3.1019 5.8935-7.6926 9.1195-4.5287 3.2259-11.353 4.7148-6.762 1.5509-14.455 1.5509-14.455 0-22.085-3.412-7.6306-3.412-11.601-10.05t-3.9704-14.827q0-8.0028 3.7222-13.524 3.7222-5.5833 11.477-8.6232zm11.353-17.867q0 4.7148 2.9157 7.6306 2.9778 2.8537 7.8787 2.8537 4.3426 0 7.1343-2.8537t2.7917-7.3824q0-4.7148-2.9157-7.6306-2.9157-2.9778-7.4445-2.9778-4.5907 0-7.5065 2.9157-2.8537 2.8537-2.8537 7.4445zm-1.3648 39.145q0 6.0176 3.6602 9.8639 3.6602 3.7843 8.375 3.7843 4.5287 0 8.1269-3.8463 3.5982-3.9083 3.5982-9.8639 0-6.0176-3.6602-9.8639-3.5982-3.8463-8.375-3.8463-4.7148 0-8.2509 3.7222-3.4741 3.7222-3.4741 10.05z"/></g></svg>
diff --git a/icons/skins/default/mine.svg b/icons/skins/default/mine.svg
new file mode 100644
index 0000000..4c2a1f5
--- /dev/null
+++ b/icons/skins/default/mine.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g transform="matrix(1.0346 0 0 1.0346 -1.7311 -1.7312)" fill="#eb0404" stroke="#870000" stroke-width="1.9331"><path d="m92.148 55.869c-0.626-0.939-1.482-1.519-2.568-1.739l-6.792-1.242c0.368-5.669-0.727-11.035-3.286-16.096l5.853-4.224c0.939-0.663 1.491-1.574 1.657-2.733 0.202-1.086-0.037-2.071-0.718-2.954l-0.469-0.718c-0.626-0.883-1.537-1.427-2.733-1.629-1.031-0.166-2.016 0.092-2.954 0.773l-5.632 4.059c-3.81-4.215-8.347-7.206-13.611-8.973l1.27-7.731c0.202-1.104-0.037-2.126-0.718-3.065-0.626-0.883-1.482-1.427-2.568-1.629l-0.856-0.166c-1.104-0.147-2.126 0.092-3.065 0.718-0.884 0.681-1.427 1.565-1.629 2.65l-1.16 7.427c-2.503-0.221-4.951-0.175-7.344 0.138-1.362 0.055-2.641 0.294-3.838 0.718-0.626 0.147-1.224 0.331-1.795 0.552l-3.451-7.51c-0.46-0.994-1.215-1.693-2.264-2.098-1.031-0.423-2.043-0.405-3.037 0.055l-0.773 0.414c-0.994 0.405-1.73 1.16-2.209 2.264-0.368 1.031-0.313 2.043 0.166 3.037l3.506 7.648c-0.202 0.11-0.405 0.249-0.607 0.414-5.264 3.681-9.019 8.31-11.265 13.888l-6.958-1.546c-1.086-0.276-2.098-0.074-3.037 0.607-0.994 0.534-1.592 1.344-1.795 2.43l-0.246 0.772c-0.203 1.104-0.018 2.172 0.552 3.203 0.626 0.883 1.491 1.463 2.595 1.739l6.626 1.546c-0.736 5.835 0.101 11.329 2.512 16.483l-5.411 3.672c-0.939 0.626-1.537 1.491-1.795 2.595-0.147 1.086 0.092 2.098 0.718 3.037l0.469 0.635c0.626 0.939 1.454 1.537 2.485 1.795 1.16 0.147 2.209-0.092 3.147-0.718l5.135-3.424c3.7 4.583 8.255 7.887 13.667 9.912l-1.242 6.323c-0.202 1.104 9e-3 2.154 0.635 3.147 0.626 0.883 1.482 1.427 2.568 1.629l0.801 0.166c1.086 0.258 2.098 0.101 3.037-0.469 0.939-0.681 1.509-1.574 1.712-2.678l1.242-6.074c6 0.626 11.651-0.285 16.952-2.733l4.003 6.074c0.626 0.939 1.509 1.518 2.651 1.739 1.049 0.258 2.043 0.074 2.982-0.552l0.69-0.387c0.939-0.626 1.537-1.518 1.795-2.678 0.203-1.086-9e-3 -2.098-0.635-3.037l-3.81-5.936c4.583-3.7 7.841-8.255 9.774-13.667l6.875 1.242c1.086 0.202 2.098-9e-3 3.037-0.635 0.883-0.607 1.427-1.463 1.629-2.568l0.166-0.773c0.202-1.103-0.01-2.143-0.636-3.119zm-50.085-15.013c-0.824 1.929-2.217 3.297-4.178 4.102-1.962 0.806-3.92 0.815-5.876 0.028-1.936-0.778-3.299-2.13-4.09-4.056s-0.774-3.853 0.05-5.782c0.844-1.92 2.247-3.284 4.209-4.089 1.962-0.806 3.91-0.819 5.846-0.041 1.956 0.787 3.329 2.144 4.12 4.069 0.79 1.925 0.763 3.848-0.081 5.769z" fill="#eb0404" stroke="#870000" stroke-width="1.9331"/></g></svg>
diff --git a/icons/skins/default/unknown.svg b/icons/skins/default/unknown.svg
new file mode 100644
index 0000000..293eb29
--- /dev/null
+++ b/icons/skins/default/unknown.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><rect x="3.5527e-15" y="-7.1054e-15" width="100" height="100" fill="#696969" fill-opacity=".28943" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.1508"/></svg>
diff --git a/icons/skins/empty.svg b/icons/skins/empty.svg
new file mode 100644
index 0000000..6b7cca7
--- /dev/null
+++ b/icons/skins/empty.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 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/></svg>
diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart
new file mode 100644
index 0000000..e2a6c0d
--- /dev/null
+++ b/lib/entities/cell.dart
@@ -0,0 +1,53 @@
+import 'package:flutter/material.dart';
+
+import '../provider/data.dart';
+import '../utils/board_utils.dart';
+
+class Cell {
+  bool isMined = false;
+  bool isExplored = false;
+  bool isMarked = false;
+  int minesCountAround = 0;
+
+  Cell(
+    @required this.isMined,
+  );
+
+  Container widget(Data myProvider, int row, int col) {
+    String imageAsset = 'assets/skins/' + myProvider.skin + '_unknown.png';
+
+    Color backgroundColor = this.getBackgroundColor();
+
+    if (this.isExplored) {
+      if (this.isMined) {
+        imageAsset = 'assets/skins/' + myProvider.skin + '_mine.png';
+      } else {
+        imageAsset = 'assets/skins/' + myProvider.skin + '_' + this.minesCountAround.toString() + '.png';
+      }
+    }
+
+    return Container(
+      decoration: BoxDecoration(
+        color: backgroundColor,
+        border: Border.all(
+          color: Colors.grey,
+          width: 1,
+        ),
+      ),
+      child: GestureDetector(
+        child: Image(
+          image: AssetImage(imageAsset),
+          fit: BoxFit.fill,
+        ),
+        onTap: () {
+          BoardUtils.walkOnCell(myProvider, row, col);
+          BoardUtils.checkBoardIsSolved(myProvider);
+        },
+      ),
+    );
+  }
+
+  Color getBackgroundColor() {
+    return Colors.white;
+  }
+}
diff --git a/lib/layout/board.dart b/lib/layout/board.dart
new file mode 100644
index 0000000..b5e1d12
--- /dev/null
+++ b/lib/layout/board.dart
@@ -0,0 +1,44 @@
+import 'package:flutter/material.dart';
+
+import '../provider/data.dart';
+
+class Board {
+
+  static Container buildGameBoard(Data myProvider) {
+    return Container(
+      margin: EdgeInsets.all(2),
+      padding: EdgeInsets.all(2),
+      decoration: BoxDecoration(
+        color: Colors.black,
+        borderRadius: BorderRadius.circular(2),
+        border: Border.all(
+          color: Colors.black,
+          width: 2,
+        ),
+      ),
+      child: buildGameTileset(myProvider),
+    );
+  }
+
+  static Table buildGameTileset(Data myProvider) {
+    List cells = myProvider.cells;
+
+    return Table(
+      defaultColumnWidth: IntrinsicColumnWidth(),
+      children: [
+        for (var row = 0; row < myProvider.sizeVertical; row++)
+          TableRow(children: [
+            for (var col = 0; col < myProvider.sizeHorizontal; col++)
+              Column(children: [
+                cells[row][col].widget(
+                  myProvider,
+                  row,
+                  col
+                )
+              ]),
+          ]),
+      ]
+    );
+  }
+
+}
diff --git a/lib/layout/game.dart b/lib/layout/game.dart
new file mode 100644
index 0000000..8333c64
--- /dev/null
+++ b/lib/layout/game.dart
@@ -0,0 +1,66 @@
+import 'package:flutter/material.dart';
+
+import '../layout/board.dart';
+import '../provider/data.dart';
+import '../utils/game_utils.dart';
+
+class Game {
+
+  static Container buildGameWidget(Data myProvider) {
+    return Container(
+      child: Column(
+        mainAxisAlignment: MainAxisAlignment.start,
+        crossAxisAlignment: CrossAxisAlignment.start,
+        children: [
+          Board.buildGameBoard(myProvider),
+          SizedBox(height: 2),
+          (myProvider.gameWin || myProvider.gameFail) ? Game.buildEndGameMessage(myProvider) : SizedBox(height: 2),
+        ],
+      ),
+    );
+  }
+
+  static FlatButton buildRestartGameButton(Data myProvider) {
+    return FlatButton(
+      child: Container(
+        child: Image(
+          image: AssetImage('assets/icons/button_back.png'),
+          fit: BoxFit.fill,
+        ),
+      ),
+      onPressed: () => GameUtils.resetGame(myProvider),
+    );
+  }
+
+  static Container buildEndGameMessage(Data myProvider) {
+    Image decorationImage = Image(
+      image: AssetImage(
+        myProvider.gameWin
+          ? 'assets/icons/game_win.png'
+          : myProvider.gameFail
+            ? 'assets/icons/game_fail.png'
+            : ''
+      ),
+      fit: BoxFit.fill,
+    );
+
+    return Container(
+      margin: EdgeInsets.all(2),
+      padding: EdgeInsets.all(2),
+
+      child: Table(
+        defaultColumnWidth: IntrinsicColumnWidth(),
+        children: [
+          TableRow(
+            children: [
+              Column(children: [ decorationImage ]),
+              Column(children: [ buildRestartGameButton(myProvider) ]),
+              Column(children: [ decorationImage ]),
+            ],
+          ),
+        ]
+      )
+    );
+  }
+
+}
diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart
new file mode 100644
index 0000000..c15d8a1
--- /dev/null
+++ b/lib/layout/parameters.dart
@@ -0,0 +1,119 @@
+import 'package:flutter/material.dart';
+
+import '../provider/data.dart';
+import '../utils/game_utils.dart';
+
+class Parameters {
+
+  static Container buildParametersSelector(Data myProvider) {
+    return Container(
+      padding: EdgeInsets.all(2),
+      margin: EdgeInsets.all(2),
+      child: Column(
+        mainAxisSize: MainAxisSize.min,
+        mainAxisAlignment: MainAxisAlignment.center,
+        children: [
+          Parameters.buildParameterSelector(myProvider, 'difficulty'),
+          SizedBox(height: 5),
+          Parameters.buildParameterSelector(myProvider, 'size'),
+          SizedBox(height: 5),
+
+          Parameters.buildStartGameButton(myProvider),
+        ],
+      ),
+    );
+  }
+
+  static Container buildStartGameButton(Data myProvider) {
+    return Container(
+      margin: EdgeInsets.all(2),
+      padding: EdgeInsets.all(2),
+
+      child: Table(
+        defaultColumnWidth: IntrinsicColumnWidth(),
+        children: [
+          TableRow(
+            children: [
+              Column(
+                children: [
+                  Image(
+                    image: AssetImage('assets/skins/empty.png'),
+                    fit: BoxFit.fill,
+                  ),
+                ]
+              ),
+              Column(
+                children: [
+                  FlatButton(
+                    child: Container(
+                      child: Image(
+                        image: AssetImage('assets/icons/button_start.png'),
+                        fit: BoxFit.fill,
+                      ),
+                    ),
+                    onPressed: () => GameUtils.startGame(myProvider),
+                  ),
+                ]
+              ),
+              Column(
+                children: [
+                  Image(
+                    image: AssetImage('assets/skins/empty.png'),
+                    fit: BoxFit.fill,
+                  ),
+                ]
+              ),
+            ],
+          ),
+        ]
+      )
+    );
+  }
+
+  static Table buildParameterSelector(Data myProvider, String parameterCode) {
+    List availableValues = myProvider.getParameterAvailableValues(parameterCode);
+
+    return Table(
+      defaultColumnWidth: IntrinsicColumnWidth(),
+      children: [
+        TableRow(
+          children: [
+            for (var index = 0; index < availableValues.length; index++)
+              Column(
+                children: [
+                  _buildParameterButton(myProvider, parameterCode, availableValues[index])
+                ]
+              ),
+          ],
+        ),
+      ],
+    );
+  }
+
+  static FlatButton _buildParameterButton(Data myProvider, String parameterCode, String parameterValue) {
+    String currentValue = myProvider.getParameterValue(parameterCode).toString();
+
+    bool isActive = (parameterValue == currentValue);
+    String imageAsset = 'assets/icons/' + parameterCode + '_' + parameterValue + '.png';
+
+    return FlatButton(
+      padding: EdgeInsets.all(2),
+      child: Container(
+        decoration: BoxDecoration(
+          color: Colors.white,
+          borderRadius: BorderRadius.circular(10),
+          border: Border.all(
+            color: isActive ? Colors.blue : Colors.white,
+            width: 10,
+          ),
+        ),
+        child: Image(
+          image: AssetImage(imageAsset),
+          fit: BoxFit.fill,
+        ),
+      ),
+      onPressed: () => myProvider.setParameterValue(parameterCode, parameterValue),
+    );
+  }
+
+}
diff --git a/lib/main.dart b/lib/main.dart
index a317c62..dd1afff 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,10 +1,15 @@
 import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
 
 import 'provider/data.dart';
 import 'screens/home.dart';
 
-void main() => runApp(MyApp());
+void main() {
+  WidgetsFlutterBinding.ensureInitialized();
+  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
+      .then((value) => runApp(MyApp()));
+}
 
 class MyApp extends StatelessWidget {
   @override
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 26ba515..d637afa 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -2,4 +2,105 @@ import 'package:flutter/foundation.dart';
 
 class Data extends ChangeNotifier {
 
+  // Configuration available values
+  List _availableDifficultyLevels = ['easy', 'medium', 'hard', 'nightmare'];
+  List _availableSizes = ['10x10', '15x15', '20x20'];
+
+  List get availableDifficultyLevels => _availableDifficultyLevels;
+  List get availableSizes => _availableSizes;
+
+  // Application default configuration
+  String _level = 'medium';
+  String _size = '15x15';
+  String _skin = 'default';
+
+  // Game data
+  bool _stateRunning = false;
+  bool _gameWin = false;
+  bool _gameFail = false;
+  int _sizeVertical = null;
+  int _sizeHorizontal = null;
+  List _cells = [];
+
+  String get level => _level;
+  void updateLevel(String level) {
+    _level = level;
+    notifyListeners();
+  }
+
+  String get size => _size;
+  int get sizeVertical => _sizeVertical;
+  int get sizeHorizontal => _sizeHorizontal;
+  void updateSize(String size) {
+    _size = size;
+    _sizeHorizontal = int.parse(_size.split('x')[0]);
+    _sizeVertical = int.parse(_size.split('x')[1]);
+    notifyListeners();
+  }
+
+  String get skin => _skin;
+  void updateSkin(String skin) {
+    _skin = skin;
+    notifyListeners();
+  }
+
+  getParameterValue(String parameterCode) {
+    switch(parameterCode) {
+      case 'difficulty': { return _level; }
+      break;
+      case 'size': { return _size; }
+      break;
+    }
+  }
+
+  List getParameterAvailableValues(String parameterCode) {
+    switch(parameterCode) {
+      case 'difficulty': { return _availableDifficultyLevels; }
+      break;
+      case 'size': { return _availableSizes; }
+      break;
+    }
+  }
+
+  setParameterValue(String parameterCode, String parameterValue) {
+    switch(parameterCode) {
+      case 'difficulty': { updateLevel(parameterValue); }
+      break;
+      case 'size': { updateSize(parameterValue); }
+      break;
+    }
+  }
+
+  List get cells => _cells;
+  void updateCells(List cells) {
+    _cells = cells;
+    notifyListeners();
+  }
+
+  void setCellAsExplored(int row, int col) {
+    _cells[row][col].isExplored = true;
+    notifyListeners();
+  }
+
+  bool get stateRunning => _stateRunning;
+  void updateStateRunning(bool stateRunning) {
+    _stateRunning = stateRunning;
+    updateGameWin(false);
+    updateGameFail(false);
+    notifyListeners();
+  }
+
+  bool get gameWin => _gameWin;
+  void updateGameWin(bool gameWin) {
+    print('updateGameWin: ' + (gameWin ? 'true' : 'false'));
+    _gameWin = gameWin;
+    notifyListeners();
+  }
+
+  bool get gameFail => _gameFail;
+  void updateGameFail(bool gameFail) {
+    print('updateGameFail: ' + (gameFail ? 'true' : 'false'));
+    _gameFail = gameFail;
+    notifyListeners();
+  }
 }
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 7c832f2..39c0be2 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -1,57 +1,53 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
+import '../layout/game.dart';
+import '../layout/parameters.dart';
 import '../provider/data.dart';
+import '../utils/game_utils.dart';
 
 class Home extends StatelessWidget {
   static const String id = 'home';
 
   @override
   Widget build(BuildContext context) {
-    Data _myProvider = Provider.of<Data>(context);
+    Data myProvider = Provider.of<Data>(context);
 
-    return Scaffold(
-      appBar: AppBar(
-        title: Text('Minehunter game'),
-      ),
-      body: Center(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.center,
-          children: <Widget>[
-            Container(
-              child: Column(
-                mainAxisSize: MainAxisSize.min,
-                mainAxisAlignment: MainAxisAlignment.center,
-                children: [
-                  Container(
-                    margin: EdgeInsets.all(4),
-                    padding: EdgeInsets.all(4),
-                    decoration: BoxDecoration(
-                      color: Colors.blue,
-                      borderRadius: BorderRadius.circular(4),
-                      border: Border.all(
-                        color: Colors.green,
-                        width: 4,
-                      ),
-                    ),
-                    child: FlatButton(
-                      child: Text(
-                        '💣',
-                        textAlign: TextAlign.center,
-                        style: TextStyle(
-                          fontSize: 50,
-                          fontWeight: FontWeight.w600,
-                          color: Colors.black,
-                        ),
-                      ),
-                    ),
-                  ),
-                ],
+    List<Widget> menuActions = [];
+
+    if (myProvider.stateRunning) {
+      menuActions = [
+        FlatButton(
+          child: Container(
+            decoration: BoxDecoration(
+              borderRadius: BorderRadius.circular(4),
+              border: Border.all(
+                color: Colors.blue,
+                width: 4,
               ),
             ),
-          ],
+            margin: EdgeInsets.all(8),
+            child: Image(
+              image: AssetImage('assets/icons/button_back.png'),
+              fit: BoxFit.fill
+            ),
+          ),
+          onPressed: () => GameUtils.resetGame(myProvider),
         ),
+      ];
+    }
+
+    return Scaffold(
+      appBar: AppBar(
+        actions: menuActions,
       ),
+      body: SafeArea(
+        child: Center(
+          child: myProvider.stateRunning
+            ? Game.buildGameWidget(myProvider)
+            : Parameters.buildParametersSelector(myProvider)
+        ),
+      )
     );
   }
 }
diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart
new file mode 100644
index 0000000..743a832
--- /dev/null
+++ b/lib/utils/board_utils.dart
@@ -0,0 +1,195 @@
+import '../entities/cell.dart';
+import '../provider/data.dart';
+
+class BoardUtils {
+
+  static printGrid(List cells) {
+    print('');
+    print('-------');
+    for (var rowIndex = 0; rowIndex < cells.length; rowIndex++) {
+      String row = '';
+      for (var colIndex = 0; colIndex < cells[rowIndex].length; colIndex++) {
+        row += cells[rowIndex][colIndex].isMined ? 'X' : '.';
+      }
+      print(row);
+    }
+    print('-------');
+    print('');
+  }
+
+  static List createEmptyBoard(int sizeHorizontal, int sizeVertical) {
+    int index = 0;
+    List cells = [];
+    for (var rowIndex = 0; rowIndex < sizeVertical; rowIndex++) {
+      List row = [];
+      for (var colIndex = 0; colIndex < sizeHorizontal; colIndex++) {
+        row.add(Cell(false));
+      }
+      cells.add(row);
+    }
+
+    return cells;
+  }
+
+  static int getMinesCount(int sizeHorizontal, int sizeVertical, String level) {
+    int minesCountRatio = 0;
+    switch(level) {
+      case 'easy': {
+        minesCountRatio = 5;
+      }
+      break;
+      case 'medium': {
+        minesCountRatio = 10;
+      }
+      break;
+      case 'hard': {
+        minesCountRatio = 15;
+      }
+      break;
+      case 'nightmare': {
+        minesCountRatio = 20;
+      }
+      break;
+    }
+
+    int minesCount = ((sizeHorizontal * sizeVertical) * minesCountRatio / 100).round();
+
+    print('Mines count: ' + minesCount.toString());
+
+    return minesCount;
+  }
+
+  static List createBoard(int sizeHorizontal, int sizeVertical, String level) {
+    List cells = createEmptyBoard(sizeHorizontal, sizeVertical);
+
+    // Shuffle cells to put random mines
+    List cellsArray = [];
+    for (var row = 0; row < sizeVertical; row++) {
+      for (var col = 0; col < sizeHorizontal; col++) {
+        cellsArray.add([row, col]);
+      }
+    }
+    cellsArray.shuffle();
+
+    // Put random mines on board
+    int minesCount = getMinesCount(sizeHorizontal, sizeVertical, level);
+    for (var mineIndex = 0; mineIndex < minesCount; mineIndex++) {
+      cells[cellsArray[mineIndex][0]][cellsArray[mineIndex][1]].isMined = true;
+    }
+
+    // Compute all mines counts on cells
+    for (var row = 0; row < sizeVertical; row++) {
+      for (var col = 0; col < sizeHorizontal; col++) {
+        cells[row][col].minesCountAround = getMinesCountAround(cells, row, col);
+      }
+    }
+
+    printGrid(cells);
+
+    return cells;
+  }
+
+  static void walkOnCell(Data myProvider, int row, int col) {
+    print('Walk on cell [' + col.toString() + ',' + row.toString() + ']');
+    myProvider.setCellAsExplored(row, col);
+
+    if (myProvider.cells[row][col].minesCountAround == 0) {
+      List safeCells = getAllSafeCellsAround(myProvider.cells, row, col);
+      for (var safeCellIndex = 0; safeCellIndex < safeCells.length; safeCellIndex++) {
+        int safeCellRow = safeCells[safeCellIndex][0];
+        int safeCellCol = safeCells[safeCellIndex][1];
+        if (!myProvider.cells[safeCellRow][safeCellCol].isExplored) {
+          walkOnCell(myProvider, safeCellRow, safeCellCol);
+        }
+      }
+    }
+  }
+
+  static List getAllSafeCellsAround(List cells, int row, int col) {
+    int sizeHorizontal = cells.length;
+    int sizeVertical = cells[0].length;
+
+    List safeCellsCoordinates = [];
+
+    if (cells[row][col].minesCountAround == 0) {
+      for (var deltaRow = -1; deltaRow <= 1; deltaRow++) {
+        for (var deltaCol = -1; deltaCol <= 1; deltaCol++) {
+          int candidateRow = row + deltaRow;
+          int candidateCol = col + deltaCol;
+          if (
+            (candidateRow >= 0 && candidateRow < sizeVertical)
+            &&
+            (candidateCol >= 0 && candidateCol < sizeHorizontal)
+            &&
+            !cells[candidateRow][candidateCol].isExplored
+          ) {
+            safeCellsCoordinates.add([candidateRow, candidateCol]);
+          }
+        }
+      }
+    }
+
+    return safeCellsCoordinates;
+  }
+
+  static int getMinesCountAround(List cells, int row, int col) {
+    int sizeHorizontal = cells.length;
+    int sizeVertical = cells[0].length;
+
+    int minesCountAround = 0;
+    for (var deltaRow = -1; deltaRow <= 1; deltaRow++) {
+      for (var deltaCol = -1; deltaCol <= 1; deltaCol++) {
+        if (
+          (row + deltaRow >= 0 && row + deltaRow < sizeVertical)
+          &&
+          (col + deltaCol >= 0 && col + deltaCol < sizeHorizontal)
+          &&
+          (cells[row + deltaRow][col + deltaCol].isMined)
+        ) {
+          minesCountAround++;
+        }
+      }
+    }
+
+    return minesCountAround;
+  }
+
+  static bool checkBoardIsSolved(Data myProvider) {
+    print('checkBoardIsSolved');
+    List cells = myProvider.cells;
+    int sizeHorizontal = cells.length;
+    int sizeVertical = cells[0].length;
+
+    myProvider.updateGameWin(false);
+    myProvider.updateGameFail(false);
+
+    for (var row = 0; row < sizeVertical; row++) {
+      for (var col = 0; col < sizeHorizontal; col++) {
+        // Walked on a mine
+        if (cells[row][col].isMined == true && cells[row][col].isExplored == true) {
+          myProvider.updateGameFail(true);
+          return false;
+        }
+      }
+    }
+
+    for (var row = 0; row < sizeVertical; row++) {
+      for (var col = 0; col < sizeHorizontal; col++) {
+        if (
+          // Mine not already found
+          (cells[row][col].isMined == true && cells[row][col].isMarked == false)
+          ||
+          // Safe cell marked as mined
+          (cells[row][col].isMined == false && cells[row][col].isMarked == true)
+        ) {
+          return false;
+        }
+      }
+    }
+
+    print('-> ok all mines found!');
+    myProvider.updateGameWin(true);
+
+    return true;
+  }
+}
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
new file mode 100644
index 0000000..03e51b7
--- /dev/null
+++ b/lib/utils/game_utils.dart
@@ -0,0 +1,22 @@
+import '../provider/data.dart';
+import '../utils/board_utils.dart';
+
+class GameUtils {
+
+  static void resetGame(Data myProvider) {
+    myProvider.updateStateRunning(false);
+  }
+
+  static void startGame(Data myProvider) {
+    print('Starting game: ' + myProvider.size + ' - ' + myProvider.level);
+    myProvider.updateSize(myProvider.size);
+    myProvider.updateStateRunning(true);
+    myProvider.updateCells(
+      BoardUtils.createBoard(
+        myProvider.sizeHorizontal,
+        myProvider.sizeVertical,
+        myProvider.level
+      )
+    );
+  }
+}
diff --git a/pubspec.lock b/pubspec.lock
index 8fe48be..f57afd8 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,7 +7,7 @@ packages:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.6.1"
+    version: "2.7.0"
   boolean_selector:
     dependency: transitive
     description:
@@ -73,7 +73,7 @@ packages:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0"
+    version: "1.4.0"
   nested:
     dependency: transitive
     description:
@@ -141,7 +141,7 @@ packages:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.3.0"
+    version: "0.4.0"
   typed_data:
     dependency: transitive
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index cd7aa59..3915ac9 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -19,3 +19,5 @@ flutter:
   uses-material-design: true
   assets:
     - assets/files/
+    - assets/icons/
+    - assets/skins/
-- 
GitLab