Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
Posté le: 27/09/08 17:07 Sujet du message: la fonction retourne un déploiement ? |
|
|
Salut
j'aimerai faire une fonction qui retourne un entier déploiement seulement je sais pas si c'est possible ou comment on fait car j'ai toujours une fatal error
quand je la copie
je la déclare comme ca :
Jass: | function TirageSansRemise takes integer a, integer b, integer n returns integer array |
Merci _________________
|
|
Revenir en haut |
|
 |
Troll-Brain Ri1kamoua

Inscrit le: 23 Aoû 2007 Messages: 7146 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 27/09/08 17:09 Sujet du message: |
|
|
Ce n'est pas possible.
Que veux tu faire exactement ? _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
 |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
Posté le: 27/09/08 17:17 Sujet du message: |
|
|
en fait je veux faire une fonction qui fait n tirages aléatoires parmi des entiers compris entre a et b
et qui me retourne un tableau d'entiers aléatoires tous différents
comme ca je choisis le n parmi mon nombre de hero / joueurs / ability etc une seule fois et je peux m'en servir dans les boucles _________________
|
|
Revenir en haut |
|
 |
Darkfeyt Floodeur prématuré
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
|
Posté le: 27/09/08 17:23 Sujet du message: |
|
|
Utilise une global , au pire avec des index de départ , et encore au pire avec plusieurs variable. _________________
|
|
Revenir en haut |
|
 |
Troll-Brain Ri1kamoua

Inscrit le: 23 Aoû 2007 Messages: 7146 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 27/09/08 17:24 Sujet du message: |
|
|
Dans ce cas je te conseille un returns nothing ou pourquoi pas boolean (paramètres invalides ou non).
Et tu set une variable globale array, et une variable globale entière indiquant l'index max de la variable array.
Aprés tu peux faire des loops avec la variable globale array.
PS: Procures toi le jass new gen pack, à moins que tu utilises un mac ?
Je ne m'en rappelle plus ... _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
 |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
|
Revenir en haut |
|
 |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
|
Revenir en haut |
|
 |
Troll-Brain Ri1kamoua

Inscrit le: 23 Aoû 2007 Messages: 7146 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
|
Revenir en haut |
|
 |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
|
Revenir en haut |
|
 |
Rommstein60 MODÉRATEUR À LA RETRAITE

Inscrit le: 23 Aoû 2007 Messages: 4767 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
|
|
Revenir en haut |
|
 |
Troll-Brain Ri1kamoua

Inscrit le: 23 Aoû 2007 Messages: 7146 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
|
Revenir en haut |
|
 |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
|
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: 27/09/08 21:17 Sujet du message: |
|
|
Sinon tu peux également utiliser le vJass et renvoyer un type personnalisé.
Jass: | type intarray extends integer array[100]
function A takes nothing returns intarray
local intarray IA = intarray.create()
//...
return IA
endfunction
|
Attention, ne pas oublier de détruire la valeur retournée après s'en être servie, avec un .destroy().
J'en profite pour redonner le lien suivant : FW Types
Dans ce cas, le type est en fait une structure, mais elle s'utilise exactement comme le type, mais possède en plus des méthodes utiles. _________________
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: 7146 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 27/09/08 21:21 Sujet du message: |
|
|
L'erreur de compilation venait du fait que tu n'utilisais pas le signe moins "-", mais un autre caractère "–".
(Fallait la trouver petite espiègle )
Voici ma solution :
Jass: | // Si tu ne possédes pas windows xp et donc ne peut utiliser jasshelper (ou mieux le jass new gen pack),
// déclare ces globales dans l'éditeur de variables, tu devras bien sur rajouter "udg_" dans la fonction
globals
integer N
integer array Table
endglobals
function TirageSansRemise takes integer a, integer b, integer n returns nothing
local integer temp= -1
local integer index
local integer max= (b-a) + 1
set N= n // on stocke le nombre d'entiers
// initialisation de toutes les valeurs possibles
loop
exitwhen a> b // on part de l'hypothèse que b > a
set temp= temp+1
set Table[temp]= a
set a= a+1
endloop
// rangement des valeurs selon un ordre aléatoire
loop
exitwhen n== 0
set n= n-1
set max= max - 1
set index= GetRandomInt(0,max)
set temp= Table[index]
set Table[index]= Table[max]
set Table[max]= temp
endloop
endfunction
function Exemple takes nothing returns nothing
local integer i
call TirageSansRemise(3,7,4)
set i= N
loop
exitwhen i== 0
set i= i-1
call BJDebugMsg(I2S(Table[i]))
endloop
call BJDebugMsg(" ")
endfunction |
PS : La fonction tel qu'elle est actuellement ne préserve pas l'utilisateur de lui même, il n'y a aucun déboguage.
Il faudrait vérifier que a>b, ou pourquoi pas déterminer le minimum et le max entre a et b, que n>0 et <=(b-a)+1 (à moins que l'on puisse choisir plusieurs fois le même nombre si la liste est plus petite que le nombre de chiffres voulus), etc ...
@Profet: hmm c'est bien beau mais je ne vois pas comment utiliser le return  _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
 |
zazaa Membre actif

Inscrit le: 05 Aoû 2008 Messages: 197 Sujets: 24
|
|
Revenir en haut |
|
 |
|