Ir ao conteúdo
  • Cadastre-se
Monkeyrafa

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

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o codigo dentro da box de codigo, porque assim está bugando e sumindo alguns detalhes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×