Récapitulatif - Calcul vectoriel
Fait partie de la section Logic & Flow du Journey Lua de Coddy — leçon 54 sur 54.
Défi
FacileÉcrivez une fonction createVector qui prend des coordonnées x et y et renvoie une chaîne de caractères illustrant des opérations sur les vecteurs.
Créez un constructeur de vecteur qui construit une table avec les champs x et y, puis attache une métatable implémentant __add pour l'addition de vecteurs et __tostring pour une représentation personnalisée sous forme de chaîne. La fonction doit créer deux vecteurs en utilisant les coordonnées fournies, les additionner et renvoyer la représentation sous forme de chaîne du résultat.
Logique :
- Créez une fonction constructeur qui construit une table de vecteur avec les champs x et y
- Définissez une métatable avec
__addqui additionne les composantes x et y correspondantes - Définissez
__tostringpour renvoyer le formatVector(x, y) - Attachez la métatable au vecteur en utilisant
setmetatable() - Créez le premier vecteur avec les coordonnées (x, y)
- Créez le second vecteur avec les coordonnées (x, y)
- Additionnez les deux vecteurs ensemble en utilisant l'opérateur
+ - Renvoyez la représentation sous forme de chaîne du vecteur résultant en utilisant
tostring()
Paramètres :
x(nombre) : La coordonnée x pour les deux vecteursy(nombre) : La coordonnée y pour les deux vecteurs
Retourne : La représentation sous forme de chaîne de la somme de deux vecteurs (string). Format : Vector(6, 8) pour l'entrée (3, 4)
Essayez vous-même
function createVector(x, y)
-- Écrire le code ici
end
Toutes les leçons de Logic & Flow
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() vs. ipairs()Récapitulatif - Fiche de personnage2Plus de fonctions de la bibliothèque table
table.concat()Construction de table & unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des scores3Concepts avancés sur les fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu'est-ce qu'une closure ?Récapitulatif - Gestionnaire d'événements simple6Gestion des erreurs
La fonction error()Appels protégés avec pcall()Récapitulatif - Division sécurisée9Les coroutines pour débutants
Qu'est-ce qu'une coroutine ?coroutine create & resumePause avec coroutine.yield()resume & yieldVérifier l'état d'une coroutineRécapitulatif - Générateur de nombresRécapitulatif - Calcul vectoriel