Ir ao conteúdo
  • Cadastre-se

Cego em labirinto de vidro em c, e caça palavras em c


Monkeyrafa

Posts recomendados

Simplesmente não consigo resolver os problemas abaixo, já tentei de tudo.

 

segue as questões em anexo:

 

Minhas tentativas para a questão 2, que eu não sei por que não estão funcionando.

1 -

 

#include <stdio.h>

int main ()
{

int i=0,j=0;
int mat[100][100], linhas=0,colunas=0;

printf("Defina o numero de linhas do labirinto\n");
scanf("%i", &linhas);

printf("Defina o numero de colunas do labirinto\n");
scanf("%i", &colunas);
printf("Defina valores entre:\n 0:posições possiveis\n 2:paredes \n 3:saidas,so existem nas laterais do labirinto\n");
for (i=0;i<linhas;i++)
{
    for(j=0;j<colunas;j++)
    {

        printf("Posicao: linha %i / coluna %i\n",i,j);
        scanf("%i",mat[j]);


       }
    }

printf(" Escolha a posicao inicial do cego\n Linha:\n");
scanf("%i",&i);

printf("Coluna\n");
scanf("%i",&j);

printf("Posicao inical: [%i][%i]\n",i,j);

while (mat[j]!=3)
{

if ((mat[i-1][j]==0 || mat[i-1][j]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
{
    mat[j]=1;
    i--;
     printf("Andou para linha %i coluna %i\n", i,j);
}
else
{
     if ((mat[i-1][j+1]==0 || mat[i-1][j+1]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
        {
            mat[j]=1;
            i--;
            j++;
     printf("Andou para linha %i coluna %i\n", i,j);

        }
    else
        {
            if ((mat[j+1]==0 || mat[j+1]==3)&& i< linhas && j< colunas && i>=0 && j>=0)
                {


                    mat[j]=1;
                    j++;
                    printf("Andou erro para linha %i coluna %i\n", i,j);
                }
            else
                {
                    if ((mat[i+1][j+1]==0 || mat[i+1][j+1]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
                        {
                            mat[j]=1;
                            i++;
                            j++;
                             printf("Andou para linha %i coluna %i\n", i,j);

                        }
                    else
                        {
                            if ((mat[i+1][j]==0 || mat[i+1][j]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
                                {
                                    mat[j]=1;
                                    i++;
                                     printf("Andou para linha %i coluna %i\n", i,j);

                                }
                            else
                            {
                                if ((mat[i+1][j]==0 || mat[i+1][j]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
                                    {
                                        mat[j]=1;
                                        i++;
                                         printf("Andou para linha %i coluna %i\n", i,j);

                                    }
                                else
                                {
                                    if ((mat[i+1][j-1]==0 || mat[i+1][j-1]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
                                        {
                                            mat[j]=1;
                                            i++;
                                            j--;
                                             printf("Andou para linha %i coluna %i\n", i,j);

                                        }
                                    else
                                    {
                                         if ((mat[j-1]==0 || mat[j-1]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
                                        {
                                            mat[j]=1;
                                            j--;
                                             printf("Andou para linha %i coluna %i\n", i,j);

                                        }
                                        else
                                        {
                                            if ((mat[i-1][j-1]==0 || mat[i-1][j-1]==3)&& i<linhas && j<colunas && i>=0 && j>=0)
                                            {
                                                mat[j]=1;
                                                j--;
                                                i--;
                                                 printf("Andou para linha %i coluna %i\n", i,j);

                                            }
                                            else
                                            {
                                                printf("Por falta de movimentos, o cego morreu!\n");
                                            }

                                        }

                                    }


                                }

                            }

                        }

                }


        }
}

}
if (mat[j]==3)
{
    printf("VITORIA!");
}


return 0;
}



Desde já agradeço a ajuda!

Trabalho_02_VE2.pdf

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...