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 é o rank dela. 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 nas bases deles, 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 [/!]getBasesAmount() [!scala]:Int[/!]
Retorna a quantidade de bases neste campo.
[!java|c]int [/!]getPositionsAmount() [!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 base dela
[!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 [/!]isSorted()  [!scala]:Boolean[/!]
Retorna se todos os jogadores em campo estão nos "home" deles.
[!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 [/!]isSelected()  [!scala]:Boolean[/!]
Retorna true 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).