Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=97168dfdff9375f90af4cd7d79018b78Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

constantes réelles et entières
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 21/07/09 20:43    Sujet du message: constantes réelles et entières Citer

Je crois que lorsque l'on doit spécifier un nombre réel et que l'on met à la place un nombre entier, une conversion est faite automatiquement. Donc mettre "0." au lieu de "0" est avantageux puisque ça évite la conversion.

Alors pourquoi :
Jass:
native GetRandomReal takes real lowBound, real highBound returns real

Jass:
function GetRandomDirectionDeg takes nothing returns real
    return GetRandomReal(0, 360) //pourquoi pas plutôt 0. et 360. ???
endfunction


Confused
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 21/07/09 21:01    Sujet du message: Re: constantes réelles et entières Citer

Max a écrit:
Je crois que lorsque l'on doit spécifier un nombre réel et que l'on met à la place un nombre entier, une conversion est faite automatiquement. Donc mettre "0." au lieu de "0" est avantageux puisque ça évite la conversion.

Alors pourquoi :
Jass:
native GetRandomReal takes real lowBound, real highBound returns real

Jass:
function GetRandomDirectionDeg takes nothing returns real
    return GetRandomReal(0, 360) //pourquoi pas plutôt 0. et 360. ???
endfunction


Confused


Comme tu le sait un entier est un réel particulier, l'inverse n'étant pas forcément vrai.
Les fonctions qui acceptent des réels supporte tout aussi bien des entiers.

Le seul truc à savoir c'est que dans le cas où une fonction est censée retourner un réel, utiliser que des entiers donne un résultat entier, mais sous forme de réel.
Par contre dans la cas de divisions/multiplication un seul réel dans l'équation suffit à obtenir un résultat vraiment réel.

Ex plus clair :
Jass:

function Test takes real r returns nothing
    call BJDebugMsg(R2S(r))
endfunction

call Test(5/2) // 2.000
call Test(5./2) // 2.500

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 21/07/09 21:18    Sujet du message: Citer

Troll-Brain a écrit:
Comme tu le sait un entier est un réel particulier, l'inverse n'étant pas forcément vrai.

Ceci est vrai en maths, mais pas en programmation. Le type réel est un type bien différent du type entier. C'est pourquoi il y a une conversion.

Troll-Brain a écrit:
Le seul truc à savoir c'est que dans le cas où une fonction est censée retourner un réel, utiliser que des entiers donne un résultat entier, mais sous forme de réel.
Par contre dans la cas de divisions/multiplication un seul réel dans l'équation suffit à obtenir un résultat vraiment réel.

Pour les opérateurs en jass, il faut faire attention parce que les caratères * et / sont identiques que ce soit pour les réels ou pour les entiers, alors qu'il devraient y en avoir (logiquement) deux différents de chaque, car ils correspondent à des fonctions différentes (c'est le cas par exemple en Caml : opérateurs * / + - mais aussi *. /. +. -. ).
Le / appelle donc la fonction de la division entière ou celle de la division réelle, suivant le type des opérandes données.

Troll-Brain a écrit:
Les fonctions qui acceptent des réels supporte tout aussi bien des entiers.

C'est une exception prévue par le jass (et bien des langages) afin de mieux coïncider avec la réalité. Mais je suis sûr qu'un entier donné à la place d'un réel dans une fonction, est converti en réel.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 21/07/09 21:40    Sujet du message: Citer

Je vois.
Maintenant je répondrais à ton "pourquoi ?" pas d'autres questions rhétoriques.

- Le gui a t'il été conçu de façon raisonnable ?
- Le gui a t'il a été optimisé de façon raisonnable ?
- Le gui s'adresse t'il plutôt à des codeurs confirmés ?

Et peut être aussi que Blizzard voulait nous montrer que l'on pouvait aussi bien utiliser des réels que des entiers. (jor ...)

PS : Peut être que ce lien te sera d'une aide quelconque :
http://www.wc3c.net/showthread.php?t=66327
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/09 10:17    Sujet du message: Citer

- Moui non
- Moui non
- Euh ouais non

En fait avec le JNGP les fonctions existantes en GUI apparaissent en rouge et les autres en violet c'est ça ? (je n'y avais même pas réfléchi)

Merci pour le lien, ça m'a l'air un peu compliqué et j'suis nul en anglais, mais j'vais essayer de décortiquer tout ça.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 22/07/09 10:27    Sujet du message: Citer

Il y a en effet conversion en réel, mais comme ce sont des constantes, elle est faite à la compilation, c'est à dire au chargement de la carte.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/09 14:04    Sujet du message: Citer

Ayane a écrit:
Il y a en effet conversion en réel, mais comme ce sont des constantes, elle est faite à la compilation, c'est à dire au chargement de la carte.

Aaaah d'accord. Ils ne sont pas bêtes blizzou Razz
Est-ce que ces conversions se déroulent au chargement lors de chaque nouvelle partie, ou uniquement une fois, lorsqu'on sauvegarde la carte par exemple ?
Mais est-ce que c'est vrai dans tous les cas ?
Par exemple si on écrit "5 * 2.", est-ce que cela sera converti en "5. * 2." ? Ou alors... est-ce carrément converti en "10." ?
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 22/07/09 16:05    Sujet du message: Citer

La compilation se fait quand Warcraft 3 charge la carte, donc à chaque nouvelle partie.
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 22/07/09 16:31    Sujet du message: Citer

Pour repondre a ta question il faudrait utilisé le return bug sur du code , en effet ont peut mesuré la taille d'une fonction une fois compilé.

Jass:

function A
80

function B //Identique à A sauf pour le calcul
5*2*2*2*2

function C//Je pense pas que son contenu influ sur les resultat étant donné qu'ont pointe vers la toutes premiere instruction de la fonction , donc même endfunction revient a l'instruction return 0

function C2I

A_size = C2I( function B) - C2I( function A)
B_size = C2I( function C) - C2I( function A)
BJDebugMsg( A_size)
BJDebugMsg( B_size)
BJDebugMsg( B_size - A_size)


Bien sur les 3 fonctions (A/B/C) doivent respecté cette ordre sans avoir d'autre fonction entre.

Edit: J'ai un bug d'affichage chez moi sur les parenthèse : /
(Attention a l'optimisation du script automatique)

Cette méthode a aussi l'avantage que si tu a de nombreuse fonction en série se ressemblant avec juste les valeur de différente ont peut pointé par valeur numérique sur la bonne: I2C( C2I(function 0) + ( (C2I(function 1) - C2I(function 0)) * I) )
La fonction retourné sera donc la fonction I.
Mais après le patch ont pourra plus l'utilisé. Crying or Very sad
_________________


Dernière édition par Darkfeyt le 22/07/09 20:48; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/09 17:53    Sujet du message: Citer

Est-ce que tu pourrais expliquer le code de ta fonction C2I stp ? Je n'y comprends rien Surprised
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 22/07/09 17:54    Sujet du message: Citer

Quelle perte ...
Vive les hashtable et GetHandleId
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 22/07/09 17:55    Sujet du message: Citer

Jass:
function C2I takes code c returns integer
return c
return 0
endfunction


J'ai écrit que le stricte minimum étant donné que j'ai pas d'éditeur jass sur moi et je n'en ai pas écrit depuis des semaines.

Citation:
Quelle perte ...

Ce genre de teste serait devenu impossible , mais après peut être que quelqu'un l'a déjà fait.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 22/07/09 18:10    Sujet du message: Citer

Citation:
Ce genre de teste serait devenu impossible, mais après peut être que quelqu'un l'a déjà fait.


Ce que je veux dire c'est que c'est sans comparaison par rapport aux ajouts à venir.
A moins que tu ne prévoyais de diffuser un virus qui te serait lucratif via war3.
Sérieusement combien d'utilisateurs de l'éditeur ont jamais utilisé C2I et I2C ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 22/07/09 18:14    Sujet du message: Citer

Ils aurait pu simplement tout mettre en native , et I2C aussi en native en ajoutant simplement une vérification dans une liste de fonction déclaré dans un array. (comme sa une fonction non déclaré n'aurait pas pu être exécutable)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 22/07/09 19:37    Sujet du message: Citer

Moi j'utilise C2I et I2C pour faire un array code, ce qui me permet d'écrire un code court pour prendre en compte les 8 événements des touches directionnelles pour tous les joueurs connectés.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com