package Ġcom . github . g mk or ni lov . chess board . model . moves Ċ Ċ import Ġcom . github . g mk or ni lov . chess board . model . Animation Info Ċ import Ġcom . github . g mk or ni lov . chess board . model . Board Ċ import Ġcom . github . g mk or ni lov . chess board . model . Cell Info Ċ import Ġcom . github . g mk or ni lov . chess board . model . pieces . King Ċ import Ġcom . github . g mk or ni lov . chess board . model . pieces . Pawn Ċ import Ġcom . github . g mk or ni lov . chess board . model . pieces . Piece Ċ import Ġjava . util .* Ċ Ċ internal Ġopen Ġclass ĠTransition Move ( val Ġpiece : ĠPiece , Ġval Ġfrom : ĠCell Info , Ġval Ġto : ĠCell Info ) Ġ: ĠMove Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġmove ( board : ĠBoard ) Ġ{ ĊĠĠĠĠĠĠĠ Ġboard . remove Piece ( from ) ĊĠĠĠĠĠĠĠ Ġboard . add Piece ( piece , Ġto ) ĊĠĠĠĠĠĠĠ Ġpiece . position Ġ= Ġto ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġundo ( board : ĠBoard ) Ġ{ ĊĠĠĠĠĠĠĠ Ġboard . remove Piece ( to ) ĊĠĠĠĠĠĠĠ Ġboard . add Piece ( piece , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġpiece . position Ġ= Ġfrom ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Animations Info ( is White : ĠBoolean ): ĠList < Animation Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpiece , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell Info . to Animation Indexes ( from , Ġis White ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell Info . to Animation Indexes ( to , Ġis White ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Move Cell (): ĠCell Info Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Move Not ation ( board : ĠBoard ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( piece Ġ! is ĠP awn ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpiece . toString (). toUpperCase ( Locale . ROOT ) Ġ+ Ġboard . get Extra Not ation ( piece , Ġto ) Ġ+ Ġto . notation ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġto . notation ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }