package Ġcom . big screen . binary game . line Ċ Ċ import Ġjava . util .* Ċ Ċ const Ġval ĠGAME _ MODE _ ONE Ġ= Ġ 1 Ċ const Ġval ĠGAME _ MODE _ TWO Ġ= Ġ 2 Ċ Ċ data Ġclass ĠLine ( ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġlines : ĠInt Array Ġ= Ġint ArrayOf (), ĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠInt Ġ= Ġ 0 Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠLine ĊĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= Ġother . type ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! Arrays . equals ( lines , Ġother . lines )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġother . result ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult 1 Ġ= Ġtype ĊĠĠĠĠĠĠĠ Ġresult 1 Ġ= Ġ 3 1 Ġ* Ġresult 1 Ġ+ ĠArrays . hashCode ( lines ) ĊĠĠĠĠĠĠĠ Ġresult 1 Ġ= Ġ 3 1 Ġ* Ġresult 1 Ġ+ Ġresult ĊĠĠĠĠĠĠĠ Ġreturn Ġresult 1 ĊĠĠĠ Ġ} Ċ }