Wiederholung – Vektormathematik
Teil des Abschnitts Logic & Flow 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 Logic & Flow
1Fortgeschrittene Table-Iteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Zusammenfassung – Schreibgeschützte Tabellen7Fortgeschrittene String-Manipulation
string.gsub() für ErsetzungenEinführung in String-Patternsstring.find()string.match()Iterieren mit string.gmatch()Rückblick – Log-File-Parser2Weitere Funktionen der Table-Bibliothek
table.concat()Tabellenerstellung & unpack()table.sort()Benutzerdefiniertes Sortieren mit FunktionenRückblick – Highscore-Tabelle3Fortgeschrittene Funktionskonzepte
Mehrere RückgabewerteVariadische Funktionen (...)Funktionen als First-Class ValuesAnonyme FunktionenWas ist eine Closure?Zusammenfassung – Einfacher Event Handler6Fehlerbehandlung
Die error()-FunktionGeschützte Aufrufe mit pcall()Zusammenfassung – Sichere Division9Coroutines für Anfänger
Was ist eine Coroutine?coroutine create & resumePausieren mit coroutine.yield()resume & yieldCoroutine-Status prüfenWiederholung – ZahlengeneratorWiederholung – Vektormathematik