Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-45%
Le deal à ne pas rater :
PC Portable LG Gram 17″ Intel Evo Core i7 32 Go /1 To
1099.99 € 1999.99 €
Voir le deal

 

 [résolu]Placement d'une variable

Aller en bas 
4 participants
AuteurMessage
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue



Nombre de messages : 1346

Date d'inscription : 10/05/2012


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyJeu 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 {" ^^
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue



Nombre de messages : 1791

Date d'inscription : 01/08/2011


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyJeu 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é.
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyVen 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)
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyVen 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...
grand sourire 
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.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyVen 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...
grand sourire 
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 !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Hairedplayer
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
Hairedplayer


Nombre de messages : 24

Age : 43

Localisation : Aix en Provence

Date d'inscription : 29/07/2013


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyVen 2 Aoû 2013 - 11:07

Hors sujet , mais c'est quoi le code du pathfinder ?
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyVen 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 !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 EmptyVen 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 grand sourire
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
Revenir en haut Aller en bas
Contenu sponsorisé





[résolu]Placement d'une variable - Page 2 Empty
MessageSujet: Re: [résolu]Placement d'une variable   [résolu]Placement d'une variable - Page 2 Empty

Revenir en haut Aller en bas
 
[résolu]Placement d'une variable
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Pb de variable
» [résolu]Pb Probleme de variable
» [résolu]Comment importer un dessin papier/une photo dans AGS?resolu
» [résolu]Importation fichiers Speech, [résolu]idle View coupée, résolution bords
» Variable

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: