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

SL & STL C++ Discussion :

ostream et couleur


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Par défaut ostream et couleur
    Bonjour,

    Je suis entraint de programmer un jeu d'othello en C++ en mode console.
    Avec Borland Builder sous windows.
    Et je voudrais y mettre un peu de couleurs. Pour afficher un Pion j'utilise la surcharge de "<<" dans ma classe Pion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //pion.h
    #ifndef _PION_H_
    #define _PION_H_
    #include <ostream>
    using namespace std;
    typedef enum{BIDON,BLANC,NOIR}Couleur;
    class Pion
    {
                    Couleur color;
            public:
                    Pion();
                    Pion(Couleur);
                    Pion(const Pion&);
                    ~Pion();
                    Couleur getCouleur()const;
                    void setCouleur(const Couleur &);
                    bool operator==(const Pion&)const;
                    bool operator==(const Couleur&)const;
                    bool operator!=(const Couleur&)const;
                    bool operator!=(const Pion&)const;
                    Pion& operator=(const Pion&);
                    Pion& operator=(const Couleur &);
                    friend ostream& operator<<(ostream &,const Pion&);
    };
    Voici le code de la surcharge de "<<".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //pion.cpp
    ostream& operator<<(ostream& os,const Pion& p)
    {
     
            if(p==BLANC)
                    os<<"B ";
            else if(p==NOIR)
                    os<<"N ";
            else
                    os<<" ";
            return os;
    }
    Et je voudrais lors du renvoi de l'"ostream", qu'il lui soit assigné une couleur.
    De sorte à ce que cela devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ostream& operator<<(ostream& os,const Pion& p)
    {
     
            if(p==BLANC)
                    os<<'°'<<//une couleur ;
            else if(p==NOIR)
                    os<<'°'<<// une couleur;   ou un quelque chose dans ce genre
            else               //qui puisse rajouter une couleur.
                    os<<" ";
            return os;
    }
    Est-ce que c possible!!!??
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par défaut
    tu devrais trouver ton bonheur si ta console est ANSI

    http://www.developpez.net/forums/sho...d.php?t=249938

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Par défaut
    La console DOS de XP (qui un émulateur DOS) n'est pas ANSI en tout cas pas à ma connaissance. En plus j'avais lu ce topic mais il ne m'a pas aidé

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Par défaut
    J'ai résolu le probleme en regardant sur le site developpez.net ;-)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    ///avec #include <windows.hpp>
    ostream& operator<<(ostream& os,const Pion& p)
    {
            HANDLE h;
            CONSOLE_SCREEN_BUFFER_INFO ancien;
            h=GetStdHandle(STD_OUTPUT_HANDLE);
            GetConsoleScreenBufferInfo(h,&ancien);
            if(p==BLANC)
            {
                    SetConsoleTextAttribute(h,FOREGROUND_BLUE);
                    os<<"° ";
            }
            else if(p==NOIR)
            {
                    SetConsoleTextAttribute(h,FOREGROUND_GREEN);
                    os<<"° ";
            }
            else
                    os<<" ";
            SetConsoleTextAttribute(h,ancien.wAttributes);
            return os;
    }

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  3. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15
  4. Mixage de Couleurs
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 29/05/2002, 13h34
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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