thylo.be

Le protocole de panne

1. Lire le message en entier, et le numéro de ligne. Le numéro indique où la machine a buté — la faute est souvent une ligne plus haut.

2. Dire à voix haute ce que cette ligne est censée faire.

3. Afficher la valeur. console.log(maVariable). Vérifier ce que la variable contient vraiment, pas ce qu'on croit.

4. Retirer des lignes jusqu'à ce que ça remarche, puis en remettre une à la fois.

Règle des dix minutes : au-delà, demander. D'abord au binôme voisin.

Toutes les pannes n'affichent pas de message. Un code qui tourne et ne fait rien est une panne comme une autre. Les huit causes les plus fréquentes, chacune avec son exemple tiré d'une table de jeu de rôle :

CauseÀ la tableCe qui se passe
Une majuscule là où il n'en faut paslet jetDeDe déclaré, if (JetDeDe === 20) écritJetDeDe is not defined : pour la machine, ce sont deux noms différents
Une variable jamais déclaréepieces = pieces + 10; après le pillage, sans let pieces au-dessuspieces is not defined : la bourse n'existe pas, on ne peut rien y ajouter
Une variable déclarée sans valeurlet experience; puis experience = experience + 100;undefined plus 100 donne NaN. Le personnage ne monte jamais de niveau, sans message
Un argument manquantfloor(random(20)) pour lancer un d20Le dé donne de 0 à 19. Le 20 naturel ne sort jamais, il fallait random(1, 21)
= écrit à la place de ===if (jetDeDe = 20)Le dé est mis à 20 au lieu d'être lu : chaque jet devient un coup critique
Une variable déclarée dans draw() alors qu'elle devrait vivre au-dessuslet pointsDeVie = 30; en première ligne de draw()Le monstre retrouve toute sa vie soixante fois par seconde, comme un troll qu'aucune torche ne brûle
Une fonction définie et jamais appeléefunction soigner() écrite, rien ne l'appelleLe clerc du groupe connaît le sort de soin et ne le lance jamais
Un index de tableau qui n'existe pasinventaire[3] dans ["épée", "corde", "torche"]La quatrième case d'un sac qui en a trois : undefined, sans message