| [résolu]Placement d'une variable | |
|
|
Auteur | Message |
---|
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu]Placement d'une variable Jeu 1 Aoû 2013 - 14:28 | |
| Tu as raison valouef, il n'y en a pas besoin. Du coup on peut faire soit ça : - Code:
-
bool HasInteractWithBin = false; function oPoubelle_Interact() { if (!HasInteractWithBin) { player.Walk(262, 164, eBlock); Display("Et Dieu dit : Fouille cette poubelle !"); player.Say("Oh, une poubelle avec du papier dedans !") player.AddInventory(iPapier); HasInteractWithBin = true; } else { player.Say("J'ai déjà du papier") } } soit ça : - Code:
-
bool HasInteractWithBin = false; function oPoubelle_Interact() { if (!HasInteractWithBin) { player.Walk(262, 164, eBlock); Display("Et Dieu dit : Fouille cette poubelle !"); player.Say("Oh, une poubelle avec du papier dedans !") player.AddInventory(iPapier); HasInteractWithBin = true; return; } player.Say("J'ai déjà du papier") } Et si, on peut faire " } else {" |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Placement d'une variable Jeu 1 Aoû 2013 - 15:30 | |
| Ah d'accord, pourquoi pas. Enfin je crois que je continuerai à utiliser else, c'est plus clair. Maintenant que j'y pense, c'est logique qu'avec else la commande return soit obsolète, car à partir du moment où le if est vérifié, le else n'est pas appelé. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Placement d'une variable Ven 2 Aoû 2013 - 10:03 | |
| Je m'avance un peu, mais à mon avis un programmeur rigoureux (ou une programmeuse rigoureuse) ne verrait pas d'un très bon œil cette utilisation "interchangeable" de return et de else (utilisation à laquelle j'ai moi-même recours). Je pense que là où on peut utiliser un else, il faut utiliser un else. Exemple de mauvaise pratique : - Code:
-
float Inverse(float x) { if (x == 0.0) return 0.0; // Valeur par défaut return 1.0 / x; } Bonne pratique : - Code:
-
float Inverse(float x) { if (x == 0.0) return 0.0; else return 1.0 / x; } EDIT : Remplacement des entiers par des flottants suite à la remarque de Billbis. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Dernière édition par Kitai le Ven 2 Aoû 2013 - 10:52, édité 1 fois (Raison : IntToFloat) |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu]Placement d'une variable Ven 2 Aoû 2013 - 10:18 | |
| Juste un petit commentaire hors sujet et inutile pour dire que ta fonction inverse ne peut retourner comme valeur que -1, 0 ou 1 en l'état, vu qu'elle entre et retourne des int. D'ailleurs elle ne retournera 1 que si on entre 1, et -1 que si on entre -1. Tout le reste renverra 0. Pas super utile comme fonction... Sinon la technique du return permet d’interrompre le fonctionnement d'une longue fonction en cas d'exceptions sans avoir à incrémenter comme un malade la suite de la fontion. C'est assez utilisé dans le code source d'AGS, par exemple dans le code du pathfinder. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Placement d'une variable Ven 2 Aoû 2013 - 11:01 | |
| - Billbis a écrit:
- Juste un petit commentaire hors sujet et inutile pour dire que ta fonction inverse ne peut retourner comme valeur que -1, 0 ou 1 en l'état, vu qu'elle entre et retourne des int. D'ailleurs elle ne retournera 1 que si on entre 1, et -1 que si on entre -1. Tout le reste renverra 0. Pas super utile comme fonction...
Bien vu ! J'ai modifié le code en conséquence. - Billbis a écrit:
- Sinon la technique du return permet d’interrompre le fonctionnement d'une longue fonction en cas d'exceptions sans avoir à incrémenter comme un malade la suite de la fontion.
Je ne dis pas que ça n'a pas d'intérêt, et il y a une vraie pertinence à utiliser return pour interrompre l'exécution d'une fonction lorsqu'on est véritablement dans un cas de "fin de processus". En revanche l'utiliser simplement pour éviter de placer un else après le if, je pense que c'est une mauvaise idée : si tu veux finalement ajouter du code qui sera exécuté inconditionnellement après, il faudra enlever ton return et ajouter un else en conséquence. De plus ça rend la compréhension du code bien plus difficile à la relecture. - Billbis a écrit:
- C'est assez utilisé dans le code source d'AGS, par exemple dans le code du pathfinder.
Comme le dit CJ lui-même : - Chris Jones a écrit:
- DO NOT use this source code as a learning resource or a guide on best practice.
The state of the source code is VERY BAD and should in fact be considered an example of BAD PRACTICE. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Hairedplayer C'est quoi la Tasse Bleue ?
Nombre de messages : 24
Age : 44
Localisation : Aix en Provence
Date d'inscription : 29/07/2013
| Sujet: Re: [résolu]Placement d'une variable Ven 2 Aoû 2013 - 11:07 | |
| Hors sujet , mais c'est quoi le code du pathfinder ? |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Placement d'une variable Ven 2 Aoû 2013 - 12:17 | |
| - Hairedplayer a écrit:
- Hors sujet , mais c'est quoi le code du pathfinder ?
Si tu cliques sur le lien dans le message de Billbis ( lien que je remets ici), tu tombes sur une page GitHub où tu peux voir du code en C++. Cette page s'inscrit dans un projet GitHub plus large qui correspond à l'intégralité du code source d'AGS (moteur et éditeur). Le code sur la page en question est la partie du moteur d'AGS qui calcule la route que doit prendre un personnage pour se rendre d'un point A à un point B (on parle de pathfinding pour désigner un tel calcul). On s'intéresse au pathfinder d'AGS notamment parce qu'on y a découvert un bug occasionnellement gênant et pas encore résolu. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Placement d'une variable Ven 2 Aoû 2013 - 12:36 | |
| - Kitai a écrit:
- Chris Jones a écrit:
- DO NOT use this source code as a learning resource or a guide on best practice.
The state of the source code is VERY BAD and should in fact be considered an example of BAD PRACTICE. Ce pathfinder Je crois que Chris Johnes était dans le vrai sur ce coup là. Parce que ce pathfinder est monstrueusement en train de me rendre zinzin (Je n'ai jamais vu de jeu AGS qui tentait d'utiliser des déplacements "réalistes" et je commence à comprendre pourquoi ) - Kitai a écrit:
- On s'intéresse au pathfinder d'AGS notamment parce qu'on y a découvert un bug occasionnellement gênant et pas encore résolu.
D'ailleurs je vois que dans mon dernier post sur ce topic je minimise ce bug, qui semble être plus grave que je ne pensais, sans compter qu'il y en a d'autres... Bon mais je crois qu'on s'écarte du sujet. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
Dernière édition par valoulef le Ven 2 Aoû 2013 - 12:41, édité 1 fois |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Placement d'une variable | |
| |
|
| |
| [résolu]Placement d'une variable | |
|