Ajout TODOLIST + Couleurs opti + caracteres unicode

This commit is contained in:
xdrm-brackets 2016-03-09 15:30:03 +01:00
parent 851d048e18
commit 24d17141ef
22 changed files with 93 additions and 32 deletions

12
Chess/Chess.todo.md Normal file
View File

@ -0,0 +1,12 @@
A FAIRE
=======
- [ ] Prevision des cases de destination
- [ ] Timeout pour le jeu
- [ ] IA
- [ ] Changer l'unicode en fonction du joueur
FAIT
====
- [x] Caracteres unicode pour les pieces
- [x] Methode pour texte multicolore

View File

@ -31,6 +31,8 @@
Player* getCurrent(); Player* getCurrent();
Player* getEnemy(); Player* getEnemy();
// IA : Intelligence Modulaire
// ATTRIBUTS // ATTRIBUTS
char _turn; char _turn;
Player *_p1; Player *_p1;

View File

@ -5,6 +5,7 @@ Cavalier::Cavalier(int x, int y) : Piece(CAVALIER, x, y) {
} }
// ABSTRACT // ABSTRACT
char Cavalier::getchar(){ string Cavalier::getchar(){
return 'C'; return "\u265E";
return "\u2658";
} }

View File

@ -19,7 +19,7 @@
Cavalier(int x, int y); Cavalier(int x, int y);
// ABSTRACT // ABSTRACT
char getchar(); string getchar();
}; };

View File

@ -5,6 +5,7 @@ Fou::Fou(int x, int y) : Piece(FOU, x, y) {
} }
// ABSTRACT // ABSTRACT
char Fou::getchar(){ string Fou::getchar(){
return 'F'; return "\u265D";
return "\u2657";
} }

View File

@ -19,7 +19,7 @@
Fou(int x, int y); Fou(int x, int y);
// ABSTRACT // ABSTRACT
char getchar(); string getchar();
}; };

View File

@ -27,4 +27,4 @@ ostream& operator<<(ostream& o, const Piece& p){
} }
// ABTRACT // ABTRACT
char Piece::getchar(){ return '?'; } string Piece::getchar(){ return "?"; }

View File

@ -59,7 +59,7 @@
friend ostream& operator<<(ostream& o, const Piece& p); friend ostream& operator<<(ostream& o, const Piece& p);
// ABSTRACT // ABSTRACT
virtual char getchar(); virtual string getchar();
protected: protected:

View File

@ -5,6 +5,7 @@ Pion::Pion(int x, int y) : Piece(PION, x, y) {
} }
// ABSTRACT // ABSTRACT
char Pion::getchar(){ string Pion::getchar(){
return 'P'; return "\u265F";
return "\u2659";
} }

View File

@ -19,7 +19,7 @@
Pion(int x, int y); Pion(int x, int y);
// ABSTRACT // ABSTRACT
char getchar(); string getchar();
}; };

View File

@ -5,6 +5,7 @@ Reine::Reine(int x, int y) : Piece(REINE, x, y) {
} }
// ABSTRACT // ABSTRACT
char Reine::getchar(){ string Reine::getchar(){
return 'Q'; return "\u265B";
return "\u2655";
} }

View File

@ -19,7 +19,7 @@
Reine(int x, int y); Reine(int x, int y);
// ABSTRACT // ABSTRACT
char getchar(); string getchar();
}; };

View File

@ -5,6 +5,7 @@ Roi::Roi(int x, int y) : Piece(ROI, x, y) {
} }
// ABSTRACT // ABSTRACT
char Roi::getchar(){ string Roi::getchar(){
return 'K'; return "\u265A";
return "\u2654";
} }

View File

@ -19,7 +19,7 @@
Roi(int x, int y); Roi(int x, int y);
// ABSTRACT // ABSTRACT
char getchar(); string getchar();
}; };

View File

@ -5,6 +5,7 @@ Tour::Tour(int x, int y) : Piece(TOUR, x, y) {
} }
// ABSTRACT // ABSTRACT
char Tour::getchar(){ string Tour::getchar(){
return 'T'; return "\u265C";
return "\u2656";
} }

View File

@ -19,7 +19,7 @@
Tour(int x, int y); Tour(int x, int y);
// ABSTRACT // ABSTRACT
char getchar(); string getchar();
}; };

View File

@ -2,7 +2,7 @@
/* [1] Operations terminal /* [1] Operations terminal
=========================================================*/ =========================================================*/
void clear(){ // efface l'ecran void clear_screen(){ // efface l'ecran
cout << "\033[H\033[2J"; cout << "\033[H\033[2J";
} }
@ -22,4 +22,30 @@ void err(string msg){
// On attends l'appui sur une touche // On attends l'appui sur une touche
setfont(); setfont();
sleep(1); sleep(1);
}
// Affiche un texte avec une couleur par caractere
void multicolor(string str, const TERM_STYLE s){
srand(time(0)); // initialisation du random
// On recupere les valeurs possibles (couleurs)
int *colorvalues = TERM_COLOR_VALUES;
int len = sizeof(colorvalues);
int color;
TERM_COLOR tc;
// Pour chaque caractere de la string
for( int i = 0 ; i < str.size() ; i++ ){
color = rand() % len; // on prends une couleur aleatoire
tc = static_cast<TERM_COLOR>(colorvalues[color]); // on la met au bon format
setfont(tc, s);
cout << str.at(i);
setfont();
}
} }

View File

@ -6,6 +6,7 @@
=========================================================*/ =========================================================*/
/* (1) internes */ /* (1) internes */
#include <iostream> #include <iostream>
#include <ctime>
/* (2) Namespace */ /* (2) Namespace */
using namespace std; using namespace std;
@ -25,6 +26,8 @@
SKYBLUE = 36 SKYBLUE = 36
}; };
int TERM_COLOR_VALUES[] = {0, 30, 31, 32, 33, 34, 35, 36};
enum TERM_STYLE{ enum TERM_STYLE{
NORMAL = 0, NORMAL = 0,
BOLD = 1, BOLD = 1,
@ -35,11 +38,15 @@
BACKGROUND = 7 BACKGROUND = 7
}; };
int TERM_STYLE_VALUES[] = {0, 1, 3, 4, 9, 7};
/* [3] Methodes /* [3] Methodes
=========================================================*/ =========================================================*/
void clear(); void clear_screen();
void setfont(const TERM_COLOR c=DEFAULT, const TERM_STYLE s=NORMAL); void setfont(const TERM_COLOR c=DEFAULT, const TERM_STYLE s=NORMAL);
void err(string msg); void err(string msg);
void init_term();
void multicolor(string str, const TERM_STYLE s=NORMAL);
/* [n] Inclusion du corps /* [n] Inclusion du corps
=========================================================*/ =========================================================*/

BIN
Chess/exe

Binary file not shown.

View File

@ -3,8 +3,15 @@
/* [0] Point d'amorcage /* [0] Point d'amorcage
=========================================================*/ =========================================================*/
int main(){ int main(){
// On cree un Jeu
ChessContext ctx; ChessContext ctx;
// Message d'accueil
clear_screen();
cout << "Bievenue sur " << endl;
sleep(1);
// On initialise la partie // On initialise la partie
ctx.init(); ctx.init();
@ -16,7 +23,9 @@ int main(){
}while( ctx._turn != 'x' ); }while( ctx._turn != 'x' );
// On reset les modifications de police
setfont(); setfont();
return 0; return 0;
} }
@ -26,7 +35,7 @@ int main(){
void display_board(ChessContext& ctx){ void display_board(ChessContext& ctx){
/* [1] On efface l'ecran /* [1] On efface l'ecran
=========================================================*/ =========================================================*/
clear(); clear_screen();
/* [2] On affiche la banniere /* [2] On affiche la banniere
=========================================================*/ =========================================================*/
@ -35,14 +44,8 @@ void display_board(ChessContext& ctx){
cout << " + +" << endl; cout << " + +" << endl;
cout << " + Chess "; cout << " + Chess ";
setfont(DARKBLUE, BOLD); cout << "C";
setfont(SKYBLUE, BOLD); cout << "o"; multicolor("Colorful", BOLD);
setfont(GREEN, BOLD); cout << "l";
setfont(YELLOW, BOLD); cout << "o";
setfont(BLUE, BOLD); cout << "r";
setfont(PURPLE, BOLD); cout << "f";
setfont(SKYBLUE, BOLD); cout << "u";
setfont(GREEN, BOLD); cout << "l";
setfont(RED, BOLD); setfont(RED, BOLD);
cout << " Console Game +" << endl; cout << " Console Game +" << endl;

View File

@ -21,7 +21,12 @@
/* [2] Enumerations et structures /* [2] Enumerations et structures
=========================================================*/ =========================================================*/
enum KEYBOARD{
HAUT = 72,
BAS = 80,
GAUCHE = 75,
DROITE = 77
};
/* [3] Methodes /* [3] Methodes
=========================================================*/ =========================================================*/

Binary file not shown.