rkd 0 Denunciar post Postado Abril 29, 2011 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
Myho 2 Denunciar post Postado Abril 29, 2011 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
rkd 0 Denunciar post Postado Abril 29, 2011 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
Myho 2 Denunciar post Postado Abril 29, 2011 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
rkd 0 Denunciar post Postado Abril 29, 2011 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
Myho 2 Denunciar post Postado Abril 29, 2011 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