Ícone Hollow Knight

Aguarde um pouquinho ... As informações do DEV estão carregando!

Contato

yunguerdvorak@hotmail.com

+55 (22) 99205-6168

Chess C

Projeto: Programa em C

Tipo: Universitário

Sobre: Um jogo de Xadrez em C

O programa Chess C foi feito para a disciplina de Programação de Computadores II da UFF, criado na linguagem C. Tem como objetivo ser um jogo de Xadrez que você possa jogar contra uma IA de podamento de árvore para as jogadas.

Para executar o programa é necessário fazer o download do mesmo no GitHub, assim que feito o download, execute o main.c, assim que executado para fazer as jogadas é necessário digitar a linha e coluna da peça que deseja mover, após isso digite a linha e coluna para qual posição deseja mover a peça.

O Desafio

O desafio na criação desse projeto começa primeiro em entender como funciona o Xadrez, como cada peça funciona, entendendo como elas se movem, e quais são os possíveis finais para o jogo. Após isso é necessário pôr em prática a programação, definir como será feito a diferenciação das peças e suas possíveis jogadas, como sera feito o tabuleiro para o jogo, e definir a regras para os possíveis finas do jogo, que são: vitória para as brancas, vitória para as pretas ou afogamento.

Já para parte da IA foi necessário que cada jogada tenha uma pontuação, para que se possa escolher a melhor jogada possível de acordo com essa pontuação, por exemplo, comer uma peça vale X pontos, e se por acaso essa peça logo em seguida é comida essa jogada vai valer Y pontos, e se X - Y for um número menor que 0 essa jogada é considerada ruim. E é assim que a IA funciona, ela pega todas jogadas até um nível Z da árvore e analisa as melhores jogadas naquele momento para que a melhor jogada seja tomada.

Desafios

Estruturando o Código

Para a estruturação do código na parte das peças e tabuleiro, usamos um arquivo txt onde as posições sem peças são números 0 e cada peça possui um número de identificação, números positivo para as peças brancas e negativo para as peças pretas, para termos o tabuleiro já pronto para o jogo. Para as peças definimos as possíveis movimentações com casos de IF com checagem para limitação do tamanho do tabuleiro.

Já para as jogadas em si utiliza-se lista encadeada, deixando registrado cada jogada feita, e cada possível jogada com as peças, isso tudo a fim de facilitar na parte da IA, dessa forma será mais fácil analisar as possíveis jogadas, já que ela verifica até um nível Z da árvore de jogadas para saber qual é a melhor jogada possível a se fazer, considerando os pontos já explicado anteriormente.

Estruturação do Código

Exemplos do Código

Code Preview