Você está na página 1de 2

Universidade Federal Fluminense

Instituto de Ciência e Tecnologia

Departamento de Computação

Trabalho “Eu vencerei Beth Harmon” (primeira parte)

A primeira parte do trabalho consiste em modelar (representar através de código de programação)


um jogo de xadrez e indicar as possibilidades de movimentação de cada peça. O Tabuleiro será
representado por uma matriz 8x8 de números inteiros. Cada peça será representada pelo código
abaixo:
Peça Branca Preta
Peão 1 -1
Cavalo 2 -2
Bispo 3 -3
Torre 4 -4
Rainha (também chamada de Dama) 5 -5
Rei 6 -6

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.

O que não é necessário implementar (ainda)?

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.

Você também pode gostar