ruski Skrevet 15. november 2008 Forfatter Del Skrevet 15. november 2008 Er det meningen at programmet skal løse en 8-puzzle? Synes du kunne forklart litt bedre hva du skulle gjøre. Har desverre ikke noe tips å komme med, men det virker jo som et morsomt problem. Du henviser meg til wikipedia, men jeg finner ikke noe om akkurat det spesifikke som trengs her. Du må nok veilede meg til stedet hvor jeg finner ting om problemet mitt. Dette forteller hvor 0 befinner seg i tabellen if (data[0][0] == 0) if (data[0][1] == 0) if (data[0][2] == 0) if (data[1][0] == 0) if (data[1][1] == 0) if (data[1][2] == 0) if (data[2][0] == 0) if (data[2][1] == 0) if (data[2][2] == 0) Ut i fra dette skal jeg bytte om på verdier inne i firkantparantesene for å kunne skrive ut tabellen hvor man kan se hvordan tallene bytter plass. Koden etter likhetstegnet. public void lagBarn(int generations) { if (data[0][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[2][1]},{data[0][0],data[1][0],data[2][1]},{data[0][0],data[1] 0],data[2][1]}}; 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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); // System.out.print(nyData1); } if (data[0][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; 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[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; 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[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][0] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[2][2] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (generations > 0) for (int i=0;i<barn.length;i++) barn.lagBarn(generations -1); } public void dump() { for (int counter = 0; counter <= 9; counter++) { int i = counter % 9; for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { System.out.print(i); i = (++i) % 9; } System.out.println(); } System.out.println(); } for(int i=0;i<barn.length;i++) if (barn != null) barn.dump(); } Legger ved hele koden. 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[2][1],data[2][1]},{data[0][0],data[1][0],data[2][1]},{data[0][0],data[1] 0],data[2][1]}}; 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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[0][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; 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[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; 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[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][0] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[2][2] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; 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 counter = 0; counter <= 9; counter++) { int i = counter % 9; for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { System.out.print(i); i = (++i) % 9; } 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
pgdx Skrevet 16. november 2008 Del Skrevet 16. november 2008 Er det meningen at programmet skal løse en 8-puzzle? Synes du kunne forklart litt bedre hva du skulle gjøre. Har desverre ikke noe tips å komme med, men det virker jo som et morsomt problem. Du henviser meg til wikipedia, men jeg finner ikke noe om akkurat det spesifikke som trengs her. Du må nok veilede meg til stedet hvor jeg finner ting om problemet mitt. Problemet er at dette er for vanskelig for deg. Du kan ikke bruke hardkodede indekser for å løse dette problemet. Start fra scratch igjen. Jeg antar dette ikke er første oppgave i et introduksjonskurs i Java/programmering. Du må ta det kurset, og begynne på begynnelsen. Det aller første man lærer er at dette: if (data[0][0] == 0) if (data[0][1] == 0) if (data[0][2] == 0) if (data[1][0] == 0) if (data[1][1] == 0) if (data[1][2] == 0) if (data[2][0] == 0) if (data[2][1] == 0) if (data[2][2] == 0) MÅ erstattes med to nøstede for-løkker. Lenke til kommentar
ruski Skrevet 16. november 2008 Forfatter Del Skrevet 16. november 2008 Er det meningen at programmet skal løse en 8-puzzle? Synes du kunne forklart litt bedre hva du skulle gjøre. Har desverre ikke noe tips å komme med, men det virker jo som et morsomt problem. Du henviser meg til wikipedia, men jeg finner ikke noe om akkurat det spesifikke som trengs her. Du må nok veilede meg til stedet hvor jeg finner ting om problemet mitt. Problemet er at dette er for vanskelig for deg. Du kan ikke bruke hardkodede indekser for å løse dette problemet. Start fra scratch igjen. Jeg antar dette ikke er første oppgave i et introduksjonskurs i Java/programmering. Du må ta det kurset, og begynne på begynnelsen. Det aller første man lærer er at dette: if (data[0][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[2][1]},{data[0][0],data[1][0],data[2][1]},{data[0][0],data[1] 0],data[2][1]}}; 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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } Forløkka er jo disse ombyttingene som blir gjort her Lenke til kommentar
ruski Skrevet 16. november 2008 Forfatter Del Skrevet 16. november 2008 Er det meningen at programmet skal løse en 8-puzzle? Synes du kunne forklart litt bedre hva du skulle gjøre. Har desverre ikke noe tips å komme med, men det virker jo som et morsomt problem. Du henviser meg til wikipedia, men jeg finner ikke noe om akkurat det spesifikke som trengs her. Du må nok veilede meg til stedet hvor jeg finner ting om problemet mitt. Problemet er at dette er for vanskelig for deg. Du kan ikke bruke hardkodede indekser for å løse dette problemet. Start fra scratch igjen. Jeg antar dette ikke er første oppgave i et introduksjonskurs i Java/programmering. Du må ta det kurset, og begynne på begynnelsen. Det aller første man lærer er at dette: if (data[0][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[2][1]},{data[0][0],data[1][0],data[2][1]},{data[0][0],data[1] 0],data[2][1]}}; 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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } Forløkka er jo disse ombyttingene som blir gjort her Litt feil. Forløkka er for(int i=0;i<3;i++) { for(int j=0;j<3;j++) if (data[i][j] == 0) System.out.print(" "); else System.out.print(data[i][j]); System.out.println(""); } Lenke til kommentar
pgdx Skrevet 16. november 2008 Del Skrevet 16. november 2008 Jeg forstår fremdeles ikke hva du egentlig vil. Vil du finne ut posisjonen til 0-eren? Eller vil du mer generelt løse 8-puzzle? Eller vil du bare representere et brett? Hei, helt ny på programmering. Prøver å få utskrift på formen123 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: Uansett hva jeg setter inn får jeg OutOfBound eller NullPointExpression meldinger. Spørsmålet ditt her er litt utydelig. Kan du prøve å spesifisere hva du egentlig lurer på nå? Lenke til kommentar
ruski Skrevet 16. november 2008 Forfatter Del Skrevet 16. november 2008 Jeg forstår fremdeles ikke hva du egentlig vil. Vil du finne ut posisjonen til 0-eren? Eller vil du mer generelt løse 8-puzzle? Eller vil du bare representere et brett? Hei, helt ny på programmering. Prøver å få utskrift på formen123 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: Uansett hva jeg setter inn får jeg OutOfBound eller NullPointExpression meldinger. Spørsmålet ditt her er litt utydelig. Kan du prøve å spesifisere hva du egentlig lurer på nå? Ja, jeg vil finne posisjonen til 0-ere Lenke til kommentar
pgdx Skrevet 17. november 2008 Del Skrevet 17. november 2008 Slik? Skriver ut posisjonen til 0-eren. for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { if (data[i][j] == 0) { System.out.print(i + ", " + j); return; } } } Lenke til kommentar
ruski Skrevet 17. november 2008 Forfatter Del Skrevet 17. november 2008 Slik? Skriver ut posisjonen til 0-eren. if (data[0][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[2][1]},{data[0][0],data[1][0],data[2][1]},{data[0][0],data[1] 0],data[2][1]}}; 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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[0][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; 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[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; 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[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][0] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[2][2] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } Lenke til kommentar
ruski Skrevet 17. november 2008 Forfatter Del Skrevet 17. november 2008 class DataNode { private int data[][]; private DataNode barn[] = new DataNode[2]; // 2 er max antall barn 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]}}; int nyData2[][] = {{data[0][1],data[0][0]},{data[1][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]}}; int nyData2[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][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<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,0}}; DataNode top = new DataNode(data); top.lagBarn(1); top.dump(); } } Slik? Skriver ut posisjonen til 0-eren. if (data[0][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[2][1]},{data[0][0],data[1][0],data[2][1]},{data[0][0],data[1] 0],data[2][1]}}; 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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[0][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2][1],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; 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[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; 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[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][0] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[2][1] == 0) { int nyData1[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; int nyData2[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); barn[2] = new DataNode(nyData3); } if (data[2][2] == 0) { int nyData1[][] = {{data[0][1],data[1][2],data[2][1]},{data[0][1],data[1][2],data[2][1]},{data[1][0],data[2] 2],data[2][2]}}; int nyData2[][] = {{data[1][0],data[2][1],data[1][2]},{data[1][0],data[1][2],data[1][2]},{data[1][0],data[2] 1],data[1][2]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } Jeg tror jeg må poste den opprinnelige 2x2 arrayet som jeg prøver å utvide til 3x3 array. Jeg har ikke flere ord å forklare med, så du må kjøre koden så du skjønner hva jeg mener. Lenke til kommentar
pgdx Skrevet 17. november 2008 Del Skrevet 17. november 2008 ...... Spørsmålet ditt her er litt utydelig. Kan du prøve å spesifisere hva du egentlig lurer på nå? Ja, jeg vil finne posisjonen til 0-ere Slik? Skriver ut posisjonen til 0-eren. for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { if (data[i][j] == 0) { System.out.print(i + ", " + j); return; } } } Hva har du da gjort inne i disse kompliserte snuttene? For vis du ikke setter 1-ere, 2-ere og 0-ere på riktig posisjon, får du enten feil utskrift(et siffer foerkommer flere ganger eller et siffer mangler).Jeg skriver ut posisjonen til den første 0-eren i ditt 3x3-array. Jeg tror jeg må poste den opprinnelige 2x2 arrayet som jeg prøver å utvide til 3x3 array. Jeg har ikke flere ord å forklare med, så du må kjøre koden så du skjønner hva jeg mener.Skal du utvide noe, nå plutselig? Du sa jo at det eneste du ville var å finne 0-eren din. Og det gjorde kodesnutten min. Men jeg kan si med en gang at verken jeg eller noen andre her kommer til å gidde å lese koden din som er proppet full av indekser. Du løser ikke problemet med massevis av data[0][0], data[0][1] osv. Du må x-er og y-er (i-er og j-er hvis du vil) og bruke for-løkker. Du får komme opp med et (ett, 1) nytt spørsmål, ellers anser jeg saken som løst. Lenke til kommentar
ruski Skrevet 17. november 2008 Forfatter Del Skrevet 17. november 2008 ...... Spørsmålet ditt her er litt utydelig. Kan du prøve å spesifisere hva du egentlig lurer på nå? Ja, jeg vil finne posisjonen til 0-ere Slik? Skriver ut posisjonen til 0-eren. class DataNode { private int data[][]; private DataNode barn[] = new DataNode[2]; // 2 er max antall barn 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]}}; int nyData2[][] = {{data[0][1],data[0][0]},{data[1][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]}}; int nyData2[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][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<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,0}}; DataNode top = new DataNode(data); top.lagBarn(1); top.dump(); } } Lenke til kommentar
ruski Skrevet 17. november 2008 Forfatter Del Skrevet 17. november 2008 ...... Spørsmålet ditt her er litt utydelig. Kan du prøve å spesifisere hva du egentlig lurer på nå? Ja, jeg vil finne posisjonen til 0-ere Slik? Skriver ut posisjonen til 0-eren. class DataNode { private int data[][]; private DataNode barn[] = new DataNode[2]; // 2 er max antall barn 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]}}; int nyData2[][] = {{data[0][1],data[0][0]},{data[1][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]}}; int nyData2[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][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<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,0}}; DataNode top = new DataNode(data); top.lagBarn(1); top.dump(); } } Jeg må be om ynskyldning. Jeg trodde at jeg hadde sagt at det var en 2x2 jeg prøvde å utvide til 3n 3x3. Original 2x2 kode gir riktig utskrift på 7 blokker med 2x2 array Lenke til kommentar
ruski Skrevet 18. november 2008 Forfatter Del Skrevet 18. november 2008 ...... Spørsmålet ditt her er litt utydelig. Kan du prøve å spesifisere hva du egentlig lurer på nå? Ja, jeg vil finne posisjonen til 0-ere Slik? Skriver ut posisjonen til 0-eren. class DataNode { private int data[][]; private DataNode barn[] = new DataNode[2]; // 2 er max antall barn 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]}}; int nyData2[][] = {{data[0][1],data[0][0]},{data[1][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]}}; int nyData2[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][0] == 0) { int nyData1[][] = {{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]}}; barn[0] = new DataNode(nyData1); barn[1] = new DataNode(nyData2); } if (data[1][1] == 0) { int nyData1[][] = {{data[0][0],data[1][1]},{data[1][0],data[0][1]}}; int nyData2[][] = {{data[0][0],data[0][1]},{data[1][1],data[1][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<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,0}}; DataNode top = new DataNode(data); top.lagBarn(1); top.dump(); } } Jeg må be om ynskyldning. Jeg trodde at jeg hadde sagt at det var en 2x2 jeg prøvde å utvide til 3n 3x3. Original 2x2 kode gir riktig utskrift på 7 blokker med 2x2 array Var det alt? Ingen hjelp å få!!! Det var ikke rare greier. Lenke til kommentar
pgdx Skrevet 18. november 2008 Del Skrevet 18. november 2008 You're on your own. Et godt tips kan være å starte en ny tråd der du er flinkere å spesifisere oppgaven du skal gjøre, problemene dine, hva du har prøvd og hva som er feilmeldinger (evt. logiske feil). Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå