Ir para conteúdo
Fórum Script Brasil

Sandro Generoso

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Sandro Generoso

Sandro Generoso's Achievements

0

Reputação

  1. Olá programadores de C inteligentes, eu sou novo no Fórum, mas preciso de ajuda... estou a programar um jogo de xadrez em linguagem C, as peças estão funcionando bem em geral, mas há uma peça que está bem teimosa, o CAVALO! extrai parte do código de forma bem besta(o programa inteiro não é assim), para ver se vocês conseguem ver o problema: #include <stdio.h> char xadrez[8][8] = { {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', 'c', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '} }; int ImprimeTabuleiro() { system("cls"); int linha, coluna, repete; for (linha=0; linha<8; linha++) { for(repete=0; repete<3; repete++) { for (coluna=0; coluna<8; coluna++) { char peca = xadrez[linha][coluna]; char letra = ((linha+coluna)%2==0) ? '\xB2' : ' '; letra = (repete == 1 && peca != ' ') ? peca : letra; if((linha+coluna)%2==0) { printf("\xB2\%c\xB2", letra); } else { printf(" %c ", letra); } } printf(" \n"); } } } int movimento(int LinOri, int ColOri, int LinDes, int ColDes) { int mover = 0; char peca; int Vertical = abs(LinDes - LinOri); int Horizontal = abs(ColDes - ColOri); if((peca == 'c') && (Vertical == 2 && Horizontal == 1)) { mover = 1; } if((peca == 'c') && (Vertical == 1 && Horizontal == 2)) { mover = 1; } if(mover == 1) { xadrez[LinDes][ColDes] = xadrez[LinOri][ColOri]; xadrez[LinOri][ColOri] = ' '; return 1; } else { return 2; } } int main() { int LinOri, LinDes, ColOri, ColDes; while (1) { ImprimeTabuleiro(); printf("\nCOORDENADAS DE ORIGEM DA PEÇA: (linha, coluna): "); scanf("%d %d", &LinOri, &ColOri); printf("\nCOORDENADAS DE DESTINO DA PEÇA: (linha, coluna): "); scanf("%d %d", &LinDes, &ColDes); if (movimento(LinOri,ColOri,LinDes,ColDes) != 1) { printf("\nERRO: O CAVALO não SE MOVIMENTA ASSIM!"); getch(); } } getch(); return 0; } Na teoria, se eu digitasse 3 3 e depois 1 2, era para ele se movimentar. por favor, me digam qual é o problema... Obrigado!
×
×
  • Criar Novo...