How do I get the position the user wants?

Asked

Viewed 87 times

0

It works like this, I want to get all the possibilities of playing the horse in chess, but how do I know the position the user wants? How do I do? I don’t know much about c. Actually with programming, I’m starting. Please, I need a light!

#include <stdio.h>
#include <locale.h>
#include <stdlib.h>

int main() {
  setlocale(LC_ALL, "Portuguese");

  int vetor[8], posicao, i, j;
  int matriz[8][8];
  matriz[0][0] = 'a1';
  matriz[0][1] = 'b1';
  matriz[0][2] = 'c1';
  matriz[0][3] = 'd1';
  matriz[0][4] = 'e1';
  matriz[0][5] = 'f1';
  matriz[0][6] = 'g1';
  matriz[0][7] = 'h1';

  matriz[1][0] = 'a2';
  matriz[1][1] = 'b2';
  matriz[1][2] = 'c2';
  matriz[1][3] = 'd2';
  matriz[1][4] = 'e2';
  matriz[1][5] = 'f2';
  matriz[1][6] = 'g2';
  matriz[1][7] = 'h2';

  matriz[2][0] = 'a3';
  matriz[2][1] = 'b3';
  matriz[2][2] = 'c3';
  matriz[2][3] = 'd3';
  matriz[2][4] = 'e3';
  matriz[2][5] = 'f3';
  matriz[2][6] = 'g3';
  matriz[2][7] = 'h3';

  matriz[3][0] = 'a4';
  matriz[3][1] = 'b4';
  matriz[3][2] = 'c4';
  matriz[3][3] = 'd4';
  matriz[3][4] = 'e4';
  matriz[3][5] = 'f4';
  matriz[3][6] = 'g4';
  matriz[3][7] = 'h4';

  matriz[4][0] = 'a5';
  matriz[4][1] = 'b5';
  matriz[4][2] = 'c5';
  matriz[4][3] = 'd5';
  matriz[4][4] = 'e5';
  matriz[4][5] = 'f5';
  matriz[4][6] = 'g5';
  matriz[4][7] = 'h5';

  matriz[5][0] = 'a6';
  matriz[5][1] = 'b6';
  matriz[5][2] = 'c6';
  matriz[5][3] = 'd6';
  matriz[5][4] = 'e6';
  matriz[5][5] = 'f6';
  matriz[5][6] = 'g6';
  matriz[5][7] = 'h6';

  matriz[6][0] = 'a7';
  matriz[6][1] = 'b7';
  matriz[6][2] = 'c7';
  matriz[6][3] = 'd7';
  matriz[6][4] = 'e7';
  matriz[6][5] = 'f7';
  matriz[6][6] = 'g7';
  matriz[6][7] = 'h7';

  matriz[7][0] = 'a8';
  matriz[7][1] = 'b8';
  matriz[7][2] = 'c8';
  matriz[7][3] = 'd8';
  matriz[7][4] = 'e8';
  matriz[7][5] = 'f8';
  matriz[7][6] = 'g8';
  matriz[7][7] = 'h8';

  printf("-----JOGO DE XADREZ-----\n");
  printf("Posição do cavalo: \n");
  scanf("Posição: %c\n", &posicao);
  vetor[0] = posicao;

  for (i = 0; i < 8; i++) {
    for (j = 0; j < 8; j++) {
      if (vetor[0] = matriz[8][8]) {

      }
    }
  }
}
  • Eae man, I understand your logic, but there are some problems. First: your matrix is of type int(integers) and vc is putting a string(text) inside. Second: vector is also int type and vc is waiting to receive something like "A8"(which is a string). Either vc uses everything as int or everything as string. I have an example of chess board in C, but it is good vc think a little, problems help in learning

1 answer

0

   // OBTÉM QUANTIDADE DE ROWS e itera no laço
  for (i = 0; i < sizeof(matriz) / sizeof(matriz[0]); i++) {
    //OBTÉM QUANTIDADE DE COLS
    for (j = 0; j < sizeof(matriz[0]) / sizeof(matriz[0][0]; j++)) {
      //COMPARA SE O TEXTO DIGITADO CONFERE COM ALGUM VALOR NA MATRIZ
      if (strcmp(matriz[i][j],posicao)) {
          printf("Posição escolhida: %c \n", matriz[i][j]);
      }
    }
  }

Maybe this can help you. Don’t forget to declare the type matrix CHAR

char matriz[8][8];

Browser other questions tagged

You are not signed in. Login or sign up in order to post.