Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rkd

Caminho pecorrido

Recommended Posts

Olá a todos,

 

- Bem para tentar caprichar um pouco mais meu trabalho, necessito que haja uma especie de rastro deixado por meus laços e ifs. O codigo baseia-se em coletar elementos na matriz, então que tal demonstrar de uma maneira mais gráfica as celulas que foram usadas?

 

Elemento 3 a coletar.

 

0 0 0

0 3 0

0 0 0

 

O 3 foi coletado:

 

0 0 0

0 0 0

0 0 0

 

Preciso deste resultado.

 

1 1 1

1 1 0

0 0 0

 

A representação teria que ser em numeros ja que a matriz é tipo float.

 

Inicialmente tentei:

 

x=0

y=0

 

while (x < i;y < j) {
x=x+1
y=y+1
vet[x][y] = 1
}

 

Porém acontece que espaços como 0 1, 0 2 não vao existir. Apenas 1 1, 2 2 etc...

 

x=0

y=0

 

while (x < i;y < j) {
x=x+1
  if (x >= y) {
  y=y+1
}
vet[x][y] = 1
}

 

Agora celulas como 0 1, 0 2 nao sao preechidas....

 

 

OU

 

 do
        {
        vet[j][i] = 1;
        } while (vet[i][j] == 3);

 

Seria aplicado depois da montagem da matriz EX: for(j=0;j<10;j++) for(i=0;i<10;i++)

Oque fazer? Nessa terceira tentativa so preeche com 1 a linha 1.

 

 

Caso precisem de mais codigo posso enviar por PM como está ate atualmente. Não posso divulgar pois o trabalho nao foi entregue ainda.

 

EDIT:

Nova tentativa, nao da erro mais o programa esta travando.

if (vet[i][j] == 3) {
                                       //vet[i][j] = 0;
                                       p1 = i;
                                       p2 = j;
                                       vet[p1][p2] = 1;
                                       while (p2 > 0) {
                                             vet[p1][p2-1] = 1;
                                       }
                         }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual seria o passo-a-passo que você precisa mostrar na tela?

 

Tem que mostrar o 1 indo de casa em casa? tipo:

 

Passo 1:

1 0 0

0 3 0

0 0 0

 

Qual dos passos seria o próximo passo?

 

0 1 0

0 3 0

0 0 0

 

ou

 

1 1 0

0 3 0

0 0 0

 

Se for outra modo que não um desses dois, é só falar que nós vamos ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual seria o passo-a-passo que você precisa mostrar na tela?

 

Tem que mostrar o 1 indo de casa em casa? tipo:

 

Passo 1:

1 0 0

0 3 0

0 0 0

 

Qual dos passos seria o próximo passo?

 

0 1 0

0 3 0

0 0 0

 

ou

 

1 1 0

0 3 0

0 0 0

 

Se for outra modo que não um desses dois, é só falar que nós vamos ajudar.

 

Eu consegui fazer dessa forma:

Quando dou ENTER ele trilha sobre todas as casas de vez...até o primeiro lixo ou obstaculo. Consegui fazer isso com um simples IF. Porém se puder me explicar como fazer de casa em casa poderia adptar e ficaria ainda melhor!

 

 

EDIT:

 

Consegui com uma gambiarra, mais se ainda puder deixar automático.... porfavor me diga.

 

vet[i][j] = 1;
mostraMatriz();
system("pause");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se você conseguiu trilhar de uma vez, fazer isso passo-a-passo é simples, basta mostrar a tela e pausar o programa a cada repetição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se você conseguiu trilhar de uma vez, fazer isso passo-a-passo é simples, basta mostrar a tela e pausar o programa a cada repetição.

 

Mais existe algum comando por exemplo que invez de eu precisar apertar enter como mostrei acima, o celula va passando de 5 em 5 segundos por exemplo?

 

dentei usar delay(5) mais nao consegui, precisa de alguma biblioteca especial?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem a:

 

_sleep(TEMPO_EM_MILISEGUNDOS);

 

da stdlib.h

 

Exemplo, somando a cada 1 segundo:

 

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

main()
{

   int soma = 0;

   for(int i=0; i < 100; i++) {

       printf("%d + %d = %d\n",soma,i,soma+i);
       soma += i;
       _sleep(1000);

   }

   system ("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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