Frage von tigranmanvelyan, 55

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!!!

Antwort
von ymicky, 36

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?

Kommentar von tigranmanvelyan ,

Genau nur die Loecher müssen nach rechts und die an letzer stelle rechts soll nach links das wäre perfekt!!

Kommentar von ymicky ,

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 :)

Keine passende Antwort gefunden?

Fragen Sie die Community