Ir ao conteúdo
  • Cadastre-se

C Trabalho - Xadrez em C


Joao Neyri

Posts recomendados

Bom dia gente, estou aqui para pedir ajudar ou idéias de como fazer um trabalho que me foi passado esse mês e estou perdidasso!

 

Segue o trabalho abaixo.

 

"Deve-se implementar um projeto no devc++ implementando as diversas funcionalidades já desenvolvidas de forma modular, ou seja, funções diferentes para cada tarefa. Ex:

- Uma função que aloca um tabuleiro dinamicamente
- Uma função que inicializa o tabuleiro, preenchendo todas as peças
- Uma função que imprime o tabuleiro, com coordenadas nas bordas para orientação
- Uma função que aplica uma jogada no tabuleiro baseado em coordenadas

Para esta tarefa, deve se observar as coordenadas de xadrez: https://pt.wikipedia.org/wiki/Notação_algébrica_de_xadrez . A função que aplica jogadas deve ler uma letra e um numero ao invés de dois números, ex. a 7, b 8, c 2; e após traduzir para as coordenadas da matriz. OBS. podem deixar um espaço entre a letra e a coordenada numérica, diferente de como é a notação oficial, ex. a 7 ao invés de a7, pois isto facilita a tarefa. Pode-se usar, por exemplo um scanf("%c %f"...


O projeto deve conter pelo menos 3 arquivos:


- chess.c (ou xadrez.c, caso preferirem): contendo a implementação das funções
- chess.h: header que contém as assinaturas e vai ser adicionado ao arquivo main
- main.c: arquivo que vai conter a função main e chamar as funções do jogo de xadrez. Deve conter um laço para continuamente pedir jogadas para serem feitas no tabuleiro, e imprimí-lo."

 

Nâo comecei ainda o trabalho pois estou apavorado kkkk, nao estou acostumado a fazer coisas do 0, meu professor sempre passava uma base antes, mas desta vez ele quer que façamos do 0! Se alguem conseguir me dar alguma luz de como fazer ficarei grato

Link para o comentário
Compartilhar em outros sites

Primeiro tenha certeza de quais são os requisitos do programa.

 

 

Nesse enunciado não diz que tem verificar a validade da jogada, não diz que o programa deve verificar e seguir regras do jogo de xadrez, não diz que deve verificar se a peça movida é uma das peças do jogador da vez, não precisa checar vitória, derrota ou empate.

 

Se este realmente é o caso, isso simplifica muito o problema, pois pode tratar como se fosse um simples tabuleiro físico real, ou seja, não existe limitação, ou seja qualquer peça pode ser movida para qualquer lugar do tabuleiro, as limitações são impostas pelas pessoas jogando o jogo que seguem as regras do jogo de xadrez.

 

Então você só precisa garantir algumas funcionalidades simples pra tornar todas as jogadas do xadrez possíveis:

 

- Qualquer peça pode ser movida a qualquer momento, e "vez do jogador branco ou preto" não importa: Isso serve para permitir fazer a jogada ROQUE, na qual 2 peças do mesmo jogador/cor/lado são movidas em 1 única jogada.

 

- Ser possível adicionar/substituir peças no tabuleiro: Para permitir substituir um peão que chegou a última linha do tabuleiro por outra peça (normalmente a rainha).

 

- Ser possível retirar/remover peças do tabuleiro: Para permitir fazer a captura de pião En passant .

 

E seu programa não é responsável por seguir as regras do jogo, os jogadores devem segui-las.

 

 

 

Entretanto se a proposta for fazer um jogo de xadrez completo, com todas as restrições das regras, movimentos possíveis, jogadas validadas, e verificação de condições de fim de jogo, o programa se torna muito mais complexo.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...