Ir ao conteúdo
  • Cadastre-se

Cristina2000

Membro Pleno
  • Posts

    32
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de Cristina2000 em Tá difícil terminar o exercício foi marcado como solução   
    Eu consegui resolver vou postar aqui, talvez ajude alguém. #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <locale.h> #define TAMANHO 8 void imprime(int a[TAMANHO][TAMANHO]); int main() { int i,j,cont=1,movimento=1,movimento2=1,cont2=0,cont4=0,cont6=0,num1,num2; static int x=0,y=0,cont3=0,cont20=2,cont30=2,vetor[TAMANHO][TAMANHO]={0},tabuleiro[TAMANHO][TAMANHO]={0}; static int tabuleiro2[TAMANHO][TAMANHO]= {{2,3,4,4,4,4,3,2}, {3,4,6,6,6,6,4,3}, {4,6,8,8,8,8,6,4}, {4,6,8,8,8,8,6,4}, {4,6,8,8,8,8,6,4}, {4,6,8,8,8,8,6,4}, {3,4,6,6,6,6,4,3}, {2,3,4,4,4,4,3,2}}; setlocale(LC_ALL,""); while(cont<=64){ printf(" 1. Mover 2 posições à direita e 1 para baixo\n"); printf(" 2. Mover 1 posição à direita e 2 para baixo\n"); printf(" 3. Mover 2 posições à direita e 1 para cima\n"); printf(" 4. Mover 1 posição à direita e 2 para cima\n"); printf(" 5. Mover 2 posições à esquerda e 1 para cima\n"); printf(" 6. Mover 2 posições à esquerda e 1 para baixo\n"); printf(" 7. Mover 1 posição à esquerda e 2 para cima\n"); printf(" 8. Mover 1 posição à esquerda e 2 para baixo\n"); if(movimento==1){ x=x+1; if(x>TAMANHO-1) //Verifica se x está dentro do tabuleiro cont2++; y=y+2; //Verifica se y está dentro do tabuleiro if(y>TAMANHO-1) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ //Verifica se a posição(x,y) está vazia if(tabuleiro2[x][y]==cont20){ //Verifica se a posição é igual ao valor buscado no momento vetor[x][y]=cont20; num1=x; num2=y; //Coloca a posição (x,y) no vetor cont3++; //conta quantas posição são válidas } } x=x-1; y=y-2; cont2=0; movimento++; //cont20 --> está procurando uma posição (x,y) no vetor tabuleiro2 printf("\n\ncont20= %d\n",cont20); //que seja igual a cont20 printf("cont3= %d\n",cont3); //cont3==0 nao encontrou nenhuma posição } //cont3==1 encontropu somente uma posição //cont3>1 encontrou várias posições if(movimento==2){ x=x+2; if(x>TAMANHO-1) cont2++; y=y+1; if(y>TAMANHO-1) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x-2; y=y-1; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(movimento==3){ x=x-1; if(x<0) cont2++; y=y+2; if(y>TAMANHO-1) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x+1; y=y-2; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(movimento==4){ x=x-2; if(x<0) cont2++; y=y+1; if(y>TAMANHO-1) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x+2; y=y-1; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(movimento==5){ x=x-1; if(x<0) cont2++; y=y-2; if(y<0) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x+1; y=y+2; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(movimento==6){ x=x+1; if(x>TAMANHO-1) cont2++; y=y-2; if(y<0) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x-1; y=y+2; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(movimento==7){ x=x-2; if(x<0) cont2++; y=y-1; if(y<0) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x+2; y=y+1; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(movimento==8){ x=x+2; if(x>TAMANHO-1) cont2++; y=y-1; if(y<0) cont2++; if(cont2==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont20){ vetor[x][y]=cont20; num1=x; num2=y; cont3++; } } x=x-2; y=y+1; cont2=0; movimento++; printf("cont20= %d\n",cont20); printf("cont3= %d\n",cont3); } if(cont20==8) cont20=2; if(cont3==0){ printf("\ncont3=0 significa que não encontrou\n"); printf("\tnenhum movimento que possa ser feito no tabuleiro2(vetor)\n"); printf("\tneste momento"); cont20++; } if(cont3==1){ x=num1; y=num2; printf("\n\ncont3=1 significa que encontrou\n"); printf("\tsomente uma movimento possível no tabuleiro2(vetor)\n"); printf("num1= %d num2= %d\n",num1,num2); tabuleiro[x][y]=cont; cont20=2; cont++; } if(cont3>1){ printf("\ncont3>1 significa que encontrou\n"); printf("\tmais de um movimento possível no tabuleiro2(vetor)\n"); printf("\tAgora o programa vai procurar o movimento mais adequado\n\n"); printf("num1= %d num2= %d\n",num1,num2); Sleep(2200); while(cont30<=8){ for(i=0;i<TAMANHO;i++){ for(j=0;j<TAMANHO;j++){ if(vetor[i][j]!=0){ x=i; y=j; if(movimento2==1){ x=x+1; if(x>TAMANHO-1) //Verifica se x está dentro do tabuleiro cont4++; y=y+2; //Verifica se y está dentro do tabuleiro if(y>TAMANHO-1) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ //Verifica se a posição(x,y) está vazia if(tabuleiro2[x][y]==cont30){ //Verifica se a posição é igual ao valor buscado no momento num1=i; num2=j; cont6++; break; } } x=x-1; y=y-2; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==2){ x=x+2; if(x>TAMANHO-1) cont4++; y=y+1; if(y>TAMANHO-1) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x-2; y=y-1; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==3){ x=x-1; if(x<0) cont4++; y=y+2; if(y>TAMANHO-1) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x+1; y=y-2; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==4){ x=x-2; if(x<0) cont4++; y=y+1; if(y>TAMANHO-1) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x+2; y=y-1; cont2=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==5){ x=x-1; if(x<0) cont4++; y=y-2; if(y<0) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x+1; y=y+2; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==6){ x=x+1; if(x>TAMANHO-1) cont4++; y=y-2; if(y<0) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x-1; y=y+2; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==7){ x=x-2; if(x<0) cont4++; y=y-1; if(y<0) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x+2; y=y+1; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } if(movimento2==8){ x=x+2; if(x>TAMANHO-1) cont4++; y=y-1; if(y<0) cont4++; if(cont4==0 && tabuleiro[x][y]==0){ if(tabuleiro2[x][y]==cont30){ num1=i; num2=j; cont6++; break; } } x=x-2; y=y+1; cont4=0; movimento2++; printf("cont30= %d\n",cont30); printf("cont3= %d\n",cont3); } } } if(cont6==1) break; } if(cont6==1) break; cont30++; movimento2=1; } x=num1; y=num2; tabuleiro[x][y]=cont; cont++; for(i=0;i<TAMANHO;i++){ for(j=0;j<TAMANHO;j++){ vetor[i][j]=0; } } cont20=2; } imprime(tabuleiro); movimento=1; cont3=0; num1=-1; num2=-1; } return 0; } void imprime(int a[TAMANHO][TAMANHO]){ int i,j; printf("\n\n"); for(i=0;i<TAMANHO;i++){ for(j=0;j<TAMANHO;j++){ printf("%3d",a[i][j]); Sleep(100); } printf("\n\n"); } Sleep(1000); printf("\n\n"); }  
     
  2. O post de Cristina2000 em O que está acontecendo? foi marcado como solução   
    #include <stdio.h> #include <stdlib.h> #include <windows.h> #define TAMANHO 10 int main() { int i,j,x=0; for(i=0;i<TAMANHO;i++){ for(j=0;j<TAMANHO;j++){ x=x+1; if(j==5) break; } } printf("x= %d\n",x); return 0; }  
     
    Resolvido

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!