Ċ import Ġkotlin . system . exit Process Ċ Ċ fun Ġstart Game (){ ĊĊĠĠĠ Ġplayers () ĊĠĠĠ Ġgame () Ċ Ċ } Ċ Ċ fun Ġgame (){ ĊĊĠĠĠ Ġboard () Ċ Ċ } Ċ Ċ // Ãī Ġnest a ĠfunÃ§Ã£o Ġque ĠÃ© Ġmo str ado Ġo Ġtab ule iro Ġe ĠÃ© Ġon de Ġpe de Ġconstant ement e Ġpara Ġcada Ġj og ador Ġco loc ar Ġas Ġcoord en adas Ġde Ġpart ida Ġe Ġde Ġori gem . Ċ // ĠT amb Ã©m ĠÃ© Ġa qui Ġque Ġd Ã¡ Ġa Ġop Ã§Ã£o Ġde Ġret orn ar Ġao Ġmenu Ġprincipal , Ġclic ando Ġna Ġte cla ĠâĢľ m âĢĿ. Ċ // ĠÃī Ġde Ġnot ar Ġque Ġos Ġargument os Ġwhite Player Ġe Ġblack Player ĠsÃ£o Ġos Ġnome s Ġdados Ġpe los Ġutiliz ador , Ġem Ġque Ġo Ġwhite Player ĠÃ© Ġo Ġnome Ġdo Ġ 1 o Ġj og ador Ġe Ġo Ġblack Player ĠÃ© Ġo Ġnome Ġdo Ġ 2 o Ġj og ador . Ċ fun Ġstart New Game Ġ( white Player : ĠString , Ġblack Player : ĠString , Ġpieces Ġ: ĠArray < Pair < String , ĠString >? >, Ġtotal Pieces And Turn Ġ: ĠArray < Int ? >, num Columns : ĠInt , num Lines : ĠInt , Ġshow Legend : ĠBoolean , Ġshow Pieces : ĠBoolean ){ ĊĊĠĠĠ Ġbuild Board ( num Columns Ġ= Ġnum Columns Ġ+ Ġ 1 , Ġnum Lines Ġ= Ġnum Lines Ġ+ Ġ 1 , Ġshow Legend Ġ= Ġshow Legend , Ġshow Pieces Ġ= Ġshow Pieces , Ġ Ġpieces Ġ= ĠarrayOf Null s ( 5 )) ĊĊĠĠĠ Ġprintln ("\ n " Ġ+ Ġ" Menu -> Ġm ;" Ġ+ Ġ"\ n ") ĊĊĠĠĠ Ġval Ġuser Input Ġ= Ġread Line () ĊĊĊĠĠĠ Ġif ( user Input . toString () Ġ== Ġ" m " Ġ|| Ġuser Input . toString () Ġ== Ġ" M "){ ĊĊĠĠĠĠĠ Ġmenu () ĊĊĠĠĠ Ġ} else Ġif ( user Input . toString () Ġ== Ġ" 2 "){ ĊĊĠĠĠĠĠĠĠ Ġexit Process ( 1 ) ĊĊĠĠĠ Ġ} else { ĊĊĠĠĠĠĠĠĠ Ġbuild Board ( num Columns Ġ= Ġnum Columns Ġ+ Ġ 1 , Ġnum Lines Ġ= Ġnum Lines Ġ+ Ġ 1 , Ġshow Legend Ġ= Ġshow Legend , Ġshow Pieces Ġ= Ġshow Pieces , Ġ Ġpieces Ġ= ĠarrayOf Null s ( 5 )) ĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ Ċ // Valid a Ġse Ġas Ġcoord en adas Ġescol hid as Ġest Ã£o Ġdentro Ġdo Ġtab ule iro . Ċ fun Ġis Coordinate Inside Che ss Ġ( coord : ĠPair < Int , ĠInt >, num Columns : ĠInt , num Lines : ĠInt ): Boolean { ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ // A Ġpartir Ġde Ġuma Ġstring Ġ( por Ġexemplo ĠâĢľ 2 a âĢĿ ), Ġesta ĠfunÃ§Ã£o Ġconver te Ġas Ġcoord en adas Ġem Ġn Ãº mer os Ġ( por Ġexemplo Ġreturn ĠPair ( 2 , 2 ) Ġcom Ġa Ġstring Ġde Ġentrada Ġde ĠâĢľ 2 a âĢĿ ). Ċ // ĠSe Ġas Ġcoord en adas Ġfore m Ġinv Ã¡l idas , Ġdeve Ġret orn ar Ġnull . ĠA ĠString Ġpass ada Ġdeve Ġser Ġcase Ġins ensitive , Ġou Ġseja , Ġace itar ĠâĢľ 2 a âĢĿ Ġou ĠâĢľ 2 A âĢĿ. Ċ fun Ġget Coordinates Ġ( read Text : ĠString ?): ĠPair < Int , ĠInt >? { ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ // A Ġpartir Ġdo Ġtipo Ġde Ġpe Ã§a Ġe Ġda Ġc Ã´ r , Ġdev olve Ġo ĠUnicode Ġres pet ivo . ĠCas o Ġa Ġpe Ã§a Ġe / ou Ġa Ġc Ã´ r Ġse jam Ġinv Ã¡l idos , Ġdeve Ġret orn ar Ġuma ĠString Ġcom Ġum Ġes pa Ã§o Ġ( âĢľ ĠâĢľ ). ĠVer Ã£o Ġque Ġeste Ġes pa Ã§o Ġv ai Ġfacilit ar Ġo Ġdes en ho Ġdo Ġtab ule iro . Ċ fun Ġconvert StringTo Unicode ( piece : ĠString , Ġcolor : ĠString ): ĠString { ĊĠĠĠ Ġreturn Ġ" 0 " Ċ }