Les listes

Les listes

> Tutoriel

Une liste permet de stocker plusieurs valeurs dans un ordre précis.

Création et utilisation d'une liste

On peut créer une liste avec la syntaxe suivante :

La première position dans une liste est la position 0. On accède à un élément précis de la liste avec :

De nombreuses fonctions sont disponibles pour manipuler les listes, dans la partie "Listes" de la Documentation. Les plus notables sont :

Itération sur une liste avec la boucle for in

On peut itérer sur chacune des valeurs d'une liste en utilisant une simple boucle for, comme ceci :

Mais il existe une variante de la boucle for qui permet d'itérer sur chacune des valeurs d'une liste plus simplement, la boucle for in. Le code suivant est équivalent au précédent en étant plus concis :

Évaluation des dégâts d'une arme et condition "finisher"

Notre IA actuelle a un problème que vous avez peut être remarqué : quand l'ennemi est presque mort, notre poireau va utiliser ses boosts, soins, boucliers avant d'utiliser son arme, alors qu'il pouvait finir l'ennemi !

Pour améliorer cette situation de fin de combat, on va estimer les dégâts qu'on peut infliger à l'ennemi pour savoir si on peut le finir.

On commence par utiliser la fonction getWeaponEffects qui donne la liste des effets d'une arme :

Un effet est lui-même une liste contenant les 6 éléments suivants : [type, min, max, turns, targets, modifiers]. On calcule les dégâts finaux pour cet effet :

On ajoute les dégâts au total :

On termine par une condition : si le total des dégâts est supérieur à la vie de l'ennemi, on va le tuer : on attaque ! Sinon, on attend avec des puces :

> Astuce : on peut accéder à une plage d'une liste en utilisant la syntaxe liste[2:8].

> Astuce : on peut imbriquer les listes : liste dans une liste [ [1, 2, 3] ] et accès à une liste dans une liste : liste[0][0]

❓ Quizz

À quoi peut servir une liste ?

Stocker plusieurs valeurs Trier des valeurs Exécuter des instructions en parallèle Réaliser plusieurs calculs

Quels codes sont valides ?

var a = [1, 2, 3] a[0] + a[2] var [a] = [1, 2] var [1, 2, 3] count([1, 2, 3]) [ [1, 2], [3, 4], [5, 6] ] liste[5][10]

IA complète