/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠSh r yne Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ċ Ġ* Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ċ Ġ* Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ċ Ġ* Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ċ Ġ* Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ċ Ġ* Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS Ċ Ġ* ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL Ċ Ġ* ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING Ċ Ġ* ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER Ċ Ġ* ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġgame _ logic . game _ 2 0 4 8 Ċ Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠAn Ġarray Ġfor Ġthe Ġpossible Ġmoves Ġof Ġ 2 0 4 8 . ĠIt Ġassumes Ġthat Ġit Ġis Ġalways Ġset Ċ Ġ* Ġfrom Ġstart Ġto Ġend Ġand Ġreduces Ġthe Ġamount Ġof Ġclearing Ġand Ġsetting Ġbased Ċ Ġ* Ġon Ġthis Ġassumption . ĠClear ing Ġold Ġvalues Ġworks Ġby Ġusing Ġ[ set ] Ġto Ġoverwrite Ċ Ġ* Ġthe Ġold Ġvalue . Ċ Ġ* Ċ Ġ* ĠThis Ġclass Ġis Ġmutable Ġand Ġnot Ġthread - safe . Ġ[ set ] Ġhas Ġto Ġbe Ġcalled Ġfrom Ġleft Ċ Ġ* Ġto Ġright Ġas Ġit Ġuses Ġthe Ġgiven Ġindex Ġ+ Ġ 1 Ġas Ġits Ġsize . Ċ Ġ* ĠNote Ġthat Ġthe Ġmethods Ġdon 't Ġcheck Ġfor Ġcorrect Ġbounds . ĠThe Ġmaximum Ġsize Ġof Ċ Ġ* Ġthis Ġarray Ġis Ġ[ Move . AMOUNT ]. ĠTrying Ġto Ġset Ġon Ġan Ġindex Ġabove Ġthis Ġsize Ġwill Ċ Ġ* Ġresult Ġin Ġan Ġerror . Ċ Ġ*/ Ċ class ĠPossible Moves Array Ġ: ĠSmall Collection < Move > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcontainer Ġ= ĠArray ( Move . AMOUNT ) Ġ{ ĠMove . LEFT Ġ} Ġ// ĠDummy Ġvalue Ġonly ĊĠĠĠ Ġ// Ġto Ġinitialize Ġthe Ġarray ĊĠĠĠ Ġoverride Ġvar Ġsize Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġget ( index : ĠInt ): ĠMove Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontainer [ index ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġset ( index : ĠInt , Ġelem : ĠMove ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer [ index ] Ġ= Ġelem ĊĠĠĠĠĠĠĠ Ġsize Ġ= Ġindex Ġ+ Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĊĠĠĠĠĠĠĠ ĠArrays . toString ( Arrays . copyOf Range ( container , Ġ 0 , Ġsize )) Ċ }