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* getEnemy();
// IA : Intelligence Modulaire
// ATTRIBUTS
char _turn;
Player *_p1;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
/* [1] Operations terminal
=========================================================*/
void clear(){ // efface l'ecran
void clear_screen(){ // efface l'ecran
cout << "\033[H\033[2J";
}
@ -22,4 +22,30 @@ void err(string msg){
// On attends l'appui sur une touche
setfont();
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 */
#include <iostream>
#include <ctime>
/* (2) Namespace */
using namespace std;
@ -25,6 +26,8 @@
SKYBLUE = 36
};
int TERM_COLOR_VALUES[] = {0, 30, 31, 32, 33, 34, 35, 36};
enum TERM_STYLE{
NORMAL = 0,
BOLD = 1,
@ -35,11 +38,15 @@
BACKGROUND = 7
};
int TERM_STYLE_VALUES[] = {0, 1, 3, 4, 9, 7};
/* [3] Methodes
=========================================================*/
void clear();
void clear_screen();
void setfont(const TERM_COLOR c=DEFAULT, const TERM_STYLE s=NORMAL);
void err(string msg);
void init_term();
void multicolor(string str, const TERM_STYLE s=NORMAL);
/* [n] Inclusion du corps
=========================================================*/

BIN
Chess/exe

Binary file not shown.

View File

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

View File

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

Binary file not shown.