Wie kann man bei Arrays die Elemente verschieben?
Hallo, ich will das Spiel Lotti Karotti in Java umsetzen und hänge gerade bei einem Problem fest. Ich muss im Spielfeld das aus einem Array besteht bestimmte Felder verschieben. Also z.B is das 3. und 6. Feld ein "Loch" und die müssten alle um 2 nah rechts verschoben werde. Und ich komm ncht auf die Loesung. Hoffentlich koennt ihr mir helfen.
Danke schon im Vorraus!!!
2 Antworten
Was heißt das alle um 2 nach rechts verschoben werden müssen?
Hast du mehrere Arrays die jeweils eine Reihe abbilden und die müssen alle zwei nach rechts, oder muss nur eine Reihe(Also ein Array) so verändert werden, dass diese Reihe zwei nach rechts verschoben wird.?
EDIT:Habe gerade noch deinen Kommi unten gesehen.
Also nur die Löcher sollen zwei nach rechts.
Was ist wenn ein Loch an der letzten Stelle rechts ist, soll es dann an der ersten Position links auftauchen?
Dann müsste das in etwa so aussehen (angelegt an C#):
// Erzeugen eines temporären Arrays mit verschobenen Werten // reihenArray ist dein eigentliches Array mit den Werten der Reihe bool[] tmpArray = new bool[reihenArray.Length]; // false = kein Loch / true = Loch tmpArray[0] = reihenArray.Lenght - 2; // Zweitletzter Wert aus deinem Reihenarray an die erste Stelle des tmpArrays tmpArray[1] = reihenArray.Lenght - 1; // Letzter Wert deines Reihenarrays an die zweite Stelle for (i = 0; i < reihenArray - 2; i++) { tmpArray[i+2] = reihenArray[i]; }
// kopiere alle Werte des temporären Arrays in das eigentliche Reihenarray for (k = 0; k < tmpArray; k++) { reihenArray[i] = tmpArray[i]; }
Wie gesagt ist es ein C# Code, da ich noch nie mit Java gearbeitet habe, hoffe es hilft dir dennoch weiter :)
Was verstehst Du unter Loch? Meinst Du "null"? Und wie groß ist das Array? So ganz klar ist mir die Aufgabenstellung leider nicht ...
Die Felder im Array haben den Zustand Geschlossen und den Zustand Offen. Und die mit dem Zustand Geschlossen also Loecher werden um 2 nach Rechts verschoben. Also Feld 2 das Geschlossen ist wird Offen gesetzt und Feld 4 soll dann von Offen nach Geschlossen gesetzt werden. Die Sache ist das das Array keine vorgegebene groese hat sondern immer geändert werden kann. Hoffe es ist jetzt verständlicher
jetzt ist es schon klarer. Aber was ist, wenn die Größe des Arrays nicht ausreicht um das Loch zu verschieben? Und kann es mehrere Löcher geben oder nur ein einziges?
Genau nur die Loecher müssen nach rechts und die an letzer stelle rechts soll nach links das wäre perfekt!!