Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
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...)
|
Posté le: 26/05/09 20:31 Sujet du message: |
|
|
profet a écrit: | Les entiers sont plus utiles (et tu peux facilement les convertir en joueurs avec Player(id) tandis qu'un GetPlayerId() est bien plus long) car ils servent également d'index pour les variables array. |
You are a speed freak man, aren't you ?
Sérieusement je trouves que cela rend beaucoup moins intuitif quelque chose censé simplifier la vie.
Et tu me permettras de loler sur la performance ainsi perdue.
Maintenant il se peut que j'ai loupé une utilisation concrète ou un entier serait plus utile, dans ce cas je ne doutes pas que tu combleras cette lacune dés que faire ce peut.
Reste la solution alternative de doubler tes méthodes :p (ok ok c'est plus une mauvaise plaisanterie qu'une idée concrète) _________________
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 26/05/09 21:14 Sujet du message: |
|
|
Troll-Brain a écrit: | Reste la solution alternative de doubler tes méthodes :p (ok ok c'est plus une mauvaise plaisanterie qu'une idée concrète) |
En effet, c'est une très mauvaise blague ^^
Troll-Brain a écrit: | Sérieusement je trouves que cela rend beaucoup moins intuitif quelque chose censé simplifier la vie.
Et tu me permettras de loler sur la performance ainsi perdue. |
Ce n'est pas tant sur la performance, car en effet cela doit être assez minime.
Mais j'utilise fréquemment mes joueurs en associations avec des vecteurs, et je préfère 1000 fois lire un :
Code: | set var[id] = ...
... Player(id) |
que
Code: | set var[GetPlayerId(player)] = ...
... player |
_________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
Posté le: 26/05/09 21:24 Sujet du message: |
|
|
profet a écrit: | En effet, c'est une très mauvaise blague ^^ |
A votre service.
profet a écrit: | Ce n'est pas tant sur la performance, car en effet cela doit être assez minime.
Mais j'utilise fréquemment mes joueurs en associations avec des vecteurs, et je préfère 1000 fois lire un :
Code: | set var[id] = ...
... Player(id) |
que
Code: | set var[GetPlayerId(player)] = ...
... player |
|
Donc cela te simplifie la vie, certes, mais c'est parce que tu n'as pas une variable array de type player se nommant tout simplement P dans ta librairie principale, ca me fait donc plutôt ch... ceci.
D'autant plus que quasiment toutes les possibilités du jass (struct,function interface, etc) utilisent en fait des entiers.
Cela permet de voir au premier coup d'œil qu'il s'agit d'un joueur, chose fréquemment utilisé dans une map ^^
Si jamais la question te brule les lèvres, non ce n'est pas du flood à proprement parler, c'est vraiment ce que je pense.
EDIT : Mouai cela reste quand même un beau HS
Faut vraiment que je relise avant de poster ...
Mais j'ai une autre idée en tête que je développerais demain. _________________
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 26/05/09 21:53 Sujet du message: |
|
|
Oui c'est un choix purement arbitraire, mais comme je l'ai dit je trouve que le cast d'un Entier en Joueur est bien plus élégant que l'inverse, ce qui a définitivement décidé mon choix actuel
Quelle est donc cette idée? _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
Posté le: 27/05/09 20:36 Sujet du message: |
|
|
profet a écrit: | Quelle est donc cette idée? |
Très indirectement lié avec ton code.
Comme tu veux garder les entiers, et que j'apprécierais de pouvoir utiliser des joueurs pour les raisons que j'ai déjà évoqués, j'ai une solution pour avoir l'id d'un joueur de façon assez sexy :
Jass: | struct id //wrapper dommage que "id" devrait être un nom asez utilisé, mais je n'ai pas de meilleur nom en tête
static method operator [] takes player p returns integer
debug if p == null then
debug return -1
debug call BJDebugMsg("le player p est null, on retourne l'index -1")
debug endif
return GetPlayerId(p)
endmethod
endstruct
function Test takes player joueur returns nothing
call BJDebugMsg(I2S(joueur:id)) // colon ":" + method operator "[]" for the win
endfunction |
_________________
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 28/05/09 01:29 Sujet du message: |
|
|
Mouai, je sais que tu adules cet opérateur, mais c'est vraiment une solution très très ugly pour un problème qui n'existe pas :/
Mais bon, act as u like. _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
Posté le: 28/05/09 20:15 Sujet du message: |
|
|
profet a écrit: | Mouai, je sais que tu adules cet opérateur, mais c'est vraiment une solution très très ugly pour un problème qui n'existe pas :/
Mais bon, act as u like. |
Pourquoi très ugly, c'est inliné ...
T'as juste quelques variables et fonctions déclarés inutilement, vraiment pas la mer à boire.
Si tu t'en soucies vraiment, dans ce cas go placer tes librairies dans le header (script perso) de la map, pour éviter la déclaration de globales triggers inutiles ...
Pour moi c'est "vraiment" un problème ces entiers à la place de joueur, et si jamais je devais utiliser ton script je l'éditerais sans aucun scrupule.
Maintenant il est inutile que nous développions plus, nous avons parfaitement exposé nos points de vues, contentons nous de camper sur nos positions, as usual. _________________
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 28/05/09 21:03 Sujet du message: |
|
|
Je t'ai exposé les raisons (purement arbitraires) de mon choix, et je ne pense pas camper "bêtement" sur mes positions.
En effet je n'ai pas une variable Player "P", mais j'ai une multitude de variable array contenant divers types de données, dont les index correspondent aux joueurs, comme peut être d'autres gens.
Comme la vie est faite de choix, j'ai donc fait le mien en connaissance de cause à ce moment donné, et je suis (sincèrement) contrit si tu n'y trouves pas ton bonheur :/
Concernant ton dernier bout de code, je trouve ça "ugly" non pas à cause de l'opérateur, mais plutot à cause du fait de devoir utiliser un wrapper pour une chose aussi "simple".
Ca dénature tout simplement mon concept de codage "clean". _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 28/05/09 21:19 Sujet du message: |
|
|
Ce n'est pas vraiment si différent ici, et comme tu l'as dit, c'est facilement modifiable pour utiliser une variable de type joueur (on pourrait presque faire une textmacro pour regénérer tout le code tiens!)
J'essaie de coder générique, mais avoue que tu chipotes sur ce problème là
Car c'est très loin d'être aussi important que toutes les considérations devant être prises en compte pour rendre un système réellement flexible. _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 29/05/09 17:03 Sujet du message: |
|
|
Sinon j'ai un peu réfléchi, c'est pas si ugly que ça, mais je trouve ça pas très utile dans ce cas là.
Enfin moins utile que combiné à une table par exemple, où un TABLE.exists(unite) est vraiment crade, et peut etre joliment remplacé par un unite:hasTable _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
Posté le: 29/05/09 21:20 Sujet du message: |
|
|
C'est sûr que l'utilité, c'est simplement d'avoir un code plus sexy à taper, avec un debug intégré en prime.
Je tachais de répondre à ceci :
profet a écrit: |
Mais j'utilise fréquemment mes joueurs en associations avec des vecteurs, et je préfère 1000 fois lire un :
Code: | set var[id] = ...
... Player(id) |
|
que
Code: | set var[GetPlayerId(player)] = ...
... player |
Comme je l'ai déjà dit je préfère utiliser un player dans ce cas, car ca saute tout de suite plus vite aux yeux, étant donné que pas mal de vJass "features" renvoient / utilisent des entiers.
Et je n'imagine pas de cas concret où je n'utiliserais pas directement un player.
profet a écrit: | J'essaie de coder générique, mais avoue que tu chipotes sur ce problème là Razz
Car c'est très loin d'être aussi important que toutes les considérations devant être prises en compte pour rendre un système réellement flexible. |
Un système, le code interne l'utilisateur s'en fout un peu, du moment qu'il n'est pas trop crade, l'utilisation prime sur tout, osef total que le concepteur du système a un peu plus "galéré" à le concevoir.
Et comme je l'ai déjà expliqué pour moi c'est mieux un player.
Mais je ne suis qu'un pauvre mortel qui peut se fourvoyer _________________
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 30/05/09 00:12 Sujet du message: |
|
|
Troll-Brain a écrit: | Mais je ne suis qu'un pauvre mortel qui peut se fourvoyer | C'est sur que la différence est de mise _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 06/06/09 20:25 Sujet du message: |
|
|
Bin j'ai fait quelques tests, certains trucs avec : sont quand même inlinés, mais peut etre pas ce code là (j'ai pas testé).
Par contre il semblerait que l'inlining ait changé de place dans le preprocessing, il est maintenant passé apres la vérification de la syntaxe.
Avant je rajoutais sur la ligne suivante un caractère à la con (genre un z) et je sauvegardais, et je pouvais vérifier si la ligne d'avant était bien inlinée.
Mais maintenant il faut regarder le .j de la map après la sauvegarde. _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
|