• 03 Mai 2025, 17:12:43


Auteur Sujet: [AIDE] Booleen [RESOLU]  (Lu 1768 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
[AIDE] Booleen [RESOLU]
« le: 14 Septembre 2010, 19:22:30 »
Bonjour,

J'aimerai avoir un peu d'aide, pour savoir comment utiliser les booléens.
Je vous montre un exemple de realisation :

Le bool est à 0,
Le joueur écrit /vache,
Je crée une vache et je met le bool de la vache à 1,
Il retape /vache,
Comme le bool est à 1,
Je lui affiche une fenêtre "Voulez vous remplacer la vache existante ?"

Voila,
Si je n'ai pas été clair,
Je réexpliquerai.

SPiiROo
++

PS : L'exemple est très classe, je sais  :P

EDIT : Resolu, Merci
« Modifié: 14 Septembre 2010, 21:55:03 par spiirou »

Hors ligne Nesik

  • *
  • Grand Banditisme
  • Messages: 674
    • Voir le profil
    • Uknow
Re : [AIDE] Booleen
« Réponse #1 le: 14 Septembre 2010, 20:06:05 »
HS:A quoi ça sert Bool?

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : Re : [AIDE] Booleen
« Réponse #2 le: 14 Septembre 2010, 20:08:43 »



Radis du soir bonsoir !


Hors ligne Nesik

  • *
  • Grand Banditisme
  • Messages: 674
    • Voir le profil
    • Uknow
Re : [AIDE] Booleen
« Réponse #3 le: 14 Septembre 2010, 20:13:20 »
Ok merci Gzsume et Mr C30

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : [AIDE] Booleen
« Réponse #4 le: 14 Septembre 2010, 20:19:47 »
Salut,
pour une vérification de booléen,
if(TonBooleen == true)et pour mettre un booléen sur true ou false :
TonBooleen = true;
TonBooleen = false;

Note : Je sais que dans certains langages tu peux mettre directement if(TonBooleen) et il remplacera automatiquement if(TonBooleen == true) mais je ne sais pas si c'est le cas en pawn...

++

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : [AIDE] Booleen
« Réponse #5 le: 14 Septembre 2010, 21:51:02 »
Merci a tous,
Je me coucherais moins con bête ce soir.

++
SPiiROo

Hors ligne minimicro

  • *
  • Tueur
  • Codeur Php / Mysql / Pawno
  • Messages: 53
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #6 le: 14 Septembre 2010, 23:32:33 »
Citer
Note : Je sais que dans certains langages tu peux mettre directement if(TonBooleen) et il remplacera automatiquement if(TonBooleen == true) mais je ne sais pas si c'est le cas en pawn...

Je confirme, c'est utilisable en Pawn.

Ainsi, tu peux creer une variable "TonBooleen", sans forcement lui donner la Tag Booléen (bool il me semble),

Code: (pawn) [Sélectionner]
new TonBooleen;
lui donner une valeur numérique (ou logique), si tu ajoute le tag bool devant la variable, tu ne pourras qu'utiliser 'true' ou 'false'.

Code: (pawn) [Sélectionner]
TonBooleen = true; ou TonBooleen = 1 (ou un nombre différent de 0))
Code: (pawn) [Sélectionner]
TonBooleen = false; ou TonBooleen = 0
puis vérifier avec

Code: (pawn) [Sélectionner]
if(TonBooleen) (si c'est vrai, ou si != 0)
Code: (pawn) [Sélectionner]
f(!TonBooleen) (si c'est faux, ou si == 0)
Codeur Php / Pawno / MySql - Administration et maintenance serveur

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #7 le: 15 Septembre 2010, 14:28:05 »
Ouep, c'est bien new Bool:IamOrange;
J'utilise beaucoup les booléens, c'est utile et c'est surtout plus propre au niveau du code.

++
R@f

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #8 le: 15 Septembre 2010, 21:17:06 »
Salut,

par contre faites bien attention, en PAWN il n'existe qu'une seule "classe" de variable: le 32 bits.

Par contre, on peut employé la même valeur différemment, c'est ici que les tags entrent en action.
Si l'on veut la variable de base, il suffit de... ne pas mettre de tag.

Par la suite, si on veut:

 - un nombre à virgules, on utilise le tag Float:
 - un booléen (vrai/faux), on utilise le tag bool:


À noter que sa-mp en ajoute quelques un:

 - Menu: pour les menus de gta (originaux, pas les dialog)
 - Text: pour les textdraws
 - ...

À noter (encore), que l'on peut créer autant de tag que cela nous tente. Je dit créer mais en fait il suffit de les utiliser et le reste se fait de lui-même.

Par contre, tous ces tag ne changent pas la nature de la variable. Pour les enlever, il suffit de faire _:nomdelavariable.
Par exemple:

new Float:var1 = 123.432;
new var2 = 134523;
if(var2 == var1)//retourne un avertissement, les tag ne concordent pas
{
...
}
if(var2 == _:var1)//aucun problème n'est trouvé par le compilateur, même si ce n'est surement pas l'expression voulue...
{
...
}

Donc, en comprenant que ce n'est qu'un système permettant d'éviter des erreurs d'inattention, ceux qui pensent sauver de la mémoire en utilisant les bool ont surement déjà deviner qu'il n'en est rien. Simplement dans le mode bool, seule une petite partie des bits de la variables sont utilisés.

Pardonnez moi si je me trompe sur certains points (rien de majeur normalement....)

++Sim++





Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #9 le: 15 Septembre 2010, 21:30:06 »
Merci Sim,
Pour cette explication tres precise.
Tu m'a appris bien des choses avec ce post ^^

SPiiROo
++

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #10 le: 16 Septembre 2010, 07:43:20 »
Bof, c'est un peu merdique, si ca reste toujours des variables de 4 bytes ...



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Re : [AIDE] Booleen [RESOLU]
« Réponse #11 le: 16 Septembre 2010, 10:21:44 »
Bof, c'est un peu merdique, si ca reste toujours des variables de 4 bytes ...
4 bytes pour un booléen ? ça devrait être 1bit normalement. Enfin, je sais pas comment c'est en Pawn mais dans certains langage, le Bool c'est 1bit.

++
R@f

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #12 le: 16 Septembre 2010, 10:32:49 »
Les machines ne savent pas très bien traiter les variables sur un bit.
La plupart du temps, un booléen est stocké dans une variable qui fait un ou plusieurs octets.

Dans le cas du PAWN, la variable qui contient un booléen fait 4 octets (comme toutes les variables PAWN). Mais seul 1 bit de ces 4 octets est utilisé.

En C/C++, selon le compilateur utilisé, une variable de type booléen sera stocké dans 1, 2, 4 ou 8 octets.
Par contre, le C permet, pour gagner de la place en mémoire, de déclarer des variables en donnant le nombre de bits qu'elles occupent. On appelle ça un champ de bit.

++
Syg
Courtesy of GtaManiac

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #13 le: 16 Septembre 2010, 11:51:44 »
Je trouve quand même que 4bytes c'est abusé :p

C'est un peu la même chose pour les chaines de caractères ...

4Bytes pour stocker un caractères au lieu d'un seul ^^

Même si on peut packer 4 caractères dans une seul variable personne ne le fait ^^

Je trouve que niveau mémoire le pawn (small?) gère pas très bien ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [AIDE] Booleen [RESOLU]
« Réponse #14 le: 16 Septembre 2010, 14:56:06 »
Dans une architecture 32 bits, il est plus facile et rapide de manipuler des emplacements mémoire à des adresses multiples de 4.
C'est la même chose en C, chaque variable commence sur une adresse multiple de 4 (même si pour les chaînes de caractères, on n'utilise qu'un seul octet par caractère.

De plus, sur une machine avec 2Go de mémoire, ce n'est pas les quelques Ko que tu perds avec ce système qui vont faire la différence.
La priorité est donnée à la rapidité d'exécution, pas à l'économie de mémoire.

++
Syg
Courtesy of GtaManiac