Gå til innhold

Nodeproblemer (Array) 8-Puzzle


Anbefalte innlegg

Hei, helt ny på programmering. Prøver å få utskrift på formen

123

456

780

Problemet er at jeg ikke vet hva som skal inn i de mange firkantete parantesene etter likhetstegnet.

Da maener jeg ikke denne biten "if (data[0][0] == 0)", for den forteller i hvilken posisjon 0 er i.

Jeg trenger dette til 8-Puzzle spillet jeg prøver å lage.

Koden ser slik ut:

 

 
class DataNode
{
private int data[][];
private DataNode barn[] = new DataNode[4];

public DataNode(int start[][])
{
	data = start;
}

public void lagBarn(int generations)
{
	if (data[0][0] == 0)
	{
		int nyData1[][] = {{data[1][0],data[0][1]},{data[0][0],data[1][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][1],data[0][0]},{data[1][0],data[1][1]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
	}
	if (data[0][1] == 0)
	{
		int nyData1[][] = {{data[0][1],data[0][0]},{data[1][0],data[1][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
		barn[2] = new DataNode(nyData3);
	}
	if (data[0][2] == 0)
	{
		int nyData1[][] = {{data[1][0],data[0][1]},{data[0][0],data[1][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][0]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
	}
	if (data[1][0] == 0)
	{
		int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][0]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
		barn[2] = new DataNode(nyData3);
	}
if (data[1][1] == 0)
	{
		int nyData1[][] = {{data[1][0],data[0][1]},{data[0][0],data[1][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][1],data[0][0]},{data[1][0],data[1][1]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
		barn[2] = new DataNode(nyData3);
		barn[3] = new DataNode(nyData4);
	}
	if (data[1][2] == 0)
	{
		int nyData1[][] = {{data[0][1],data[0][0]},{data[1][0],data[1][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
	}
	if (data[2][0] == 0)
	{
		int nyData1[][] = {{data[1][0],data[0][1]},{data[0][0],data[1][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][0]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
	}
	if (data[2][1] == 0)
	{
		int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][0]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
		barn[2] = new DataNode(nyData3);
	}
if (data[2][2] == 0)
	{
		int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]},{data[0][0],data[1][1]}};
		int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][0]},{data[0][0],data[1][1]}};
		barn[0] = new DataNode(nyData1);
		barn[1] = new DataNode(nyData2);
	}
	if (generations > 0)
		for (int i=0;i<barn.length;i++)
			barn[i].lagBarn(generations-1);
} 
public void dump()
{
	for(int i=0;i<2;i++)
	{
		for(int j=0;j<2;j++)
			if (data[i][j] == 0)
				System.out.print(" ");
			else
			   System.out.print(data[i][j]);
		System.out.println("");
	}
	System.out.println("");
	for(int i=0;i<barn.length;i++)
		if (barn [i] != null)
			barn[i].dump();
}
public static void main(String[] args) 
{
	int data[][] = {{1,2,3},{4,5,6},{7,8,0}};

	DataNode top = new DataNode(data);
	top.lagBarn(1);
	top.dump();
}
}

 

Uansett hva jeg setter inn får jeg OutOfBound eller NullPointExpression meldinger.

Lenke til kommentar
Videoannonse
Annonse

Jeg har ikke lest koden din, men anslår at koden din kan skjæres ned til 5% av den størrelsen der.

 

Gi oss utskriften av feilmeldingene.

 

Noe slikt du vil ha?

for (int i = 0; i < array.length; i++) {
  for (int j = 0; j < array[i].length; j++) {
  System.out.print(array[i][j]);
  }
  System.out.println();
}

Lenke til kommentar

Feilmeldingen ser slik ut;

 

init:

deps-jar:

Warning: DataNode_10\DataNode.java modified in the future.

Compiling 1 source file to C:\Documents and Settings\Xxxx Xxx Xxxx\Mine dokumenter\NetBeansProjects\Demoer\DataNode_10\build\classes

compile:

run:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2

at DataNode_10.DataNode.lagBarn(DataNode.java:70)

at DataNode_10.Main.main(Main.java:25)

Java Result: 1

BUILD SUCCESSFUL (total time: 0 seconds)

Lenke til kommentar

Forstår du hva dette betyr?

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at DataNode_10.DataNode.lagBarn(DataNode.java:70)
at DataNode_10.Main.main(Main.java:25)

 

Hovedsaklig ArrayIndexOutOfBoundsException: 2.

 

Men også DataNode.java:70

Lenke til kommentar
Forstår du hva dette betyr?

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at DataNode_10.DataNode.lagBarn(DataNode.java:70)
at DataNode_10.Main.main(Main.java:25)

 

Hovedsaklig ArrayIndexOutOfBoundsException: 2.

 

Men også DataNode.java:70

 

 

Det forteller ikke meg noe. M.a.o. helt gresk for meg.

Lenke til kommentar
Forstår du hva dette betyr?


public class Main 
{

   /**
    * @param args the command line arguments
    */
   public static void main(String[] args)  
   {
       int data[][] = {{1,2},
                       {3,4},
                       {5,0}};

       DataNode top = new DataNode(data);
       top.lagBarn(1);
       top.dump();
   }

}

Lenke til kommentar
Forstår du hva dette betyr?


public class Main 
{

   /**
    * @param args the command line arguments
    */
   public static void main(String[] args)  
   {
       int data[][] = {{1,2},
                       {3,4},
                       {5,0}};

       DataNode top = new DataNode(data);
       top.lagBarn(1);
       top.dump();
   }

}

 

Feil kode

 

public class Main 
{
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args)  
   {
       int data[][] = {{1,2,3},
                       {4,5,6},
                       {7,8,0}};

       DataNode top = new DataNode(data);
       top.lagBarn(1);
       top.dump();
   }
}

Lenke til kommentar
Forstår du hva dette betyr?

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at DataNode_10.DataNode.lagBarn(DataNode.java:70)
at DataNode_10.Main.main(Main.java:25)

 

Hovedsaklig ArrayIndexOutOfBoundsException: 2.

 

Men også DataNode.java:70

 

 

Det forteller ikke meg noe. M.a.o. helt gresk for meg.

La oss dele opp ordet ArrayIndexOutOfBoundsException:

 

ArrayIndex - Index/posisjon i arrayet. new int[2] har tilsammen 2 posisjoner, med index fra 0 til 1.

OutOfBounds - Utenfor grenser. new int[2] har grenser fra 0 til 1. Index 2 eller -1 er utenfor grensene.

Exception - Feil. Java kan konstruere en Feil/Exception hvis noe gaar galt. Her forsoekte noen aa bruke en index i en array utenfor grensene.

 

Etter ArrayIndexOutOfBoundsException staar det et tall: 2. Dette tallet betyr at index = 2 ble brukt, og 2 er utenfor grensen arrayet. Grensen paa arrayet er ikke oppgitt (desverre), men i de fleste tilfeller er det snakk om for-loekke som ikke stoppet tidsnok, og array stoerrelsen er sannsynligvis 2 (med index 0 og 1).

 

Det staar derimot i hvor feilen oppstod:

DataNode.java:70 - Enkelt og greit linje 70 i java-fila DataNode. Du vet at en array blir brukt i denne linja, saa naa maa du finne ut hvorfor indexet oversteg grensene.

Lenke til kommentar
Forstår du hva dette betyr?

class DataNode
{
   private int data[][];
   private DataNode barn[] = new DataNode[4]; // max antall barn
   private int[][] nyData3,nyData4;


   public DataNode(int start[][])
   {
       data = start;
   }

   public void lagBarn(int generations)
   {
       if (data[0][0] == 0)
       {
           int nyData1[][] = {{data[1][0],data[1][2],data[0][2]},{data[0][1],data[1][0],data[1][2]},{data[0][1],data[1]
0],data[2][2]}};
           int nyData2[][] = {{data[0][1],data[1][0],data[0][1]},{data[1][0],data[1][2],data[2][1]},{data[1][2],data[2]
1],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[0][1] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
       }
       if (data[0][2] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[1][0] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
       }
if (data[1][1] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
           barn[3] = new DataNode(nyData4);
       }
       if (data[1][2] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[2][0] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[2][1] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
       }
if (data[2][2] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (generations > 0)
           for (int i=0;i<barn.length;i++)
               barn[i].lagBarn(generations -1);
   } 
   public void dump()
   {
       for(int i=0;i<3;i++)
       {
           for(int j=0;i<3;j++)
               if (data[i][j] == 0)
                   System.out.print(" ");
               else
                  System.out.print(data[i][j]);
           System.out.println("");
       }
       System.out.println("");
       for(int i=0;i<barn.length;i++)
           if (barn [i] != null)
               barn[i].dump();
   }

   void lagBarn() 
   {
       throw new UnsupportedOperationException("Not yet implemented");
   }

   public static void main(String[] args) 
   {

      int[][] a = { { 1, 2, 3 },{ 4, 5, 6 },{7, 8, 0 }};


       DataNode top = new DataNode(data);
       top.lagBarn(1);
       top.dump();
   }
}

Lenke til kommentar
Forstår du hva dette betyr?

class DataNode
{
   private int data[][];
   private DataNode barn[] = new DataNode[4]; // max antall barn
   private int[][] nyData3,nyData4;


   public DataNode(int start[][])
   {
       data = start;
   }

   public void lagBarn(int generations)
   {
       if (data[0][0] == 0)
       {
           int nyData1[][] = {{data[1][0],data[1][2],data[0][2]},{data[0][1],data[1][0],data[1][2]},{data[0][1],data[1]
0],data[2][2]}};
           int nyData2[][] = {{data[0][1],data[1][0],data[0][1]},{data[1][0],data[1][2],data[2][1]},{data[1][2],data[2]
1],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[0][1] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
       }
       if (data[0][2] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[1][0] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
       }
if (data[1][1] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
           barn[3] = new DataNode(nyData4);
       }
       if (data[1][2] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[2][0] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (data[2][1] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
           barn[2] = new DataNode(nyData3);
       }
if (data[2][2] == 0)
       {
           int nyData1[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           int nyData2[][] = {{data[0][0],data[0][1],data[0][0]},{data[1][1],data[1][1],data[0][0]},{data[1][2],data[2]
2],data[0][0]}};
           barn[0] = new DataNode(nyData1);
           barn[1] = new DataNode(nyData2);
       }
       if (generations > 0)
           for (int i=0;i<barn.length;i++)
               barn[i].lagBarn(generations -1);
   } 
   public void dump()
   {
       for(int i=0;i<3;i++)
       {
           for(int j=0;i<3;j++)
               if (data[i][j] == 0)
                   System.out.print(" ");
               else
                  System.out.print(data[i][j]);
           System.out.println("");
       }
       System.out.println("");
       for(int i=0;i<barn.length;i++)
           if (barn [i] != null)
               barn[i].dump();
   }

   void lagBarn() 
   {
       throw new UnsupportedOperationException("Not yet implemented");
   }

   public static void main(String[] args) 
   {

      int[][] a = { { 1, 2, 3 },{ 4, 5, 6 },{7, 8, 0 }};


       DataNode top = new DataNode(data);
       top.lagBarn(1);
       top.dump();
   }
}

 

Med den nye koden får jeg feilmeldingen som følger:

 

init:

deps-jar:

compile:

run:

Exception in thread "main" java.lang.NullPointerException
       at DataNode.DataNode.lagBarn(DataNode.java:25)
       at DataNode.Main.main(Main.java:28)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Lenke til kommentar
Exception in thread "main" java.lang.NullPointerException
       at DataNode.DataNode.lagBarn(DataNode.java:25)
       at DataNode.Main.main(Main.java:28)

Her står det at på linje 25 i filen DataNode prøver du å gjøre noe med et element som ikke er instansiert ennå. Det kan gjerne være et array i ditt tilfelle.

 

Men jeg må si at jeg tror den koden er overkomplisert. Det må være en måte å gjøre dette enklere på. Kanskje du skal prøve å begynne på nytt? Hva går oppgaven ut på (forklart i egne ord, ikke en .doc-fil)?

Lenke til kommentar
Exception in thread "main" java.lang.NullPointerException
       at DataNode.DataNode.lagBarn(DataNode.java:25)
       at DataNode.Main.main(Main.java:28)

Her står det at på linje 25 i filen DataNode prøver du å gjøre noe med et element som ikke er instansiert ennå. Det kan gjerne være et array i ditt tilfelle.

 

Men jeg må si at jeg tror den koden er overkomplisert. Det må være en måte å gjøre dette enklere på. Kanskje du skal prøve å begynne på nytt? Hva går oppgaven ut på (forklart i egne ord, ikke en .doc-fil)?

 

Som du ser av det første spørsmålet at den skal gi autskrift på formen

 

123

456

780

 

med mist 9 utskrifter med forskjellig forskjellig plassering av tallene for de forskjellige utskriftene.

Det jeg ikke får til er ombyttingen av verdiene i de mange, veldig mange firkantparanteser. Det er jo det som er meningen at for vært bytte jeg gjør, får jeg nytt utskrift som iee er lik den forrige. Bare den første og den siste skal være like. Der hvor ombyttingene skal skje er i disse kodesnuttene: understrket

 

int nyData1[][] = {{data[0][1],data[1][2],data[2][2]},{data[2][1],data[1][0],data[0][0]},{data[1][0],data[2]

1],data[2][0]}};

int nyData2[][] = {{data[0][1],data[1][0],data[2][0]},{data[0][1],data[1][0],data[2][0]},{data[0][1],data[1]

0],data[2][0]}};

Lenke til kommentar

Sånn?

		for (int counter = 0; counter <= 10; counter++) {
		int i = counter % 10;
		for (int x = 0; x < 3; x++) {
			for (int y = 0; y < 3; y++) {
				System.out.print(i);
				i = (++i) % 10;
			}
			System.out.println();
		}
		System.out.println();
	}

Endret av pgdx
Lenke til kommentar
Sånn?

public class Main 
{
   private static int[][] data;

   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) 
   {


      int[][] a = {{1, 2, 3 },
                   {4, 5, 6 },
                   {7, 8, 0 }};

       DataNode top = new DataNode(data);
//        top.lagBarn(1);
       top.dump();
   }
}

Lenke til kommentar
Den koden fungerer bare når jeg faser ut "top.lagBarn(1);". Hvorfor det? Det er vel ikke meningen!! Etter det jeg har forstått, så er dette et søk i et tre, eller hva?
Er dette den første skoleoppgaven din? Det kan nok hende du må begynne på litt enklere oppgaver. Jeg forstår ikke hva oppgaven din går ut på, så jeg kan nok ikke hjelpe deg.
Lenke til kommentar
Sånn?

public class Main 
{
   private static int[][] data;

   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) 
   {


      int[][] a = {{1, 2, 3 },
                   {4, 5, 6 },
                   {7, 8, 0 }};

       DataNode top = new DataNode(data);
//        top.lagBarn(1);
       top.dump();
   }
}

 

Jeg har nå kjørt koden litt, men det ser ut som at når jeg fase ut ” top.lagBarn(1);” , så kjøres ikke den delen av koden som liksom skal gjøre jobben med å søke i treet.

Jeg må forklare litt hva de enkelte kodebitene er.

 

if (data[0][0] == 0) forteller hvor 0 er på tabblen. Det er 9 slike biter med forskjellige verdier.

 

I denne delen bytter man posisjon til tallene i tabellen

123

456

780

eks. tallene 1 og 2 bytter plass. Ja, jeg vet at det er komplisert. Det er derfor jeg har bedt om hjelp.

int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[2][1],data[1][0],data[0][0]},{data[1][2],data[2]

1],data[2][2]}};

 

int nyData2[][] = {{data[0][1],data[1][0],data[2][0]},{data[0][1],data[1][0],data[2][0]},{data[0][1],data[1]

0],data[2][0]}};

Dette er det også 9 stykker av. Int nyData1 er første tabell. Int nyData2 er neste tabell.

Neste int nyData1 bør helst være forrige int nyData2 etter det jeg har fått opplyst.

 

Så derfor bør den delen som er faset ut være med. For jeg tror at det den biten av koden som gjør hele arbeidet.

Lenke til kommentar
Den koden fungerer bare når jeg faser ut "top.lagBarn(1);". Hvorfor det? Det er vel ikke meningen!! Etter det jeg har forstått, så er dette et søk i et tre, eller hva?
Er dette den første skoleoppgaven din? Det kan nok hende du må begynne på litt enklere oppgaver. Jeg forstår ikke hva oppgaven din går ut på, så jeg kan nok ikke hjelpe deg.

 

Nei, det er ikke den første. Det skal bli 8-Puzzle Applet som jeg har nevnt før. Jeg har alle de andre kodedelene, men denne får jeg ikke til

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...