Closed cpc6128 closed 2 years ago
La variable spécial joker
était un bon point de repère, puisque dès que nous la voyons, nous savons que cela faisait référence à un objet d'une liste venant d'une boucle, et donc je trouve qu'on s'y retrouve mieux dans le code.
Cependant, pour un débutant/nouveau n'ayant jamais fait de Linotte ou lu la documentation, c'est compliquée de savoir d'où se joker
vient; de plus pour les boucles qui s'imbrique nous pouvons nous retrouver à avoir un peu trop de joker
, et même si il est possible de remonter les boucles avec les apostrophes après la variable joker
, cela devient davantage compliquée de lire le code.
Je pense donc que l'arrivée de cette nouvelle boucle est une bonne idée, mais que l'ancienne avec le joker
est aussi importante et qu'il faut la garder.
Concernant la création automatique de la variable je suis mitigée.
C'est vrai que depuis Linotte 3, le mot-clé Début
a disparut et il est possible de créer ses valeurs un peu partout dans le programme. Je n'aime pas cette façon de faire, je trouve ça bien que toute les variables étaient créées au début de la fonction, comme ça nous avons un aperçu rapide de toute les variables présentes dans la fonction; et donc je pense que créer cette variable avant en indiquant son type est une bonne chose. Mais en même temps un casier en Linotte a ses valeurs qui sont tous du même types, donc si nous savons que le casier est un casier de brique, alors ses valeurs seront du type brique; de plus permettre la création automatique de la variable allège le programme.
Mais il y a un point davantage important, la signification. Créer la variable avant la boucle signifierais visuellement que la variable serait utilisable dans toute la fonction, tandis que créer la variable automatiquement signifie qu'elle ne serait utilisable que dans la boucle.
Je ne sais pas se que vous avez prévue, Utiliser la variable en dehors de la boucle, avec ce que je vient de dire précédemment, donnerait ça :
mot est un mot
pour chaque mot dans mots
si FR@mot = "pomme", interromps
§
EN@mot !
Mais je trouve que c'est plus propre cette façon de faire :
mot trouvé est un mot
pour chaque mot dans mots
si FR@mot = "pomme"
mot trouvé vaut mot
interromps
§
§
EN@mot trouvé !
A voir se que vous préférez.
Bonjour @4surix ,
Merci pour tes remarques précieuses sur cette évolution et le langage en général. Je te rejoins sur l'utilisation du mot clé "début". Je préfère également mettre les variables au début du code. Mais j'ai voulu suivre l'évolution des langages de programmation et supprimer quelques règles que j'avais mis en place.
Et pour le fait de devoir déclarer la variable avant la boucle, je trouve aussi que c'est une très bonne idée et ça reste dans l'esprit du langage.
Ronan
Voici un exemple qui sera exécutable dans la prochaine version 3.14 :
// On touche une brique ?
brique est un rectangle, visible vaut faux
pour chaque brique de briques
si balle.collision(brique)
efface brique // On l'efface de l'écran
score prend score + 10
texte de label prend "Score : {score}"
si direction == 225, direction prend 135
si direction == 315, direction prend 45
ferme
ferme
Proposition de syntaxe pour ne pas à avoir utiliser le joker :
Simplification par :