Magisches Viereck - Probleme mit Arrays

lolmon

Neues Mitglied
Hallo Community,

ich arbeite gerade an einer Aufgabe die wir in der Schule angefangen haben. Soweit so gut habe nun versucht die Aufgabe in JAVA umzusetzen jedoch mit garkeinem Erfolg.
Hier ist der Quellcode hoffe es kann einer den Fehler finden :autsch: :

Java:
public class Fachklasse {

	int[][]quadrat;
	
	public void groesseBestimmen(int groesse){
		
		this.quadrat = new int [groesse][groesse];	
		
		fuelleQuad();
		gebeQuadAus();
	}//void groesseBestimmen
	
	public void fuelleQuad(){

		int altZeile, altSpalte;
		int spalte;
		int zeile;
		
		int max = quadrat.length*quadrat.length;
		
		spalte = quadrat.length/2;
		zeile=0;
		
		//merken der alten Position
		altZeile = zeile;
		altSpalte = spalte;
		
		//schreibe die 1 in die erste Zeile in die Mitte
		quadrat[zeile][spalte]=1;
		
		for(int zahl=2;zahl<max;zahl++){
			
			if(zeile+1<quadrat.length){
				zeile++;
			}//if
			
			if(spalte>0){
				spalte--;
			} else {
				spalte = quadrat.length-1;
			}//else
			
			if(quadrat[zeile][spalte]==0){
				quadrat[zeile][spalte]=zahl;
			}//if
		}//for

		
	}//void fuelleQuad
	
	public void gebeQuadAus(){
		
		for(int i=0;i<quadrat.length;i++){
			for(int y=0;y<quadrat.length;y++){
				System.out.print(quadrat[i][y]+"     ");
			}//for
			System.out.println();
		}//for
	}//void gebeQuadAus
}//class

Die Ausgabe sieht sieht so aus :

0 1 0
2 0 0
5 4 3


Danke im Voraus!
 
Zuletzt bearbeitet:
Schreib doch mal wo es harkt und ob das, was Du als Ausgabe angibst, die gewünschte oder die tatsächliche ist etc.
 
Zuletzt bearbeitet:
Was mir jetzt spontan auffällt:

Schritt 3) Die nächste Zahl wird oben rechts angeordnet

berückstigst Du gar nicht im Code..

Du prüfst in Deiner For-Schleife ja nur die anderen Schritte 4-6. Ob die richtig sind, hab ich jetzt nicht gecheckt..

Du musst an den Anfang Deiner For-Schleife aber noch einbauen dass die Zahl jeweils oben rechts der letzten einsortieren Zahl eingesetzt wird.

Edit: So, ich hab das bei mir gerade mal ausgebessert.. Jetzt kommt aber immer noch nichts richtiges raus.. Eigtl nur

0 1 0
0 0 0
0 0 0

Bau mal am Ende Deiner For-Schleife ein

Java:
			gebeQuadAus();
			System.out.println("---------");

ein, da kannste dann jede Iteration der Schleife genau Schritt für Schritt nachvollziehen.
 
Zuletzt bearbeitet:

Zurück
Oben