package Ġt ict act oe Ċ Ċ import Ġjava . lang . Number FormatException Ċ Ċ fun Ġplayer W ins ( input Table : ĠList < CharArray >, Ġplayer : ĠChar ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ(( input Table [ 0 ][ 0 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 0 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 0 ][ 2 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 1 ][ 0 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 2 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 2 ][ 0 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 2 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 0 ][ 0 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 0 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 0 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 0 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 1 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 0 ][ 2 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 2 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 2 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 0 ][ 0 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 2 ] Ġ== Ġplayer ) Ġ|| ĊĠĠĠĠĠĠĠ Ġ( input Table [ 0 ][ 2 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 1 ][ 1 ] Ġ== Ġplayer Ġ&& Ġinput Table [ 2 ][ 0 ] Ġ== Ġplayer )) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ fun Ġprint Table ( table : ĠList < CharArray >) Ġ{ ĊĠĠĠ Ġprintln ("- ". repeat ( 1 0 )) ĊĠĠĠ Ġfor Ġ( row Ġin Ġtable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("| Ġ${ row [ 0 ]} Ġ${ row [ 1 ]} Ġ${ row [ 2 ]} Ġ| ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġprintln ("- ". repeat ( 1 0 )) Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġinput Table Ġ= ĠlistOf ( CharArray ( 3 ) Ġ{ Ġ'_' Ġ}, ĠChar Array ( 3 ) Ġ{ Ġ'_' Ġ}, ĠChar Array ( 3 ) Ġ{ Ġ'_' Ġ}) ĊĠĠĠ Ġprint Table ( input Table ) ĊĠĠĠ Ġvar Ġinput Num Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġend Message Ġ= Ġ"" ĊĠĠĠ Ġwhile Ġ( input Table . any Ġ{ Ġit . contains ('_ ') Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" Enter Ġthe Ġcoordinates : Ġ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( x , Ġy ) Ġ= Ġread Line () !!. split (" Ġ", Ġlimit Ġ= Ġ 2 ). map Ġ{ Ġit . toInt () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x Ġ! in Ġ 1 .. 3 Ġ|| Ġy Ġ! in Ġ 1 .. 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Coordinates Ġshould Ġbe Ġfrom Ġ 1 Ġto Ġ 3 !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( input Table [ x Ġ- Ġ 1 ][ y Ġ- Ġ 1 ] Ġ!= Ġ'_ ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" This Ġcell Ġis Ġoccupied ! ĠChoose Ġanother Ġone !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Table [ x Ġ- Ġ 1 ][ y Ġ- Ġ 1 ] Ġ= Ġif Ġ( input Num Ġ% Ġ 2 Ġ== Ġ 0 ) Ġ' X ' Ġelse Ġ' O ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Num ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" You Ġshould Ġenter Ġnumbers !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIndex OutOfBoundsException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Invalid ĠInput !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprint Table ( input Table ) ĊĠĠĠĠĠĠĠ Ġif Ġ( player W ins ( input Table , Ġ' X ')) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Message Ġ= Ġ" X Ġwins " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( player W ins ( input Table , Ġ' O ')) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Message Ġ= Ġ" O Ġwins " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( end Message . isEmpty ()) Ġend Message Ġ= Ġ" Draw " ĊĊĠĠĠ Ġprintln ( end Message ) Ċ } ĊĊ