>VerseTrainer
← Parcours Apprendre

1. Variables & types

Objectifs du module

  • Comprendre l'immutabilité par défaut d'une variable Verse et la différence avec var/set
  • Déclarer une variable immuable (Nom : Type = Valeur) et une variable modifiable (var ... puis set ...)
  • Utiliser les quatre types de base : int, float, string, logic

Variables & types

Le réflexe n°1 à corriger si tu viens de C++, C# ou Blueprint : en Verse, une variable est immuable par défaut. Une fois qu'elle a une valeur, cette valeur ne change plus — jamais — sauf si tu as explicitement demandé le contraire. C'est l'inverse de la plupart des langages, où tout est modifiable sauf mention contraire (const, final, readonly...). Ce choix n'est pas arbitraire : du code qui ne peut pas changer une valeur dans ton dos est plus facile à raisonner, en particulier dans un jeu où plusieurs bouts de logique peuvent tourner en même temps.

Piège

Si tu viens de C++, C# ou Blueprint, ton réflexe naturel sera de supposer que tout est modifiable sauf mention contraire. En Verse, c'est l'inverse : une variable est immuable par défaut, et le reste, jamais.

Déclarer une variable immuable

verse
StartHealth : int = 100
Bonus : int = 10

Chaque ligne suit la même forme : Nom : Type = Valeur. Une fois StartHealth déclarée, aucune ligne suivante ne peut lui donner une autre valeur — le moteur refuse.

Note pour ce parcours : le vrai Verse (UEFN) permet aussi d'écrire StartHealth := 100 en laissant le langage déduire le type tout seul. Le moteur simplifié de VerseTrainer (verse-lite) ne supporte pas encore ce raccourci pour une variable simple : il faut toujours écrire le type explicitement avec : Type = Valeur. Retiens la version longue pour tous les exercices de ce parcours ; tu retrouveras le raccourci := en explorant un vrai projet UEFN.

Piège

Nom := Valeur (sans le type) fonctionne dans un vrai projet UEFN mais pas ici pour une variable simple — le moteur de VerseTrainer ne le supporte pas encore. Écris toujours Nom : Type = Valeur dans les exercices de ce parcours.

Déclarer une variable modifiable

Pour qu'une variable puisse changer, il faut le dire explicitement avec var à la déclaration, puis utiliser set à chaque modification :

verse
var Health : int = 100
set Health -= 25
Health

set accepte aussi les raccourcis +=, -=, *=, /=, qui font l'opération et réaffectent en une seule ligne — set Health -= 25 revient à dire « retire 25 à Health et stocke le résultat dans Health ». Une variable déclarée sans var ne peut jamais apparaître après un set.

Les types de base

Ce parcours utilise quatre types simples :

  • int : un nombre entier (100, -3, 0)
  • float : un nombre à virgule (3.14, 0.5)
  • string : une chaîne de caractères ("Sword")
  • logic : une valeur true ou false

Le moteur n'exige rien de plus complexe pour l'instant : les tableaux, les maps et le type option ont chacun leur propre module plus loin dans le parcours.

Ce que tu vas pratiquer

Les exercices qui suivent te font manipuler ces deux formes (immuable et var/set) sur des scénarios de jeu simples : calculer une vie de départ, appliquer des dégâts, cumuler du butin. Retiens le réflexe : si une valeur ne doit jamais changer une fois posée, pas de var. Si elle doit évoluer au fil de l'exécution (une vie qui baisse, un score qui grimpe), var à la déclaration et set à chaque changement.

À retenir

Pas de var = valeur figée pour toujours. var à la déclaration + set à chaque changement = valeur qui peut évoluer. Le choix par défaut, en cas de doute, reste l'immuable.

Contenu à valider manuellement dans un vrai environnement UEFN avant publication définitive (voir SPEC.md §7 — fidélité sémantique).

Exercices guidés

Exercice 1/5 · Vie de départ

Vie de départ

Complète CalculateStartHealth pour qu'elle déclare une variable immuable qui vaut BaseHealth + 10 (le bonus de départ standard), puis la renvoie.

Utilise la forme Nom : Type = Valeur vue dans la leçon : aucune variable de cet exercice n'a besoin de changer après sa déclaration.

Indices

Chargement de l'éditeur…

Quiz de compréhension

1

Pourquoi le langage Verse rend-il les variables immuables par défaut ?

2

Que faut-il ajouter pour pouvoir modifier une variable après sa déclaration ?

3

Quelle instruction permet de changer la valeur d'une variable var existante ?