Problema do tabuleiro em harmonia

From AdonaiMedrado.Pro.Br
Jump to: navigation, search

Dificuldade Única

Considere uma representação de um tabuleiro de Xadrez em uma matriz de String 8x8 e o seguinte padrão:

  • T para Torre (movimenta-se N casas na vertical e horizontal).
  • C para Cavalo (movimenta-se em L, um L por vez).
  • B para Bispo (movimenta-se N casas em diagonal).
  • Q para Rainha (movimenta-se N casas na vertical, horizontal e diagonal).
  • K para Rei (movimenta-se uma casa por vez na vertical, horizontal e diagonal).

O tabuleiro é considerado em harmonia caso as peças possam se movimentar com liberdade sem que uma seja capaz de atacar a outra.

Faça uma classe Xadrez com um método VerificarHarmonia que receberá uma String[][] de 8x8 em que cada elemento representa uma casa com o padrão acima, caso a casa não esteja ocupada ele terá o caracter 0 (zero).

O método deverá retornar o booleano true caso o tabuleiro esteja em harmonia e false caso contrário.

Exemplo 1

Entrada

{ {"0","0","0","0","0","0","0","0"},
  {"0","T","0","0","0","0","0","0"},
  {"0","0","0","0","0","0","0","0"},
  {"0","0","K","0","0","0","0","0"},
  {"0","0","0","0","0","0","Q","0"},
  {"0","0","0","0","0","0","0","0"},
  {"0","0","0","0","0","0","0","0"},
  {"B","0","0","0","0","C","0","0"} }

Saída

  true

Exemplo 2

Entrada

{ {"0","0","0","0","0","0","0","0"},
  {"0","C","0","0","0","0","0","0"},
  {"0","0","0","0","0","0","0","0"},
  {"0","0","K","0","0","0","0","0"},
  {"0","0","0","0","Q","0","0","0"},
  {"0","B","0","0","0","0","0","0"},
  {"0","0","0","K","0","0","0","0"},
  {"0","0","0","0","0","0","0","0"} }

Saída

  false