Ir ao conteúdo

Como programar um jogo de xadrez em C


Lady x

Posts recomendados

Postado

Preciso escrever um programa em C de xadrez mas sem usar qualquer função além de main() nem laços e sem usar vetores e ponteiros.O programa deve receber 2 peças e suas posições apenas(não precisa ser o jogo inteiro e sim só essas peças).Como devo escrever isso?(sou iniciante nessa linguagem C).

  • Membro VIP
Postado

E como o programa deve funcionar? Duas pessoas jogam? Ao inserir uma peça como é informado seu tipo(peão, torre, bispo, etc)? Dê mais detalhes sobre o funcionamento do programa para que possamos te ajudar melhor.:)

Abraço.

Postado

Bom o programa deve receber duas entradas seguidas para peças de xadrez num tabuleiro 8x8 e responder com a descrição do tabuleiro na notação forsyth.A posição inicial do jogo é anotada como:

tcbdrbct/pppppppp/8/8/8/8/PPPPPPPP/TCBDRBCT

Não é um jogo completo,ele só recebe essas duas entradas.

Também não pode usar laços(while, for, etc), recursão, vetores, ponteiros, funções ou estruturas.Pode ser usado o comando getchar e afins, bem como if-else e switch.

Ficarei muito feliz se puder me ajudar.

Abraço

  • Membro VIP
Postado

De acordo com o formato do tabuleiro de xadrez(aqui) você precisará que cada peça possua três informações:

Um char para identificar sua posição horizontal.

Um int para identificar sua posição vertical.

Mais um char para identificar a peça(vale lembrar que, como está sendo utilizada a notação Forsyth as peças brancas são representadas com caracteres maiúsculos e as peças pretas com caracteres minúsculos).

Ou seja, será necessário um total de 6 variáveis para representar a posição e o tipo das duas peças.

Como não se pode utilizar iteração, e como eu acredito que goto também não seja permitido(pricipalmente por ser uma prática não muito aconselhável de programação), é possível que haja bastante repetição de código, então a ideia inicial é:

veja se na linha 8 há alguma peça

caso haja verifique primeiro se são as duas ou se é só uma

se forem duas verifique a ordem e elabore uma impressão na notação Forsyth

sendo uma apenas verifique qual é e elabore uma impressão na notação Forsyth

se não houver nenhuma peça imprima 8

imprima um traço( - )

repita o procedimento para as linhas 7, 6, 5, 4, 3, 2 e 1.

A lógica para cada uma dessas etapas é necessário que você quebre um pouco a cabeça para elaborar. Eu tive umas idéias mais simples e menos custosas, mas pra usá-las eu precisaria de alguma estrutura de iteração ou de arrays, então essa "força bruta" foi o que consegui pensar, deve haver algum método mais interessante, mas no momento não estou conseguindo ver, talvez depois surja alguma ideia melhor.

Caso alguma parte não tenha ficado clara é só perguntar, abraço.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!