Add color
authorDralagen <dralagen@dralagen.fr>
Sat, 30 Nov 2013 00:04:18 +0000 (01:04 +0100)
committerDralagen <dralagen@dralagen.fr>
Sat, 30 Nov 2013 00:15:46 +0000 (01:15 +0100)
12 files changed:
src/ColorTerm.hpp
src/EndRoom.cpp
src/Game.cpp
src/Labyrinth.cpp
src/MonsterRoom.cpp
src/Personnage.cpp
src/Personnage.hpp
src/StartRoom.cpp
src/TreasureDecoArme.cpp
src/TreasureDecoEquip.cpp
src/TreasureRoom.cpp
src/main.cpp

index 863ec36..36beccb 100644 (file)
@@ -3,26 +3,70 @@
 
 #include <ostream>
 
-namespace ColorTerm {
-       enum Code {
-               FG_RED      = 31,
-               FG_GREEN    = 32,
-               FG_BLUE     = 34,
-               FG_DEFAULT  = 39,
-               BG_RED      = 41,
-               BG_GREEN    = 42,
-               BG_BLUE     = 44,
-               BG_DEFAULT  = 49
-       };
-       class Edit {
-               Code code;
-               public:
-               Edit(Code pCode) : code(pCode) {}
-               friend std::ostream& operator<<(std::ostream& os, const Edit& color) {
-                               return os << "\033[" << color.code << "m";
-                       }
-       };
-
-}
+/*
+enum Code {
+       FG_RED     = 31,
+       FG_GREEN   = 32,
+       FG_YELLOW  = 33,
+       FG_BLUE    = 34,
+       FG_MAGENTA = 35,
+       FG_CYAN    = 36,
+       FG_WHITE   = 37,
+       FG_DEFAULT = 39,
+
+       BG_RED     = 41,
+       BG_GREEN   = 42,
+       BG_YELLOW  = 43,
+       BG_BLUE    = 44,
+       BG_MAGENTA = 45,
+       BG_CYAN    = 46,
+       BG_WHITE   = 47,
+       BG_DEFAULT = 39
+};
+
+color : "\033[`CODE`m"
+
+*/
+
+/************
+ *  Global  *
+ ************/
+
+#define COLOR_RESET "\033[0m"
+#define COLOR_ERROR "\033[31m"
+
+/****************
+ *  Personnage  *
+ ****************/
+
+#define COLOR_PLAYER "\033[36m" // cyan
+#define COLOR_STAT   "\033[32m" // green
+#define COLOR_EQUIP  "\033[33m" // yellow
+#define COLOR_DEAD   "\033[31m" // red
+
+/************
+ *  Combat  *
+ ************/
+#define COLOR_MONSTER    "\033[1m" // bold
+#define COLOR_DAMAGE     "\033[31m" // red
+#define COLOR_MONSTER_HP "\033[1;31m" // bold red
+#define COLOR_PLAYER_HP  "\033[1;32m" // bold gree
+
+
+/**********
+ *  Loot  *
+ **********/
+#define COLOR_IMPROVEMENT "\033[34m" // bleu
+
+/*********
+ *  Map  *
+ *********/
+#define COLOR_MAP_DEFAULT "\033[1;39m" // bold
+#define COLOR_MAP_TREASURE "\033[33m" // yellow
+#define COLOR_MAP_MONSTER "\033[31m" // red
+#define COLOR_MAP_END "\033[35m" // magenta
+#define COLOR_MAP_START "\033[34m" // bleu
+
+
 #endif /* COLORTERM_HPP */
 
index ff4bf26..6658185 100644 (file)
@@ -8,7 +8,7 @@
 #include "EndRoom.hpp"
 
 EndRoom::EndRoom(int lvl): RoomComportement(lvl), m_boss(lvl) {
-       m_content = "Ed";
+       m_content = COLOR_MAP_END "Ed" COLOR_MAP_DEFAULT;
 }
 
 EndRoom::~EndRoom() {
@@ -18,7 +18,7 @@ bool EndRoom::isEnd() const { return true; }
 
 int EndRoom::action(Personnage &perso) {
        if (m_boss.action(perso) == RC_CLEAN_MONSTER) {
-               std::cout << "Congratulation " << perso.getNom() << " !! You win !!" << std::endl;
+               std::cout << "Congratulation " COLOR_PLAYER << perso.getNom() << "\033[31m !! \033[33mYOU \033[32mW\033[34mI\033[36mN \033[35m!!" << std::endl;
                return RC_NOTHING;
        }
        return RC_UNDO;
index b4480e7..7ccee85 100644 (file)
@@ -14,7 +14,7 @@ Game::Game(std::string name, int x, int y): m_labyrinth(x,y), m_perso(name) {}
 void Game::launch() {
        help();
        m_labyrinth.gen();
-       // sleep(3);
+       sleep(3);
        do {
                m_labyrinth.print();
                m_perso.actuStat();
@@ -24,6 +24,7 @@ void Game::launch() {
                m_labyrinth.action(m_perso);
        } while(!m_labyrinth.isEnd() && m_perso.getVie() > 0);
 
+       sleep(3);
        m_labyrinth.print(true);
 }
 
index 409ead3..b8d4eb2 100644 (file)
@@ -44,7 +44,11 @@ void Labyrinth::print(bool godMode) const {
                {
                        m_rooms[position(x,y)].print(top,center,bottom, godMode);
                }
-               std::cout << top << std::endl << center << std::endl << bottom << std::endl;
+               std::cout << COLOR_MAP_DEFAULT;
+               std::cout << top << std::endl;
+               std::cout << center << std::endl;
+               std::cout       << bottom << std::endl;
+               std::cout << COLOR_RESET;
        }
 }
 
index 89c242c..9e30cee 100644 (file)
@@ -10,7 +10,7 @@
 #include "ColorTerm.hpp"
 
 MonsterRoom::MonsterRoom(int lvl):RoomComportement(lvl), m_monster(lvl)  {
-       m_content = "Mn";
+       m_content = COLOR_MAP_MONSTER "Mn" COLOR_MAP_DEFAULT;
 }
 
 MonsterRoom::~MonsterRoom() {
@@ -28,23 +28,23 @@ int MonsterRoom::action(Personnage &perso) {
                int damageMonster, damagePerso;
                while (perso.isAlive() && m_monster.isAlive()) {
                        damageMonster = m_monster.receiveDamage(perso.envoieDegat());
-                       std::cout << m_monster.getName() << " -" << damageMonster << "PV";
-                       std::cout << " => " << m_monster.getLife() << "PV" << std::endl;
+                       std::cout << COLOR_MONSTER << m_monster.getName() << COLOR_RESET << " -" << COLOR_DAMAGE << damageMonster << COLOR_RESET <<  "PV";
+                       std::cout << " => " << COLOR_MONSTER_HP << m_monster.getLife() << COLOR_RESET << "PV" << std::endl;
                        if (m_monster.isAlive()) {
                                sleep(1);
                                damagePerso = perso.recoitDegat(m_monster.giveDamage());
-                               std::cout << perso.getNom() << " -" << damagePerso << "PV";
-                               std::cout << " => " << perso.getVie() << "PV" << std::endl;
+                               std::cout << COLOR_PLAYER << perso.getNom() << COLOR_RESET << " -" << COLOR_DAMAGE << damagePerso  << COLOR_RESET << "PV";
+                               std::cout << " => " << COLOR_PLAYER_HP << perso.getVie() << COLOR_RESET << "PV" << std::endl;
+                               std::cout << std::endl;
                                sleep(1);
                        }
                }
                if (perso.getVie() > 0) {
+                       sleep(1);
                        return RC_CLEAN_MONSTER;
                }
                else {
-                       ColorTerm::Edit death(ColorTerm::FG_RED);
-                       ColorTerm::Edit reset(ColorTerm::FG_DEFAULT);
-                       std::cout<<death<<"Vous êtes mort"<<reset<<std::endl;
+                       std::cout<< COLOR_DEAD <<"Vous êtes mort"<< COLOR_RESET<<std::endl;
                }
        }
 
index 256daae..c025b35 100644 (file)
@@ -8,9 +8,13 @@
 
 #include "Personnage.hpp"
 
-#include "ColorTerm.hpp"
-
-Personnage::Personnage(std::string nom): nom_(nom), initVieMax_(100), initChance_(10), initForce_(20), initDegat_(0), initArmure_(0)
+Personnage::Personnage(std::string nom):
+       nom_(nom),
+       initVieMax_(100),
+       initChance_(10),
+       initForce_(20),
+       initDegat_(0),
+       initArmure_(0)
 {
        vieMax_ = initVieMax_;
        vie_    = vieMax_;
@@ -35,8 +39,6 @@ Personnage::~Personnage()
 
 void Personnage::modifierVie(int v)
 {
-       ColorTerm::Edit death(ColorTerm::FG_RED);
-       ColorTerm::Edit reset(ColorTerm::FG_DEFAULT);
        vie_ = vie_ + v;
        if(vie_ > vieMax_)
        {
@@ -45,7 +47,7 @@ void Personnage::modifierVie(int v)
        if(vie_ <= 0)
        {
                vie_ = 0;
-               std::cout<<death<<"Vous êtes mort"<<reset<<std::endl;
+               std::cout<< COLOR_DEAD "Vous êtes mort" COLOR_RESET<<std::endl;
        }
        Personnage::afficheStat();
 }
@@ -113,24 +115,27 @@ void Personnage::actuStat()
 void Personnage::afficheStat()
 {
        actuStat();
+       std::cout<<std::endl;
        std::cout<<"*************************************"<<std::endl;
-       std::cout<<"Statistiques de "<< nom_ <<  std::endl;
-       std::cout<<" Vie : " << vie_ << " / " << vieMax_ << std::endl;
-       std::cout<<" Force : " << force_ << std::endl;
-       std::cout<<" Dégat : " << degat_ << std::endl;
-       std::cout<<" Chance : " << chance_ << std::endl;
-       std::cout<<" Armure : " << armure_ << std::endl;
+       std::cout<<"Statistiques de "<< COLOR_PLAYER << nom_ << COLOR_RESET  <<  std::endl;
+       std::cout<<" Vie    : " << COLOR_STAT << vie_ << COLOR_RESET << " / " << vieMax_ << std::endl;
+       std::cout<<" Force  : " << COLOR_STAT << force_ << COLOR_RESET  << std::endl;
+       std::cout<<" Dégat  : " << COLOR_STAT << degat_ << COLOR_RESET  << std::endl;
+       std::cout<<" Chance : " << COLOR_STAT << chance_ << COLOR_RESET  << std::endl;
+       std::cout<<" Armure : " << COLOR_STAT << armure_ << COLOR_RESET  << std::endl;
        std::cout<<"*************************************"<<std::endl;
+       std::cout<<COLOR_RESET;
 }
 
 void Personnage::afficheEquip()
 {
+       std::cout<<std::endl;
        std::cout<<"*************************************"<<std::endl;
-       std::cout<<"Equipement de "<< nom_ << std::endl;
-       if(casque_) {std::cout<<"Casque : " << casque_->getNom() << std::endl;}
-       if(torse_)  {std::cout<<"Torse : " << torse_->getNom() << std::endl;}
-       if(jambe_)  {std::cout<<"Jambe : " << jambe_->getNom() << std::endl;}
-       if(arme_)   {std::cout<<"Arme : " << arme_->getNom() << std::endl;}
+       std::cout<<"Equipement de "<< COLOR_PLAYER << nom_ << COLOR_RESET << std::endl;
+       if(casque_) {std::cout<<" Casque : " << COLOR_EQUIP << casque_->getNom() << COLOR_RESET << std::endl;}
+       if(torse_)  {std::cout<<" Torse  : " << COLOR_EQUIP << torse_->getNom() << COLOR_RESET << std::endl;}
+       if(jambe_)  {std::cout<<" Jambe  : " << COLOR_EQUIP << jambe_->getNom() << COLOR_RESET << std::endl;}
+       if(arme_)   {std::cout<<" Arme   : " << COLOR_EQUIP << arme_->getNom() << COLOR_RESET << std::endl;}
        std::cout<<"*************************************"<<std::endl;
 }
 
@@ -143,9 +148,9 @@ void Personnage::trouverEquipement(Equipement * e)
                        if(casque_)
                        {
                                std::cout<< " Voulez vous remplacer : "<<std::endl;
-                               std::cout<<casque_->getNom()<<std::endl;
+                               std::cout<< COLOR_EQUIP << casque_->getNom() << COLOR_RESET << std::endl;
                                std::cout<< "Par : " <<std::endl;
-                               std::cout<<e->getNom()<< " ?   y/n "<< std::endl;
+                               std::cout<< COLOR_EQUIP << e->getNom()<< COLOR_RESET <<" ?   y/n "<< std::endl;
                                std::cin >> choix;
                                if(choix == "y")
                                {
@@ -160,7 +165,7 @@ void Personnage::trouverEquipement(Equipement * e)
                        }
                        else
                        {
-                               std::cout<<"Vous équipez : " << e->getNom() <<std::endl;
+                               std::cout<<"Vous équipez : " << COLOR_EQUIP << e->getNom() << COLOR_RESET << std::endl;
                                setCasque(e);
                                uptoday_ = false;
                        }
@@ -169,9 +174,9 @@ void Personnage::trouverEquipement(Equipement * e)
                        if(torse_)
                        {
                                std::cout<< " Voulez vous remplacer : "<<std::endl;
-                               std::cout<<torse_->getNom()<<std::endl;
+                               std::cout<< COLOR_EQUIP << torse_->getNom() << COLOR_RESET << std::endl;
                                std::cout<< "Par : " <<std::endl;
-                               std::cout<<e->getNom()<< " ?   y/n "<< std::endl;
+                               std::cout<< COLOR_EQUIP << e->getNom()<< COLOR_RESET << " ?   y/n "<< std::endl;
                                std::cin >> choix;
                                if(choix == "y")
                                {
@@ -187,7 +192,7 @@ void Personnage::trouverEquipement(Equipement * e)
                        }
                        else
                        {
-                               std::cout<<"Vous équipez : " << e->getNom() <<std::endl;
+                               std::cout<<"Vous équipez : " << COLOR_EQUIP << e->getNom() << COLOR_RESET <<std::endl;
                                setTorse(e);
                                uptoday_ = false;
                        }
@@ -196,9 +201,9 @@ void Personnage::trouverEquipement(Equipement * e)
                        if(jambe_)
                        {
                                std::cout<< " Voulez vous remplacer : "<<std::endl;
-                               std::cout<<jambe_->getNom()<<std::endl;
+                               std::cout<< COLOR_EQUIP << jambe_->getNom() << COLOR_RESET <<std::endl;
                                std::cout<< "Par : " <<std::endl;
-                               std::cout<<e->getNom()<< " ?   y/n "<< std::endl;
+                               std::cout<< COLOR_EQUIP << e->getNom()<< COLOR_RESET << " ?   y/n "<< std::endl;
                                std::cin >> choix;
                                if(choix == "y")
                                {
@@ -213,7 +218,7 @@ void Personnage::trouverEquipement(Equipement * e)
                        }
                        else
                        {
-                               std::cout<<"Vous équipez : " << e->getNom() <<std::endl;
+                               std::cout<<"Vous équipez : " << COLOR_EQUIP << e->getNom() << COLOR_RESET << std::endl;
                                setJambe(e);
                                uptoday_ = false;
                        }
@@ -228,9 +233,9 @@ void Personnage::trouverArme(Arme * a)
        if(arme_)
        {
                std::cout<< " Voulez vous remplacer : "<<std::endl;
-               std::cout<<arme_->getNom()<<std::endl;
+               std::cout<< COLOR_EQUIP << arme_->getNom() << COLOR_RESET << std::endl;
                std::cout<< "Par : " <<std::endl;
-               std::cout<<a->getNom()<< " ?   y/n "<< std::endl;
+               std::cout<< COLOR_EQUIP << a->getNom() << COLOR_RESET << " ?   y/n "<< std::endl;
                std::cin >> choix;
                if(choix == "y")
                {
@@ -245,7 +250,7 @@ void Personnage::trouverArme(Arme * a)
        }
        else
        {
-               std::cout<<"Vous équipez : " << a->getNom() <<std::endl;
+               std::cout<<"Vous équipez : " << COLOR_EQUIP << a->getNom() << COLOR_RESET << std::endl;
                setArme(a);
                uptoday_ = false;
        }
index ad6c30c..a7e0658 100644 (file)
@@ -13,8 +13,8 @@
 
 #include "Equipement.hpp"
 #include "Arme.hpp"
-
 #include "ItemFactory.hpp"
+#include "ColorTerm.hpp"
 
 /**
  * \class Personnage
@@ -41,7 +41,8 @@ class Personnage
                Equipement *jambe_;     ///< Emplacement des jambes du personnage
                Arme *arme_;            ///< Emplacement de l'arme du personnage
 
-               bool uptoday_;          ///< Booleen pour l'actualisation des statistiques du personnage
+               bool uptoday_;          ///< Booleen pour l'actualisation des statistiques du Personnage
+
        public:
                Personnage(std::string nom);
                ~Personnage();
index 0a4e65a..6289154 100644 (file)
@@ -8,13 +8,13 @@
 #include "StartRoom.hpp"
 
 StartRoom::StartRoom(int lvl):RoomComportement(lvl) {
-       m_content = "St";
+       m_content = COLOR_MAP_START "St" COLOR_MAP_DEFAULT;
 }
 
 StartRoom::~StartRoom() {}
 
 int StartRoom::action(Personnage &perso) {
-       std::cout << perso.getNom()<< " à vous de trouver la sortie" << std::endl;
+       std::cout << COLOR_PLAYER << perso.getNom()<< COLOR_RESET " à vous de trouver la sortie" << std::endl;
        return RC_NOTHING;
 }
 
index b9d1460..23901bf 100644 (file)
@@ -23,7 +23,7 @@ TreasureDecoArme::~TreasureDecoArme(){
 void TreasureDecoArme::open(Personnage &p) {
        if (p.getArme() != NULL) {
                for (int i = 0; i < (rand()%m_lvl)+1 ; ++i) {
-               std::cout << "Amélioration d'arme de ";
+               std::cout << COLOR_IMPROVEMENT << "Amélioration d'arme de ";
                switch (rand()%4) {
                                case 0:
                                        std::cout << "Dégat";
@@ -41,11 +41,11 @@ void TreasureDecoArme::open(Personnage &p) {
                                        std::cout << "Vie";
                                        p.setArme(new DArmeV(p.getArme()));
                }
-               std::cout << std::endl;
+               std::cout << COLOR_RESET << std::endl;
                }
        }
        else {
-               std::cout << "Objet non utilisable" << std::endl;
+               std::cout << COLOR_ERROR << "Objet non utilisable" << COLOR_RESET << std::endl;
        }
        sleep(1);
 }
index 0351fcd..e516e39 100644 (file)
@@ -49,7 +49,7 @@ void TreasureDecoEquip::open(Personnage &p) {
 
        if (e != NULL) {
                for (int i = 0; i < (rand()%m_lvl)+1; ++i) {
-                       std::cout << "Amélioration d'équipement ";
+                       std::cout << COLOR_IMPROVEMENT << "Amélioration d'équipement ";
 
                        switch (rand()%4) {
                                case 0:
@@ -68,13 +68,13 @@ void TreasureDecoEquip::open(Personnage &p) {
                                        std::cout << "de Vie";
                                        e = new DEquipV(e);
                        }
-                       std::cout << std::endl;
+                       std::cout << COLOR_RESET << std::endl;
                        p.setEquipement(e);
                }
                sleep(1);
        }
        else {
-               std::cout << "Objet non utilisable" << std::endl;
+               std::cout << COLOR_ERROR << "Objet non utilisable" << COLOR_ERROR << std::endl;
        }
 
 }
index c2ec135..b429b62 100644 (file)
 #include "TreasureDecoArme.hpp"
 #include "TreasureDecoEquip.hpp"
 
+#include <unistd.h>
+
 TreasureRoom::TreasureRoom(int lvl):RoomComportement(lvl) {
-       m_content = "Tr";
+       m_content = COLOR_MAP_TREASURE "Tr" COLOR_MAP_DEFAULT;
 
        int random = rand()%100;
        if (random < 15) {
@@ -34,7 +36,7 @@ TreasureRoom::~TreasureRoom() {
 }
 
 int TreasureRoom::action(Personnage &perso) {
-       std::cout << perso.getNom() << " Vous avez trouvé un coffre" << std::endl;
+       std::cout << COLOR_PLAYER << perso.getNom() << COLOR_RESET " Vous avez trouvé un coffre" << std::endl;
        std::string buff;
        do {
                std::cout << "Voulez-vous l'ouvrir ?(y or n)" << std::endl;
@@ -43,6 +45,7 @@ int TreasureRoom::action(Personnage &perso) {
 
        if (buff[0] == 'y') {
                m_treasure->open(perso);
+               sleep(1);
                return RC_OPEN_TREASURE;
        }
 
index 575505b..f3da862 100644 (file)
@@ -7,8 +7,6 @@
  */
 #include <iostream>
 
-#include "ColorTerm.hpp"
-
 #include "Labyrinth.hpp"
 #include "Game.hpp"
 
@@ -21,10 +19,6 @@ int main(int argc, char **argv)
        int tailleX,tailleY;
        string name;
 
-       ColorTerm::Edit blue(ColorTerm::FG_BLUE);
-       ColorTerm::Edit reset(ColorTerm::FG_DEFAULT);
-
-       cout << blue;
        if (argc == 3) {
                tailleX = stoi(argv[1]);
                tailleY = stoi(argv[2]);
@@ -48,7 +42,6 @@ int main(int argc, char **argv)
                cout << "Nom du personnage : ";
                cin >> name;
        }
-       cout << reset;
        Game g(name, tailleX, tailleY);
 
        g.launch();