Rückblick – Vektorrechnung
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 54 von 54.
Aufgabe
EinfachSchreiben Sie eine Funktion createVector, die x- und y-Koordinaten entgegennimmt und einen String zurückgibt, der Vektoroperationen demonstriert.
Erstellen Sie einen Vektor-Konstruktor, der eine Tabelle mit den Feldern x und y aufbaut und dann eine Metatabelle anhängt, die __add für die Vektoraddition und __tostring für eine benutzerdefinierte String-Repräsentation implementiert. Die Funktion soll zwei Vektoren mit den angegebenen Koordinaten erstellen, diese addieren und die String-Repräsentation des Ergebnisses zurückgeben.
Logik:
- Erstellen Sie eine Konstruktor-Funktion, die eine Vektor-Tabelle mit den Feldern x und y aufbaut
- Definieren Sie eine Metatabelle mit
__add, die die entsprechenden x- und y-Komponenten addiert - Definieren Sie
__tostring, um das FormatVector(x, y)zurückzugeben - Hängen Sie die Metatabelle mit
setmetatable()an den Vektor an - Erstellen Sie den ersten Vektor mit den Koordinaten (x, y)
- Erstellen Sie den zweiten Vektor mit den Koordinaten (x, y)
- Addieren Sie die beiden Vektoren mit dem
+Operator - Geben Sie die String-Repräsentation des resultierenden Vektors mit
tostring()zurück
Parameter:
x(number): Die x-Koordinate für beide Vektoreny(number): Die y-Koordinate für beide Vektoren
Rückgabewert: Die String-Repräsentation der Summe zweier Vektoren (string). Format: Vector(6, 8) für die Eingabe (3, 4)
Probier es selbst
function createVector(x, y)
-- Schreibe hier deinen Code
end
Alle Lektionen in Logik & Programmablauf
1Fortgeschrittene Tabelleniteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen2Weitere Funktionen der Tabellenbibliothek
table.concat()Tabellenkonstruktion & unpack()table.sort()Eigene Sortierung mit FunktionenRückblick – Highscore-Tabelle3Fortgeschrittene Funktionskonzepte
Mehrere Werte zurückgebenVariadische Funktionen (...)Funktionen als Werte erster KlasseAnonyme FunktionenWas ist eine Closure?Rückblick – Einfacher Event-Handler6Fehlerbehandlung
Die error()-FunktionGeschützte Aufrufe mit pcall()Zusammenfassung – Sichere Division9Coroutines für Einsteiger
Was ist eine Coroutine?Coroutine erstellen & fortsetzenPausieren mit coroutine.yield()Fortsetzen & yieldCoroutine-Status prüfenRückblick – ZahlengeneratorRückblick – VektorrechnungÜbe selbstständig: Online-Lua-Compiler