Escolar Documentos
Profissional Documentos
Cultura Documentos
Departamento de Computação
O posicionamento inicial das peças é dado pela figura abaixo. Por causa dos índices da matriz na
linguagem C, vamos considerar que a linha 0 é onde fica o Rei branco (linha 1 na figura abaixo) e a
linha 7 é onde fica o Rei preto (linha 8 na figura abaixo). As torres vão ficar na coluna 0 (coluna ‘a’
na figura abaixo) e na coluna 7 (coluna ‘h’ na figura abaixo).
Cada jogada será representada pelo struct jogada abaixo, que indicará a posição de onde a peça
saiu e a posição na qual ela foi movida.
struct jogada{
int linhaDe, colunaDe, linhaPara, colunaPara;
};
O que deve ser implementado?
1) Uma função IniciaTabuleiro (int tab[8][8]) que receba um tabuleiro e coloque as peças na posição
inicial, de acordo com as explicações acima.
2) Uma função que mostre o tabuleiro na tela, de forma “semelhante” à figura acima (mostrando os
códigos no lugar das peças). Pode ser utilizado o sistema de coordenadas da matriz (linhas e colunas
entre 0 e 7).
3) O programa deve então perguntar ao usuário qual peça ele quer mover, por meio da linha e coluna
correspondente. Se a posição não possuir nenhuma peça, o programa vai pedir que o usuário digite
outra posição. Quando for escolhida uma peça, o programa vai numerar na tela as opções possíveis
de movimentação da peça escolhida e vai perguntar qual dessas opções o usuário deseja. Isso pode
ser feito utilizando um vetor de struct jogada e mostrando ao usuário os índices desse vetor e as
posições finais correspondentes à peça escolhida. O usuário digitará o índice (numeração) desejado.
4) O programa deve permitir a captura de peças, retirando a peça capturada da posição em que estava
e colocando ali a peça que fez a captura. O programa encerra quando um rei for capturado e deve
informar quem foi o jogador vencedor. A captura só pode ser feita por uma peça do jogador
adversário, nunca por outra peça do mesmo jogador.
1) A mudança de turno entre os jogadores (brancas e pretas), ou seja, o usuário pode escolher
livremente qual peça deseja movimentar, independente de qual peça foi movida anteriormente.
2) A possibilidade de movimentação inicial dos peões em duas casas.
3) A proibição de executar jogadas ilegais, que exponham o rei a cheque(-mate).
4) Roque, captura en passant e promoção de peão.
5) Encerramentos por afogamento, por repetição e por limite de turnos sem captura.