Reflexion sur l'analyse d'un probleme - script -

Répondre
Partager Rechercher
Voila un petit document rédigé par mes soins, il présente notament une méthode générale de conception de scripts en vu de résoudre un problème particulier. Le tout illustré par le problème de la flying box. Il est plus questions de méthodologie que de technique car je pense que cela est capital d'acquérir une certaine rigueur avant de se lancer.

Je conseille aux débutants d'y jeter un coup d'oeil ;-)

EDIT : Nouvelle version en beau, PDF et tout et tout
Fichiers attachés
methodes.pdf (134,9 Ko, 201 affichages)
Parcours TRES rapide du texte ... J'adore la tonalité du cours pour la forme. Je dirais rien sur le fond car c'est pas mon truc le LSL. J'aurais eu plus de profs comme ça, chuis certain que j'aurais réussi mon BEPC tiens ...
Pas de pot ... J'ai surtout croisé des psychorigides
C'est vraiment très bien pensé et expliqué, seulement j'adhère pas du tout sur le fonctionnement du script (pas totalement mais quelques parties).

Par exemple le fait d'utiliser une seconde state et ensuite une condition pour vérifier quel mode utiliser (monter ou descendre). La seconde state elle-même aurait pu éviter ce genre de condition, c'est généralement très utile pour éviter de se retrouver avec un script bourré de conditions partout dans une seule state.

Ensuite, la méthode de la boucle de llSetPos est ultra lente si on décide de monter dans les 1 000 mètres, une utilisation de warpPos ne serait pas plus adaptée pour ce genre de système ?

Le warpPos en soit peut causer plus de lag et prendre pas mal de mémoire dans un script à cause d'une utilisation de liste mais pour un script comme ça (et depuis mono) je trouve que ça serait une bonne méthode.

Après je peux concevoir que pour les débutants, cette fonction soit pas trop adaptée mais c'était juste pour donner une idée.
Tes remarques sont justes, et j'en suis tres conscient ! Habituellement c'est ce que je fais, mais comme je l'ai précisé, tout cela fait partie d'un milkshake pedagogique.

La fonction onSit en est un bon exemple, le fait de vérifier si on est en bas ou en haut est une consequence du mode d'utilisation des fonctions que j'ai voulu montrer : on est pas obligé de savoir ce qu'il y a dans les fonctions pour faire le corps du script. Par conséquent on utilise dans les 2 états une fonction onSit() cela implique donc une utilisation commune de onSit(). Cette utilisation commune implique alors l'utilisation du booléen dans la partie suivante du raisonnement. J'espere que tu comprends la "logique", ce sont des exemples betes et mechants pour comprendre une methode.

Dans un cadre normal, j'aurai pas fait comme ca, je dois l'admettre. Pour ce qui est du deplacement, j'utilise une technique simple, pas la peine de compliquer avec des listes a construire de positions, puis d'utiliser le "hack" de llSetPrimitiveParams.

Merci pour ce retour
Citation :
Publié par bestmomo
Merci pour cette contribution méthodologique imprégnée d'humour
Idem pour moi

Petite remarque sur la forme : Les scripts sont difficiles à lire à cause du format texte et de la couleur c'est dommage...
Citation :
Publié par Seb_01
Petite remarque sur la forme : Les scripts sont difficiles à lire à cause du format texte et de la couleur c'est dommage...
Erf oui je suis d'accord. Comme je fais tout sur bloc note, j'ai pas l'habitude la mise en forme ... Je ferai un effort lorsque j'appliquerai les prochaines modifs pour mettre en forme tout ca dans un pdf et en couleur svp
Citation :
Publié par Ahuri Serenity
Erf oui je suis d'accord. Comme je fais tout sur bloc note, j'ai pas l'habitude la mise en forme ... Je ferai un effort lorsque j'appliquerai les prochaines modifs pour mettre en forme tout ca dans un pdf et en couleur svp
Très bon choix
Sympa ta note.

C'est ce que j'applique personnellement:
- bien réfléchir avant, écrire ou schématiser si nécessaire, et avoir ainsi une bonne idée de ce que l'on veut faire.
- réaliser au plus tôt la fonction principale.
- ajouter une à une les fonctions accessoires.
- tester et débogguer chaque fois que l'on rajoute quelque chose.
- penser toujours écriture modulaire et réemploi du code.
Dans la série des conseils pour bien débuter...

faire l'économie de caractère par fainéantise ou pseudo optimisation est une erreur trop souvent commise qui rend les scripts austères, difficiles à comprendre et maintenir...

exemple simple


Code PHP:

integer  porte;

....
porte TRUE;
....

if (
porte)
  
line code TRUE
else
  
line code FALSE;

me fait bondir. On teste quoi finalement...

si on se donne la peine de rajouter quelques caractères


Code PHP:

integer Porte_Ouverte;

....
Porte_Ouverte TRUE;
....
  
if (
Porte_Ouverte)
  
line code TRUE
else
  
line code FALSE;

déja mieux

ou encore ... si on rajoute un p'tit plus de caractères..



Code PHP:

integer Position_Porte;
integer  OUVERTE TRUE;

....
Position_Porte OUVERTE;
....

if (
Position_Porte == OUVERTE)  
  
line code OUVERTE
else
  
line code FERMEE;

De même que pour la codification des variables... Ahuri l'a très bien fait dans ses scripts.
Dans l'exemple donné j'aurai du ajouter la lettre i pour indiquer un integer et Majuscules pour dire variable globale. Il existe quelques règles dans ce domaine.

Ma règle à moi est que les Variables Globales commencent par une majuscule les locales non. Les constantes en MASJUCULES etc...
Certes quand je code vite fait je ne respecte pas cela ce qui est une erreur! mais quand je me relis en général je me discipline.

Bref entre le parfait et le bordel il y a de la place pour écrire ( sur la forme) un script correct.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés