package Ġpl . mm . session 1 . human Agent Ċ Ċ import Ġpl . mm . session 1 .* Ċ import Ġjava . lang . Index OutOfBoundsException Ċ Ċ class ĠHuman Agent ( piece : ĠPiece ) Ġ: ĠAgent < T ic T ac To e Environment >( piece ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġgame Finished ( env : ĠT ic T ac To e Environment ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake Move ( env : ĠT ic T ac To e Environment ): ĠCoord s Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" Choose Ġrow Ġand Ġcolumn Ġto Ġset Ġ${ env . active Player Piece } Ġe . g . Ġ 2 , 3 : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( row , Ġcol ) Ġ= Ġread Line () !!. split (',') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcol V Ġ= ĠInteger . parseInt ( col ) Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow V Ġ= ĠInteger . parseInt ( row ) Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCoord s ( row V , Ġcol V ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Given Ġvalue Ġis Ġnot Ġa Ġnumber ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIndex OutOfBoundsException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" You Ġneed Ġto Ġprovide Ġrow Ġand Ġcolumn Ġvalues ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ