JOGO DE XADREZ EM DELPHI: CAPÍTULO 4 - MOVIMENTO DA RAINHA E PEÃO

Adicionado em 16/04/2023

Compartilhar em:

Bem vindos ao capítulo 4 do nosso tutorial de como fazer um jogo de Xadrez em Delphi. Nesse tutorial, veremos como validar os movimentos da rainha e começaremos a criar as regras para o movimento do peão.

Vamos iniciar com o nosos tabuelrio:

Vamos começar declarando a função que irá validar o movimento da rainha:

Agora pressione as teclas Ctrl+Shift+C para declarar a sua função.

Para validar o movimento da rainha temos que lembrar o tipo de moviimento que a rainha realiza dentro do tabuleiro de xadrez. A rainha é uma das peças mais importantes do jogo visto que pode se mover tanto em diagonais quanto em linhas retas. Dessa forma, a rainha combina tanto os movimentos do bispo quanto da torre.

Isso facilita muito a nossa vida, visto que já criamos as funções para validar o movimento do bisco e da torre. Sendo assim, digite o seguinte código dentro da função do movimento da rainha:

Nessa código, utilizamos em nossa primeira linha o resultado da função (Result) como sendo a combinação das variáveis booleanas que checam o movimento do bispo e da torre. Utilizamos o comando lógico OR para dar essa resposta. Vale lembrar como funciona a álgebra booleana: se considerarmos verdadeiro (True) como 1 e falso (False) como 0, o resultado do ou (OR) é como se fosse uma soma. Assim sendo, se o movimento do bispo for verdadeiro e da torre for falso, a soma dos dois movimentos com o OR será verdadeiro, validando assim o movimento da rainha. O mesmo é funciona quando o movimento da torre é verdadeiro e a torre é falso.

Veja como esse código é simples. Em teoria somente essa linha seria necessária para validar o movimento da rainha. No entanto, escrevemos os comandos seguintes para assegurar que a rainha não irá comer peças de mesma cor. Isso adianta um pouco a seção onde discutiremos sobre a captura de peças.

Agora vamos iniciar a validação do movimento do peão. O movimento do peão é um dos mais trabalhosos visto que o peão tem propriedades como:

  • Pular duas casas no primeiro movimento
  • Realizar EnPassant
  • Somente andar para frente mas comer em diagonal
  • Promoção da peça ao chegar do outro lado do tabuleiro

Nesse capítulo vamos mostrar como fazer o movimento do peão para frente e como saltar as duas primeiras casas caso seja o primeiro movimento.

Declare a função para validar o movimento do peão:

Novamente pressione a combinação de teclas Ctrl+Shift+C para declarar a função no código principal:

Agora digite os seguintes comandos dentro da função:

Nesse caso, tivemos que dividimos o código para o peão branco e o peão preto. Fizemos isso para poder validar o primeiro movimento do peão caso estivesse na casa linha 2 ou na linha 7.

Como havíamos feito para a validaçao de movimento de peças em tutoriais anteriores (Tutorial 1, Tutorial 2 e Tutorial 3), iniciamos assumindo que o movimento do Peão é válido, ou seja, Result := True;. A primeira averiguiação que fazemos é para ver se a nova posição do peão ira coincidir com uma própria peça. Caso sim, o movimento será inválido, ou seja, Result := False;.

Posteriormente, inciamos com a análise para o peão branco. Note que deixamos comentários no código em Delphi (dado por ⁄⁄) a fim de facilitar o entendimento do código. Os comentários são partes de código que são ignorados pelo compilador na hora de executar o software.

Verificamos se a peça é branca analisando se a letra na casa é diferenciando pela letra maiúscula (minúsculas são as pretas). Na próxima linha, verificamos se é o primeiro movimento do peão, ou seja, se ele ainda está na linha 6 para as brancas. O próximo condicional verifica se houve a mudança de coluna e não somente de linha. Nesse caso, o movimento teria que ser interpreatdo como a captura de uma peça, e por isso, se o peão for Branco, o movimento só será falso caso a peça seja de mesma cor, ou seja branco.

O segundo condicional prevê que o movimento só sera invalidade caso o peão volte pra trás, ou se pular mais de duas casas.

O condicional para o primeiro movimento está finalizado, agora criamos um ELSE para analisar quando não for o primeiro movimento do peão. Nesse caso, verificamos se o peão tentou mudar de coluna. Nesse momento, preferimos colocar como resultado somente o condicional Falso, visto que trataremos de captura de peças mais para frente. Já o segundo condicional invalida o movimento caso o peão ande pra trás ou ande mais de uma casa.

Aqui terminamos a primeira parte do código de movimento para peões brancos. Podemos então dar um Ctrl+C e Ctrl+V e fazer a mesma coisa para os peões pretos, somente modificando a primeira linha que deve ser a linha 7, modificando movimentos que são para trás, e lembrando de modificar as letras maiúsculas por minúsculas e vice-versa.

Ao executar o código, será possível testar os movimentos das peças do peão. Nesse momento, se tudo estiver correto, você conseguira mover os peões brancos e pretos para frente, permitindo que eles pulem uma casa durante o primeiro movimento, como na Figura abaixo:

Nos próximos tutoriais trataremos de captura de peças, e de finalizar movimentos dos peões e começar com movimentos do rei.

Bom, é isso pessoal. Se tiverem qualquer dúvida não deixem de entrar em contato.

< Capítulo 3 - Capítulo 5 >