Ir para conteúdo

blg

Members
  • Total de itens

    6
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre blg

  1. blg

    ajuda jogo do 15 em c

    ja arrumei os parâmetros da função encontrarPosicao, mas continua com erro de inicialização inválida, já dei uma pesquisada mas não estou conseguindo resolver
  2. blg

    ajuda jogo do 15 em c

    error called object 'encontrarPosicao' is not a function or function pointer int posicao[MAX] = encontrarPosicao(casa); ^ como posso resolver isso ?
  3. blg

    ajuda jogo do 15 em c

    Pessoal, to tentando fazer um joguinho simples em c, pra ser executado na linha de comando usando matriz ,o jogo é o jogo do 15 tem que ordenar as casas de 1 a 15 , usando comandos como 3 d (numero 3, direita); estou tendo um erro ao chamar uma função dentro de outra. se alguém puder dar uma olhadinha no código e me dar alguma dica eu agradeço! #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include<stdbool.h> #define MAX 20 #define CASAS 15 bool jogo(); void realizarJogada(int, char [*]); int encontrarPosicao(size_t, size_t, int[*][*], int); void mostrarTabuleiro(size_t, size_t, int[*][*]); void mostrarCasa(int); void montarTabuleiro(size_t, size_t, int[*][*]); int main(){ srand((unsigned) time(0)); char CMD_SAIR[] = "sair"; char CMD_CIMA[] = "c"; char CMD_BAIXO[] = "b"; char CMD_DIREITA[] = "d"; char CMD_ESQUERDA[] = "e"; int M = 4; int N = 4; int tabuleiro[M][N]; montarTabuleiro(M, N, tabuleiro); mostrarTabuleiro(M, N, tabuleiro); jogo(); bool jogo(){ while(true){ char jogada[MAX]; printf("digite a jogada: "); gets(jogada); if(CMD_SAIR == jogada){ break; } char *token = NULL; token = strtok(jogada, " "); int casa = 0; char direcao[] = ""; casa = atoi(token); printf("digite um comando! ex: '3 d' ou 'sair'"); realizarJogada(casa, direcao); mostrarTabuleiro(M, N, tabuleiro); } } void realizarJogada(int casa, char direcao[], int encontrarPosicao){ int posicao[MAX] = encontrarPosicao(casa); //***** erro aqui******* int linha = posicao[0]; int coluna = posicao[1]; int linhaAntes = linha; int colunaAntes = coluna; if(CMD_DIREITA == direcao){ coluna++; } if(CMD_ESQUERDA == direcao){ coluna--; } if(CMD_CIMA == direcao){ linha--; } if(CMD_BAIXO == direcao){ linha++; } int aux = tabuleiro[linha][coluna]; if(aux == 0){ tabuleiro[linha][coluna] = casa; tabuleiro[linhaAntes][colunaAntes] = 0; } } int encontrarPosicao(size_t linha, size_t coluna, int tabuleiro[linha][coluna], int casa){ int i, j; for(i = 0; i< linha; i++){ for(j = 0; j < coluna; j++){ if(casa == tabuleiro[j]){ int retorno [MAX] = {i, j}; return retorno[MAX]; } else{ printf("casa não encontrada"); } } } } void mostrarTabuleiro(size_t linha, size_t coluna, int tab[linha][coluna]){ int i, j; for(i = 0; i < linha; i++){ for(j = 0;j < coluna; j++){ int casa = tab[j]; mostrarCasa(casa); } printf("\n\r"); } } void mostrarCasa(int casa){ if(0 == casa){ printf(" "); } else{ printf("%d ", casa); } printf("\t"); } void montarTabuleiro(size_t linha, size_t coluna, int tab[linha][coluna]){ int i, j; for(i = 0;i < linha; i++){ for(j = 0;j < coluna; j++){ tabuleiro[j] = rand() % (CASAS + 1); printf("%d\n", tab[j]); } } } return EXIT_SUCCESS; }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.