Guten Tag zusammen,
ich möchte sehr gerne eine Schleife Programmieren womit ich durch ein Array wie ein Schnecken Muster laufe.
Das ganze sieht dann so aus:
1 2 3
8 9 4
7 6 5
Es soll für Ungerade nxm Längen funktionieren. Bei 3x3 läuft es bei mir danach nicht mehr also 5x5 geht nicht mehr!
Also zuerst wandert man nach rechts, dann nach unten. Ist man unten angekommen geht man wieder zurück und dann nach oben so weit es geht. Dann wiederholt man das ganze.
Da ich oft die MACKE habe alles in einer Schleife zu versuchen dachte ich könnte man das hier auch hin bekommen doch leider klappt es nicht ganz
Hier mein Programm:
Natürlich würde es Funktionieren wenn ich aus jedem If ein while machen würde und dann mit 5 Schleifen arbeiten würde
Doch das wollte ich eigentlich nicht.
Weiß da jemand eine Idee?
LG
ich möchte sehr gerne eine Schleife Programmieren womit ich durch ein Array wie ein Schnecken Muster laufe.
Das ganze sieht dann so aus:
1 2 3
8 9 4
7 6 5
Es soll für Ungerade nxm Längen funktionieren. Bei 3x3 läuft es bei mir danach nicht mehr also 5x5 geht nicht mehr!
Also zuerst wandert man nach rechts, dann nach unten. Ist man unten angekommen geht man wieder zurück und dann nach oben so weit es geht. Dann wiederholt man das ganze.
Da ich oft die MACKE habe alles in einer Schleife zu versuchen dachte ich könnte man das hier auch hin bekommen doch leider klappt es nicht ganz
Hier mein Programm:
Java:
public class Schnecke {
public static void main(String[] args) {
int n=3;
int m=3;
int[][] quad=new int[n][m];
int zeile=0;
int spalte=0;
for(int i=1;i<=n*m;i++) {
quad[zeile][spalte]=i;
// System.out.print("Zeile "+zeile+" Spalte "+spalte+" ");
if(spalte<n-1 && quad[zeile][spalte+1]==0) {
spalte++;
quad[zeile][spalte]=i;
}
else if(zeile<m-1 && quad[zeile+1][spalte]==0) {
zeile++;
quad[zeile][spalte]=i;
}
else if(spalte>0 && quad[zeile][spalte-1]==0) {
spalte--;
quad[zeile][spalte]=i;
}
else if(zeile>0 && quad[zeile-1][spalte]==0) {
zeile--;
quad[zeile][spalte]=i;
}
}
for(int i=0;i<quad.length;i++) {
for(int j=0;j<quad[i].length;j++)
System.out.print(quad[i][j]+" ");
System.out.println("");
}
}
}
Natürlich würde es Funktionieren wenn ich aus jedem If ein while machen würde und dann mit 5 Schleifen arbeiten würde
Weiß da jemand eine Idee?
LG