AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez
 

 Fonction de jet de dés ( x Dés et y faces )

Aller en bas 
AuteurMessage
epimannn
Bonne participation


Messages : 71

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyLun 29 Juin 2009 - 16:34

Bon... j'ai galéré pour arriver à ca, et c'est pas parfait... Donc si y a moyen d'améliorer...

C'est un script de jet de dés, ca peut être utile pour les RPG par exemple.

Alors voici mon petit script ^^

Il utilise 2 arguments, un pour le nombre de dés à tirer, et le second pour le nombre de face des dés.

Le nom du script est JetDe, très important ^^
Code:

{
    if ( argument0 > 0 )
        {
            return ceil(random(argument1)) + JetDe(argument0-1,argument1);
        }


    else
        {
            return 0;
        }
}     

Alors j'explique son fonctionnement...

Argument0 correspond au nombre de dés.
Argument1 correspond au nombre de face d'un dé.

Code:
    if ( argument0 > 0 )

Si le nombre de dés est supérieur à zéro,

Code:
            return round(random(argument1)) + JetDe(argument0-1,argument1);

Je retourne la valeur arrondie du chiffre aléatoire compris entre 0 et argument1, puis j'ajoute cette valeur à JetDe. Je retire 1 dé à la fonction tout en conservant le nombre de faces.

Code:
    else
        {
            return 0;
        }

Sinon, je ne retourne aucune valeur.

Voilà ^^

edit : merci à Shm31 et Arthuro pour la correction Smile


Dernière édition par epimannn le Lun 29 Juin 2009 - 17:32, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité



Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyLun 29 Juin 2009 - 16:42

ceil(x) = arrondir au supérieur
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1442
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyLun 29 Juin 2009 - 16:42

floor(x)
Returns the floor of x, that is, x rounded down to an
integer.
ceil(x)
Returns the ceiling of x, that is, x rounded up to an integer.



donc pour arrondir au supérieur, tu peux utiliser ceil()


edit: devancé par shm.

_________________
Fonction de jet de dés ( x Dés et y faces ) PochetteFonction de jet de dés ( x Dés et y faces ) Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
epimannn
Bonne participation


Messages : 71

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyLun 29 Juin 2009 - 17:32

Merci ! Voilà, c'est corrigé après test Smile
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]

Messages : 7420
Localisation : Essonne

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyMar 30 Juin 2009 - 5:52

bwark!

var tmp,i;
tmp=0;

for(i=à;i<argument0;i+=1)
{
tmp+=ceil(random(argument1));
}

return tmp;


plus rapide, et plus propre...

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Fonction de jet de dés ( x Dés et y faces ) U3dfr2 l'antique http://www.membres.lycos.fr/thedarkminousite/Fonction de jet de dés ( x Dés et y faces ) Sign
Bienvenue au 2544eme utilisateur : sachem !
Revenir en haut Aller en bas
http://www.tdms.fr
epimannn
Bonne participation


Messages : 71

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyMar 30 Juin 2009 - 6:41

pourquoi plus rapide et plus propre ?
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1442
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyMar 30 Juin 2009 - 9:55

utiliser une fonction récursive est en théorie plus lent qu'une simple boucle.
Après c'est pas non plus moche, faut juste faire une petit effort supplémentaire pour bien le comprendre.

_________________
Fonction de jet de dés ( x Dés et y faces ) PochetteFonction de jet de dés ( x Dés et y faces ) Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]

Messages : 7420
Localisation : Essonne

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyMar 30 Juin 2009 - 15:26

j'ai pas dit que c'était moche.

juste plus propre.
niveau mémoire, ça te foutra moins de bazar Wink
(mais, bien sur sous GM, pas de blem, ça c'est juste quand tu fait du C, ou des langages sans 'ramasse miettes)

et les fonctions récursives sont plus lentes.

car tu oblige ton PC à 'empiler' l'état de la mémoire, puis à relancer la fonction.
Ce script ne pourra pas, mais des scripts de ce genre peuvent facilement planter le PC (si la zone de donnée rencontre la zone d'adresse).

M'enfin, encore une fois, c'est pour les langages plus 'anciens'.

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Fonction de jet de dés ( x Dés et y faces ) U3dfr2 l'antique http://www.membres.lycos.fr/thedarkminousite/Fonction de jet de dés ( x Dés et y faces ) Sign
Bienvenue au 2544eme utilisateur : sachem !
Revenir en haut Aller en bas
http://www.tdms.fr
epimannn
Bonne participation


Messages : 71

Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) EmptyMar 30 Juin 2009 - 16:53

merci pour ce complément d'information ^^

J'avais tenté de passer par une boucle while, mais j'arrivais pas à obtenir le meme résultat...

Je connaissais pas la structure que tu as employé, donc je me suis orienté vers la fonction récursive Smile

Au moins, il y a les deux méthode sur le sujet ^^
meme si tu ne détailles pas entièrement son fonctionnement, il me semble avoir vu un "à" à la place d'un zéro ^^

Ca permettera à tout un chacun de choisir sa méthode préféré ou celle qu'il comprendra le mieux Smile
Revenir en haut Aller en bas
Contenu sponsorisé




Fonction de jet de dés ( x Dés et y faces ) Empty
MessageSujet: Re: Fonction de jet de dés ( x Dés et y faces )   Fonction de jet de dés ( x Dés et y faces ) Empty

Revenir en haut Aller en bas
 
Fonction de jet de dés ( x Dés et y faces )
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: