• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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)
}