package Ġmodel Ċ Ċ interface ĠPiece Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġinteger Ġvalue Ġassociated Ġwith Ġthis Ġpiece Ġ( based Ġon Ġtype Ġand Ġcolor ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġto Value (): ĠInt ĊĊĠĠĠ Ġfun Ġis White (): ĠBoolean ĊĊĠĠĠ Ġfun Ġset Black () ĊĊĠĠĠ Ġfun Ġset White () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġwhether Ġthis Ġpiece Ġhas Ġmoved Ġthis Ġgame ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhas Moved (): ĠBoolean ĊĊĠĠĠ Ġfun Ġset Moved () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġall Ġthe Ġsquares Ġthat Ġthis Ġpiece Ġis Ġattack ing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Attack ing S quares ( loc : ĠPair < Int , ĠInt >, Ġb : ĠBoard ): ĠMutable List < Pair < Int , ĠInt >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġall Ġthe Ġmoves Ġassociated Ġwith Ġthis Ġpiece , Ġgiven Ġthe Ġlocation Ġand Ġboard ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Moves ( loc : ĠPair < Int , ĠInt >, Ġb : ĠBoard ): ĠMutable List < Move > Ċ }