# Rainbow Baseball

As cores são representadas por inteiros, entre `0` e `quantidade de bases -1`. O espaço vazio é representado por um valor especial `-1`. A cor de cada base é seu rank. Logo, a base `1` é de cor `1`. Na interface gráfica, a base `0` é a azul escura enquanto que a base `1` é a fuscia.

Uma vez que todos os jogadores no campo estejam em suas bases, o espaço vazio deve estar na última base, ou seja, a de rank `getBasesAmount()-1`.

## FFunções para recuperar as dimensões do mundo

    [!java|c]int [/!]getQuantidadeDeBases() [!scala]:Int[/!]

Retorna a quantidade de bases neste campo.

    [!java|c]int [/!]getQuantidadeDePosições() [!scala]:Int[/!]

Retorna a quantidade de posições de jogadores por base neste campo.

## Funções para recuperar o estado do mundo

    [!java|c]int [/!]getHoleBase() [!scala]:Int[/!]

Retorna a base na qual o espaço vazio está localizado.

    [!java|c]int [/!]getHolePosition() [!scala]:Int[/!]

Retorna a posição do espaço vazio na sua base

    [!java|c]int [/!]getCorDoJogador([!java|c]int [/!]base[!scala]:Int[/!], [!java|c]int [/!]posição[!scala]:Int[/!])  [!scala]:Int[/!]

Retorna a cor do jogador numa dada posição.

    [!java]boolean [/!][!c]int [/!]estáOrdenado()  [!scala]:Boolean[/!]

Retorna se todos os jogadores em campo estão em seus "home".

    [!java]boolean [/!][!c]int [/!]baseEstáOrdenada([!java|c]int [/!]base)  [!scala]:Boolean[/!]

Retorna se todos os jogadores de uma dada base estão em "home".

    [!java]boolean [/!][!c]int [/!]estáSelecionado()  [!scala]:Boolean[/!]

Retorna verdadeiro se o mundo atual estiver selecionado na interface.

## Funções para mudar o mundo

    [!java|c]void [/!]mover([!java|c]int [/!]base[!scala]:Int[/!], [!java|c]int [/!]posição[!scala]:Int[/!])

Move um dado jogador para um espaço vazio. Vai levantar uma IllegalArgumentException se o jogador especificado não estiver próximo do espaço vazio (no máximo a uma base de distância).