Powtórka — matematyka wektorowa
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 54 z 54.
Wyzwanie
ŁatwyNapisz funkcję createVector, która przyjmuje współrzędne x i y oraz zwraca ciąg znaków przedstawiający operacje na wektorach.
Utwórz konstruktor wektora, który tworzy tabelę z polami x i y, a następnie przypisuje do niej metatabelę implementującą __add do dodawania wektorów oraz __tostring do niestandardowej reprezentacji tekstowej. Funkcja powinna utworzyć dwa wektory z podanych współrzędnych, dodać je do siebie i zwrócić tekstową reprezentację wyniku.
Logika:
- Utwórz funkcję konstruktora, która tworzy tabelę wektora z polami x i y
- Zdefiniuj metatabelę z
__add, która dodaje odpowiadające sobie składowe x i y - Zdefiniuj
__tostring, aby zwracało formatVector(x, y) - Przypisz metatabelę do wektora za pomocą
setmetatable() - Utwórz pierwszy wektor o współrzędnych (x, y)
- Utwórz drugi wektor o współrzędnych (x, y)
- Dodaj do siebie oba wektory za pomocą operatora
+ - Zwróć tekstową reprezentację wynikowego wektora za pomocą
tostring()
Parametry:
x(number): Współrzędna x dla obu wektorówy(number): Współrzędna y dla obu wektorów
Zwraca: Tekstową reprezentację sumy dwóch wektorów (string). Format: Vector(6, 8) dla danych wejściowych (3, 4)
Spróbuj swoich sił
function createVector(x, y)
-- Napisz kod tutaj
end
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoi3Zaawansowane koncepcje funkcji
Zwracanie wielu wartościFunkcje wariadyczne (...)Funkcje jako wartości pierwszej klasyFunkcje anonimoweCzym jest domknięcie?Podsumowanie — prosty obsługiwacz zdarzeń6Obsługa błędów
Funkcja error()Wywołania chronione za pomocą pcall()Podsumowanie — bezpieczne dzielenie9Korutyny dla początkujących
Czym jest korutyna?Tworzenie i wznawianie korutynyWstrzymywanie za pomocą coroutine.yield()resume i yieldSprawdzanie stanu korutynyPowtórka — generator liczbPowtórka — matematyka wektorowaPoćwicz samodzielnie: Kompilator Lua online