Os intervalos representam uma sequência de um ou vários números inteiros consecutivos. São criados ao ligar dois números inteiros com ...
1..5
Os intervalos podem ser crescentes ou decrescentes. Incluem sempre os valores inicial e final.
Um intervalo implementa o protocolo Enumerable, o que significa que podes usar funções do módulo Enum para trabalhar com intervalos.
Como entusiasta de xadrez, gostarias de escrever a tua própria versão do jogo. É verdade que já existem por aí muitas implementações de xadrez disponíveis online, mas a tua vai ser única!
Mas antes de poderes deixar a imaginação soltar-se à vontade, tens de tratar do básico. Vamos começar por gerar o tabuleiro.
Cada casa do tabuleiro de xadrez é identificada por um par letra-número. As colunas verticais de casas, chamadas files, são identificadas de A a H. As linhas horizontais de casas, chamadas ranks, são numeradas de 1 a 8.
Implementa a função rank_range/0. Deve devolver um intervalo de números inteiros, de 1 a 8.
Chessboard.rank_range()
Implementa a função file_range/0. Deve devolver um intervalo de números inteiros, do ponto de código da letra A maiúscula até ao ponto de código da letra H maiúscula.
Chessboard.file_range()
Implementa a função ranks/0. Deve devolver uma lista de números inteiros, de 1 a 8. Não escrevas a lista à mão, gera-a a partir do intervalo devolvido pela função rank_range/0.
Chessboard.ranks()
# => [1, 2, 3, 4, 5, 6, 7, 8]
Implementa a função files/0. Deve devolver uma lista de letras (strings), de "A" a "H". Não escrevas a lista à mão, gera-a a partir do intervalo devolvido pela função file_range/0.
Chessboard.files()
# => ["A", "B", "C", "D", "E", "F", "G", "H"]
Inscreve-te no Exercism para aprenderes e dominares Elixir com 58 conceitos168 exercícios, e mentoria humana real, tudo grátis.