Continuo precisando de ajuda...puzzle em java

6 respostas
C

Continuo precisando de ajuda, eu estou perdido aqui…

Criei a matriz_mae de 100x100x3x3
Criei as regras do jogo que é mover peça para cima/baixo/esquerda/direita
sempre que é possivel uma movimentação eu recebo um flag de sucesso=true

Então no endereço zero da matriz_mae eu coloco a primeira matriz, por exemplo 156
408
237
E aplico as regras de movimentação, no caso temos visivelmente 4, e vou quardar na proxima linha da matriz_mae.
E depois preciso recuperar estes matrizes e applicar as regras e quardar nas proximas linhas, e depois vou fazendo isto até eu achar a resposta, porem estou meio perdido em como fazer isto isto, o programa tem que ficar num loop até achar a resposta, mas estou perdido…alguem pode me ajudar nisto ???

6 Respostas

C

O programa que fiz, ficou assim, mas da erro na matriz_mae

mas só para começar da o seguinte erro:
java.lang.ArrayIndexOutOfBoundsException: 100

sendo que l_m e c_m apontam aonde eu estou gravando e l_m1 e c_m1 apontam aonde eu estou lendo (isto é uma linha para cima)

while(terminou==false)
    {
      l_m++;
      while (c_m1 < 10) {

        while (c_m < 10) {
          move_cima(matriz);
          matriz_compara(matriz);
          grava_matriz_mae(matriz);
          c_m++;
          matriz_original(matriz);
          move_baixo(matriz);
          matriz_compara(matriz);
          grava_matriz_mae(matriz);
          c_m++;
          matriz_original(matriz);
          move_esquerda(matriz);
          matriz_compara(matriz);
          grava_matriz_mae(matriz);
          c_m++;
          move_direita(matriz);
          move_baixo(matriz);
          matriz_compara(matriz);
          grava_matriz_mae(matriz);
          c_m++;

        }
        c_m1++;
        le_mae(matriz_mae[l_m1][c_m1]);
        matriz_original(matriz);
      }
      l_m1++;
      c_m1=0;
      c_m=0;
      le_mae(matriz_mae[l_m1][c_m1]);
      matriz_original(matriz);


    }

Por favor alguem me de uma luz

C

celibertojr,

O argumento do seu while está para < 100, como vc sempre salva numa possição pra frente, isso não teria que ser < 99 não?
Veja o erro: java.lang.ArrayIndexOutOfBoundsException: 100
Isso indica q vc tá tentando usar uma posição q não existe…

[]'s
carisio

M

cara, eu nao olhei teu código, esse teu problema é bem chatinho mesmo, tu ta lidando com matrizes muito grandes… e estou na correria aqui atrasado, hehehe, bem, posso te dizer q a exceção ArrayIndexOutOfBoundsException quer dizer q tu ta tentando acessar um elemento da matriz q não existe, por exemplo, se tu tem uma matrix de 0 a 5 int, tu ta tentando acessar o elemento matriz[5]…

C

celibertojr,

acabei lendo seu programa errado, vi um < 100 lá não sei onde, desculpe.

Mas o erro q está dando é pq vc tá tentando acessar uma posição q não existe.
Como vc disse q vc tá salvando numa linha próxima a matriz, certifique-se de q vc esteja percorrendo a matriz até < tamanho -1, para garantir de q vc esteja numa posição válida no array.

Se quiser pode me mandar o código por e-mail q eu olho ele pra vc.

Falou,
carisio

C

“carisio”:
celibertojr,

acabei lendo seu programa errado, vi um < 100 lá não sei onde, desculpe.

Mas o erro q está dando é pq vc tá tentando acessar uma posição q não existe.
Como vc disse q vc tá salvando numa linha próxima a matriz, certifique-se de q vc esteja percorrendo a matriz até < tamanho -1, para garantir de q vc esteja numa posição válida no array.

Se quiser pode me mandar o código por e-mail q eu olho ele pra vc.

Falou,
carisio

Lhe mando sim
Tentei diminuir e mudar os endereços da matriz, mas nao muda nada…o problema continua

C

Este programa precisa vericar mais ou menos umas 400.000 possibilidades de matrizes…se ele conseguir umas 100 tô feliz…heheh

Eu já tentei implementar por arvores ( o recomentado) mas eu nao entendi nada…acabei seguindo a ideia do meu professor fazer por matriz…mas aiaiai…tá complicado…

Criado 9 de maio de 2004
Ultima resposta 9 de mai. de 2004
Respostas 6
Participantes 3