val Ġesc : ĠString Ġ= ĠCharacter . toString ( 2 7 ) Ċ val Ġstart Blue Ġ= Ġ"$ esc [ 3 0 ; 4 4 m " Ċ val Ġstart Grey Ġ= Ġ"$ esc [ 3 0 ; 4 7 m " Ċ val Ġstart White Ġ= Ġ"$ esc [ 3 0 ; 3 0 m " Ċ val Ġt orre Ġ= Ġ"$ esc [ 3 0 ; 3 0 m âĻ ľ " Ċ val Ġend Ġ= Ġ"$ esc [ 0 m " Ċ var Ġvalidator Ġ= Ġ 0 Ċ val Ġalphabet Array Ġ= Ġ" abcdefgh ijkl mnopqrst uvw xyz ". toCharArray () Ċ val Ġnumbers Array Ġ= Ġ" 1 2 3 4 5 6 7 8 9 0 ". toCharArray () Ċ Ċ // Dev olve Ġuma Ġstring Ġque Ġcont Ã©m Ġa Ġinform aÃ§Ã£o Ġdo Ġtab ule iro . ĠDev em Ġadapt ar Ġa ĠfunÃ§Ã£o Ġque Ġf izer am Ġna Ġparte Ġ 1 Ġpara Ġconstr uir Ġo Ġtab ule iro Ġa Ġpartir Ġdo Ġarray Ġde Ġpe Ã§ as Ġque ĠÃ© Ġpass ado Ġcomo ĠparÃ¢ metro . Ċ fun Ġbuild Board ( num Columns : ĠInt , Ġnum Lines : ĠInt , Ġshow Legend : ĠBoolean , Ġshow Pieces : ĠBoolean , Ġpieces : ĠArray < Pair < String , ĠString > ?> ): ĠString Ġ{ ĊĊĊĠĠĠ Ġwhile Ġ( validator Ġ<= Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. num Lines ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 .. num Columns ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// First ĠLine ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ult ima ĠCol una ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ== Ġnum Columns Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ start Blue ĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Rest antes ĠCol un as ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ>= Ġ 1 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show Legend ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalphabet Ġ= Ġalphabet Array [ j Ġ- Ġ 1 ]. toUpperCase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue Ġ Ġ$ alphabet Ġ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue ĠĠĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Prime ira ĠCol una ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue ĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġin Ġ 1 Ġuntil Ġnum Lines ) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ== Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show Legend ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumbers Ġ= Ġnumbers Array [ i Ġ- Ġ 1 ]. toUpperCase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue Ġ$ numbers Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue ĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( j Ġin Ġ 1 Ġuntil Ġnum Columns ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ% Ġ 2 Ġ== Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ% Ġ 2 Ġ== Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start White ĠĠĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Grey ĠĠĠĠ Ġ$ end ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ% Ġ 2 Ġ== Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Grey ĠĠĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start White ĠĠĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( j Ġ== Ġnum Columns ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ start Blue ĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Last ĠLine ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġnum Lines Ġ&& Ġj Ġ< Ġnum Columns Ġ&& Ġj Ġ> Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue ĠĠĠĠ Ġ$ end ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// x Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( i Ġ== Ġnum Lines Ġ&& Ġj Ġ== Ġ 0 Ġ|| Ġi Ġ== Ġnum Lines Ġ&& Ġj Ġ== Ġnum Columns ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("$ start Blue ĠĠ Ġ$ end ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalidator Ġ= Ġ 1 ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvalidator Ġ= Ġ 0 ĊĊĠĠĠ Ġreturn Ġ" N Ãºmero Ġde Ġcol un as : Ġ$ num Columns ĠN Ãºmero Ġde Ġlin has : Ġ$ num Lines Ġ$ show Legend Ġ Ġ$ show Pieces " Ċ Ċ } Ċ Ċ // A Ġpartir Ġdo ĠnÃºmero Ġde Ġcol un as Ġe Ġlin has , ĠserÃ¡ Ġnecess Ã¡rio Ġconstr uir Ġe Ġret orn ar Ġum Ġarray Ġde ĠPair Ġ( pe Ã§ as Ġdo Ġtab ule iro ). ĠEsta Ġest rut ura ĠestÃ¡ Ġexp lic ada Ġna Ġsec Ã§Ã£o ĠâĢľ E str ut ura Ġdo Ġj ogo âĢĿ. Ċ fun Ġcreate Initial Board ( num Columns : ĠInt , Ġnum Lines : ĠInt ): ĠArray < Pair < String , ĠString > ?> Ġ{ ĊĠĠĠ Ġreturn ĠarrayOf () Ċ } ĊĊĊĊĊ