IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème de OR


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut Problème de OR
    Bonjour les gens,
    J'ai un souci vraiment bête avec un OR qui ne veut pas marcher
    Voilà la ligne qui coince :

    if((strcmp(aw_string(AW_AVATAR_NAME),"Kurt")!=0) || (strcmp(aw_string(AW_AVATAR_NAME),"Biganon")!=0)) {

    C'est donc un if, avec un or au milieu. Le blême c'est que ça marche pas... Je vous explique un peu : j'utilise une SDK pour des bots sur un tchat en 3D, un peu à la Second Life. Son but est de téléporter au point d'entrée tout utilisateur qui tenterait de pénétrer dans un territoire interdit. Tous... sauf certains privilegiés, dont les pseudos sont Lolman et Hyperion. Seulement, quand je met ce OR, aucun de ces deux utilisateurs n'est privilegié, les deux subissent le téléport comme les autres... par contre sans if :

    if(strcmp(aw_string(AW_AVATAR_NAME),"Lolman")!=0) {

    Ca marche très bien :/

    Donc pourquoi mon || ne marche pas ? C'est étrange...

    Merci d'avance, a+

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Kalyptus Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(strcmp(aw_string(AW_AVATAR_NAME),"Lolman")!=0 || strcmp(aw_string(AW_AVATAR_NAME),"Hyperion")!=0) {
    C'est donc un if, avec un or au milieu. Le blême c'est que ça marche pas... Je vous explique un peu : j'utilise une SDK pour des bots sur un tchat en 3D, un peu à la Second Life. Son but est de téléporter au point d'entrée tout utilisateur qui tenterait de pénétrer dans un territoire interdit. Tous... sauf certains privilegiés, dont les pseudos sont Lolman et Hyperion. Seulement, quand je met ce OR, aucun de ces deux utilisateurs n'est privilegié, les deux subissent le téléport comme les autres...
    Si tu veux que les 2 conditions soient réunies, il faut utiliser ET...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut
    Bah justement, je veux pas que les deux soient réunies... Si le pseudo de l'utilisateur est Lolman OU Hyperion, pas les deux en même temps...

    A+

  4. #4
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    essaie
    si non (A et B)

  5. #5
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    excuse moi ! Ca ne doit pas être ça, en fait tu veux l'un mais pas l'autre ...
    si c'est le cas c'est un OU exclusif XOR.

    Si( (non A et B) ou (A et non B) )

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par yakamoneye Voir le message
    excuse moi ! Ca ne doit pas être ça, en fait tu veux l'un mais pas l'autre ...
    si c'est le cas c'est un OU exclusif XOR.

    Si( (non A et B) ou (A et non B) )
    Pas la peine de cherche aussi complique, la chaine ne pouvant pas prendre deux valeurs, le cas ou la chaine vaut A et B n'est pas possible.

    Son problème est tout simplement celui souligné par Emmanuel et Souviron.

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Kalyptus Voir le message
    Bah justement, je veux pas que les deux soient réunies... Si le pseudo de l'utilisateur est Lolman OU Hyperion, pas les deux en même temps...
    Dans ce cas ("le pseudo <...> est"), c'est pas !=0 mais == 0. Relis la doc de strcmp()...

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Kalyptus Voir le message
    Son but est de téléporter au point d'entrée tout utilisateur qui tenterait de pénétrer dans un territoire interdit. Tous... sauf certains privilegiés, dont les pseudos sont Lolman et Hyperion
    ce qui se traduit par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    si utilisateur est différent de Lolman ET utilisateur est différent de Hyperion
           teleportes
    Sinon
           ne fait rien


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo