Percursos
/
Haskell
Haskell
/
Exercícios
/
Ataque da rainha
Ataque da rainha

Ataque da rainha

Médio

Instruções

Dadas as posições de duas rainhas num tabuleiro de xadrez, indica se estão posicionadas de forma a poderem atacar-se uma à outra.

No jogo de xadrez, uma rainha pode atacar peças que estejam na mesma linha, coluna ou diagonal.

Um tabuleiro de xadrez pode ser representado por um array 8 por 8.

Assim, se te disserem que a rainha branca está em c5 (indexado a zero na coluna 2, linha 3) e a rainha preta em f2 (indexado a zero na coluna 5, linha 6), então sabes que a disposição é a seguinte:

Um tabuleiro de xadrez com duas rainhas. As setas que partem da rainha em c5 indicam as direções possíveis de captura ao longo da coluna, da linha e da diagonal.

Também consegues responder se as rainhas se podem atacar uma à outra. Neste caso, a resposta seria sim, podem, porque ambas as peças partilham uma diagonal.

Créditos

A imagem do tabuleiro de xadrez foi feita por habere-et-dispertire com LaTeX e o pacote chessboard de Ulrike Fischer.

Sugestões

Para completar este exercício, tens de implementar as seguintes funções:

  • boardString
  • canAttack

As assinaturas de tipo já estão lá, mas cabe-te a ti definir as funções.

As posições são indicadas como tuplos de dois elementos:

  • O primeiro elemento é a linha (fileira, em termos de xadrez).
  • O segundo elemento é a coluna (coluna, em termos de xadrez).
  • (0, 0) é o canto superior esquerdo do tabuleiro, (0, 7) é o canto superior direito,
  • (7, 0) é o canto inferior esquerdo e (7, 7) é o canto inferior direito.
Editar via GitHub A ligação abre numa nova janela ou separador
Haskell Exercism

Estás pronto para começar Ataque da rainha?

Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.