• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

[Swift] Playgrounds Hilfethread

ullistein

Sonnenwirtsapfel
Registriert
28.12.10
Beiträge
2.412
Ich hoffe, es gibt so einen Thread noch nicht, die Suche hat mir zumindest keinen ausgespuckt.

Ich versuche mich daran, mit Playgrounds Swiftprogrammierung zu lernen und es macht richtig Spaß damit, auch als Spätjugendlicher.

Nun bin ich bei den Arrays angekommen und tue mich ziemlich schwer damit. Ich bin beim Rätsel „Inselbaumeister“.

Dort soll man in der Mitte der Insel Blöcke platzieren und drumherum Wasser.

Ich scheitere jetzt daran, wie ich in der if-Anweisung die Koordinaten richtig angebe, so dass nur in der Mitte des Feldes Blöcke gesetzt werden. Bei meinen Versuchen kommt bestenfalls ein Kreuz heraus. Ich würde gerne mehrere logische Operatoren aneinanderreihen, aber das darf ich ja nicht.

Wie müssen die Anweisungen also korrekt aussehen?

So habe ich es zurzeit:

Code:
let allCoordinates = world.allPossibleCoordinates
// Create two empty arrays of type [Coordinate].
var water: [Coordinate] = []
var blocks: [Coordinate] = []

for coordinate in allCoordinates {
    if coordinate.column < 8 && coordinate.column > 3 {
        // Append to island array.
    blocks.append(coordinate)
        }
    if coordinate.row > 3 && coordinate.row < 8 {
        blocks.append(coordinate)
    }
    else {
        // Append to sea array.
        water.append(coordinate)
    }
}
// For your island array, place blocks.
for coordinate in blocks {
    world.place(Block(), at: coordinate)
}

// For your sea array, place water.
for coordinate in water {
    world.removeItems(at: coordinate)
    world.place(Water(), at: coordinate)
}