AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Troncature

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: Troncature   Ven 30 Juil 2010 - 19:11

J'ai cherché et je n'est pas trouver donc je pose ici un script qui permet de faire la troncature d'un nombre.

Troncature à l'unité:
Citation :
SPLN a écrit:
var a, b;
a = real(argument0)
b = a - frac(a)

return real(b)
onilink_ a écrit:

return floor(abs(argument0))*sign(argument0)

Troncature multiple:
Code:
var a,b,c;
a = argument0; //Nb a tronquer
b = argument1; // Tronquature à
c = a - frac(a*power(10,b))/power(10,b)

return c;

C'est simple, mais efficace!

Exemple: tronc(97.4) = 97

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!


Dernière édition par SPLN le Ven 30 Juil 2010 - 21:40, édité 3 fois
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 19:13

floor

_________________
Tous les icones de gm utilisables sur le cbna ICI
Revenir en haut Aller en bas
http://www.lecbna.org
nicoulas
*Excellent utilisateur*
avatar

Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 19:17

Lol ouais floor();
Puis sinon la ligne b = 0; sert à rien.
(et aussi c'est pas optimisé et tu utilise au moins un real() pour rien)
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 19:31

floor != troncate :honte:
floor arrondi au chiffre le plus bas
si t'a -4.3 ca te donne -5 au lieu de -4

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 20:26

troncature = arrondi au nombre entier le plus pres non ?
si c'est le cas, c'est round()
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 20:31

b = 0 est une erreur de ma part.[corrigé]
Tronquer un nombre c'est un nombre dont on a retiré la partie décimale.

10.77 = 10;
10.11 = 10;

C'est ça une troncature.

Pour l'histoire du real() c'est que généralement les vars que j'utilise qui passe sous cette fonction tronc sont des strings.De plus frac() ne marche qu'avec des réels!C'est juste au cas où.

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 20:36

en fait, elle est utile la fonction comme ca car comme dit wargamer :
Citation :
floor != troncate
floor arrondi au chiffre le plus bas
si t'a -4.3 ca te donne -5 au lieu de -4
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 20:38

ou sinon floor(abs(x))*sign(x)

_________________
                 
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 20:52

onilink_ a écrit:
ou sinon floor(abs(x))*sign(x)
En effet, ça fonctionne aussi.
Et prend moins de place et :snif2: ! XvD

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 21:02

niveau perf ca se vaut? gnii

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 21:17

ou
x-frac(x) gnii gnii

_________________
Tous les icones de gm utilisables sur le cbna ICI
Revenir en haut Aller en bas
http://www.lecbna.org
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 21:34

Ou bien:

Code:
var a, b, c;
a = argument0; //Nb a tronquer
b = argument1; // Tronquature à (0 - unité ; 1 - dixième ; etc..)
c = a - frac(a*power(10,b))/power(10,b)

return c;

Fonction optimisé pour qu'on puisse tronquer à l'endroit souhaiter!
Par contre GM est débile car parfois il affiche des 0 inutiles.

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Ven 30 Juil 2010 - 22:44

c'est parce qu'après ces zero y un petit un qui fait ***** beh
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 0:49

onilink_ a écrit:
c'est parce qu'après ces zero y un petit un qui fait ***** beh
ba c'est a ce moment la qu'on peut utiliser round(), comme ca, il enleve le zero, ca donne :
return round(c);
et le tour est joué Wink
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 1:20

Oui mais ça fait toujours une opération supplémentaire. De plus selon les calculs ont veux pas toujours utiliser round pour pas détruire toutes nos décimales (pas ici évidement).

_________________
                 
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 1:30

Citation :
ou sinon floor(abs(x))*sign(x)

au pire restons avec celle ci
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 2:19

au pire tu fiat un décalage et hop...(faut jsute savoir gm utilise quoi)

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 11:16

comme types de donnée ? des double et des *char

_________________
                 
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 18:30

arf ca risque d'être plus compliquer et surement pas très performant

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Sam 31 Juil 2010 - 18:49

De toute façon on ne peut pas accéder a la mémoire des variables directement.

_________________
                 
Revenir en haut Aller en bas
PHENIXprod
Utilisateur confirmé: Rang ****
avatar

Messages : 834
Localisation : dubudubudu
Projet Actuel : fumer un join
edit: fumer 2 join

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 9:47

Peut-être avec une dll? (J'avais essayé d'en faire une pour modifier les variables d'un autre programme^^)
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 10:41

Oui mais après reste a savoir quelles sont les variables (leurs noms) , si ce sont celles du moteur GM , ou du jeu ... bref la galere

_________________
                 
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 14:20

tu peux pas faire bob = bob>>8 ❓

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 15:00

ben la tu vas juste diviser ton nombre par 256

_________________
                 
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 15:13

c'est un exemple, d'ailleur si c'est un double ca risque plus de tout faire foirer Very Happy

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 15:16

non, en fait tu n'as pas accès a la mémoire mais juste a la valeur de ta variable.

_________________
                 
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
avatar

Messages : 6936
Projet Actuel : Bataille de cake au fruits

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 15:47

ah je vois... c'est con quoi triste

_________________

Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Troncature   Dim 1 Aoû 2010 - 15:48

C'est le gml

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Troncature   

Revenir en haut Aller en bas
 
Troncature
Voir le sujet précédent Voir le sujet suivant 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: