Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 02/02/13 10:32 Sujet du message:
Oui.
Déjà, tu n'as pas compris ce que TB t'a dit à propos de la méthode "Create". Tu l'as bien renommé mais ça ne suffit pas.
Il faut également renommer la méthode "CrtPatrol" en "create" pour la même raison et enlever ce conseil sur "inspirez-vous de CreateTimer". Les méthodes n'ont pas ce problème d'avoir des noms en conflit avec d'autres, puisque la syntaxe indique clairement au pré-compilateur de quelle méthode il s'agit. Une méthode est mise en "private" uniquement parce que l'auteur de la librairie ne veut pas qu'on puisse l'utiliser en dehors de la structure.
Et la méthode qui permet la création d'une instance doit s'appeler "create", c't'une norme du vJass suivie par tout le monde (et indiquée dans le manuel).
Ensuite, je trouve qu'il faudrait faire un petit paragraphe pour expliquer en quoi cette façon de faire a des avantages et des inconvénients par rapport à l'utilisation de TimerUtils.
private static method Nom2 takes nothing returns nothing
local thistype this = GetTimerData( GetExpiredTimer() )
// Actions à exécuter en boucle pour une instance
endmethod
static method create takes /* ce que tu veux*/ returns thistype
local thistype this = thistype.allocate()
set this.t = NewTimerEx( this )
call TimerStart( this.t, 0.01, true, function thistype.Nom2 )
return this
endmethod
endstruct
endlibrary
C'est tout ce que je vois en ce qui me concerne. _________________
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
Posté le: 02/02/13 21:02 Sujet du message:
Tirlititi a écrit:
Oui.
Déjà, tu n'as pas compris ce que TB t'a dit à propos de la méthode "Create". Tu l'as bien renommé mais ça ne suffit pas.
bin en mêm temps tb explique le minimum syndicale donc j'comprend jamais ses conseils ><
Citation:
Il faut également renommer la méthode "CrtPatrol" en "create" pour la même raison et enlever ce conseil sur "inspirez-vous de CreateTimer". Les méthodes n'ont pas ce problème d'avoir des noms en conflit avec d'autres, puisque la syntaxe indique clairement au pré-compilateur de quelle méthode il s'agit. Une méthode est mise en "private" uniquement parce que l'auteur de la librairie ne veut pas qu'on puisse l'utiliser en dehors de la structure.
Et la méthode qui permet la création d'une instance doit s'appeler "create", c't'une norme du vJass suivie par tout le monde (et indiquée dans le manuel).
s'pas de ma faute si sapeur ne l'explique pas dans son tuto u_u. à ce moment la c'est à lui de le rajouter comme mon tuto est une extension du sien... et moi je modifierais (sans l'expliquer).
Citation:
Ensuite, je trouve qu'il faudrait faire un petit paragraphe pour expliquer en quoi cette façon de faire a des avantages et des inconvénients par rapport à l'utilisation de TimerUtils.
private static method Nom2 takes nothing returns nothing
local thistype this = GetTimerData( GetExpiredTimer() )
// Actions à exécuter en boucle pour une instance
endmethod
static method create takes /* ce que tu veux*/ returns thistype
local thistype this = thistype.allocate()
set this.t = NewTimerEx( this )
call TimerStart( this.t, 0.01, true, function thistype.Nom2 )
return this
endmethod
endstruct
endlibrary
C'est tout ce que je vois en ce qui me concerne.
... bin moi je propose un système, après les gens font ce qu'ils veulent... j'veux bien expliquer l'avantage mais si ce système existe c'est que celui la aussi a les siens... et vu toutes les possibilités de système qui existe pour faire à peu près la même chose, si j'devais le faire pour chacun d'entre eux j'en aurait pour le mois.
j'vais le faire mais j'vois pas réellement l'intérêt de le faire pour un et pas pour tous les autres. _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 02/02/13 21:15 Sujet du message:
Parce que "chaque façon de faire a ses avantages et ses inconvénients" a pour corollaire "pour chaque situation donné, il existe une façon de faire qui est meilleure que les autres".
Et ce serait bien de donner l'idée à tes lecteurs du genre de situation dans lesquelles ta méthode est mieux que les autres. _________________
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
Posté le: 07/02/13 23:07 Sujet du message:
Tirlititi a écrit:
Jass:
static method create takes /* ce que tu veux*/ returns thistype
local thistype this = thistype.allocate()
if thistype.last == 0 then
set thistype.last = this
set this.prev = this
set this.next = this
// call TimerStart peut être mis là.
else
set this.prev = thistype.last
set this.next = thistype.last.next
set thistype.last.next.prev = this
set thistype.last.next = this
set thistype.last = this
endif
return this
endmethod
petite question, ceci :
Jass:
if thistype.last == 0 then
set thistype.last = this
set this.prev = this
set this.next = this
else
set this.prev = thistype.last
set this.next = thistype.last.next
set thistype.last.next = this
set thistype.last = this
endif
n'est pas suffisant ?
Jass:
set thistype.last.next.prev = this
revient à faire
Jass:
set thistype.last = this
ou alors j'ai mal compris le principe _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
Posté le: 08/02/13 23:02 Sujet du message:
en faite c'est nul en jass ce genre de truc oO à chaque modification d'une instance faut mettre à jours les maillons de la chaines environnant !! archi pas pratique... alala il manque que des pointeurs au vjass _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
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: 09/02/13 00:59 Sujet du message:
Bouah, suffit de faire le code une fois, puis de copier/coller.
Je ne pense pas me tromper en disant qu'une liste chainée est rarement (jamais ?) implémenté de façon native dans un langage.
Et il existe des codes en vJass (sur hiveworkshop ou autre) permettant que la gestion interne de la linked list soit (plus) transparent.
Pour les pointeurs tu en utilises déjà, en gros tous les handle.
Maintenant oui on ne pas pointer sur un entier, et de même on ne peut pas choisir si on passe un paramètre par "référence" ou par "valeur", c'est inhérent au type même du paramètre, mais là on parle des lacunes du jass, c'est donc très difficile, voir impossible d'ajouter cela au vJass, de façon utile et raisonnable en tout cas (je n'ai pas vraiment réfléchit à la question néanmoins)
Le return bug permettait d'utiliser des pointeurs pour tous les types hormis integer, boolean, et peut être real. _________________
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: 09/02/13 11:33 Sujet du message:
Je voulais dire implémenté directement dans le langage, en tant que type, pas inclus dans les library standard (j'aurais du le préciser).
Est ce le cas dans ce que tu donnes en lien ? _________________
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: 16/02/13 12:24 Sujet du message:
Parce que c'est super simple et court comme code, suffisamment pour l'inliner, ce qui ne justifie pas le "requirement", après stoi qui voit, je ne prétend pas détenir la vérité absolue et universelle hein. _________________
Toutes les heures sont au format GMT + 1 Heure Aller à la page Précédente1, 2, 3, 4, 5
Page 5 sur 5
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