package Ġcom . github . z sol tk . che sso . ui . chess . square . decoration Ċ Ċ import Ġandroidx . compose . foundation . Canvas Ċ import Ġandroidx . compose . foundation . gest ures . detect Tap Gest ures Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . draw scope . Draw Scope Ċ import Ġandroidx . compose . ui . graphics . draw scope . Draw Style Ċ import Ġandroidx . compose . ui . graphics . draw scope . Fill Ċ import Ġandroidx . compose . ui . graphics . draw scope . Stroke Ċ import Ġandroidx . compose . ui . input . pointer . pointer Input Ċ import Ġcom . github . z sol tk . che sso . ui . chess . square . Square Render Properties Ċ import Ġcom . github . z sol tk . che sso . ui . chess . square . Square Decoration Ċ import Ġjava . util . UUID Ċ Ċ object ĠTarget Marks Ġ: ĠSquare Decoration Ġ{ ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġoverride Ġfun Ġrender ( properties : ĠSquare Render Properties ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( properties . is Possible Move Without Capture ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPossible Move Without Capture ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġproperties . onClick , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġproperties . size Modifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( properties . is Possible Capture ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPossible Capture ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġproperties . onClick , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġproperties . size Modifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠPossible Move Without Capture ( ĊĠĠĠĠĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCircle Decorated Square ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġradius Ġ= Ġ{ Ġsize . min Dimension Ġ/ Ġ 6 f Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Style Ġ= Ġ{ ĠFill Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠPossible Capture ( ĊĠĠĠĠĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCircle Decorated Square ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġradius Ġ= Ġ{ Ġsize . min Dimension Ġ/ Ġ 3 f Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Style Ġ= Ġ{ ĠSt roke ( width Ġ= Ġsize . min Dimension Ġ/ Ġ 1 2 f ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠCircle Decorated Square ( ĊĠĠĠĠĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġradius : ĠDraw Scope . () Ġ-> ĠFloat , ĊĠĠĠĠĠĠĠ Ġdraw Style : ĠDraw Scope . () Ġ-> ĠDraw Style , ĊĠĠĠĠĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCanvas ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. pointer Input ( UUID . randomUUID ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetect Tap Gest ures ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonPress Ġ= Ġ{ ĠonClick () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Circle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Dark Gray , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradius Ġ= Ġradius ( this ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ 0 . 2 5 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġdraw Style ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ