Ajout TODOLIST + Couleurs opti + caracteres unicode
This commit is contained in:
parent
851d048e18
commit
24d17141ef
|
@ -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
|
|
@ -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;
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
Cavalier(int x, int y);
|
Cavalier(int x, int y);
|
||||||
|
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
char getchar();
|
string getchar();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
Fou(int x, int y);
|
Fou(int x, int y);
|
||||||
|
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
char getchar();
|
string getchar();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -27,4 +27,4 @@ ostream& operator<<(ostream& o, const Piece& p){
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABTRACT
|
// ABTRACT
|
||||||
char Piece::getchar(){ return '?'; }
|
string Piece::getchar(){ return "?"; }
|
|
@ -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:
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
Pion(int x, int y);
|
Pion(int x, int y);
|
||||||
|
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
char getchar();
|
string getchar();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
Reine(int x, int y);
|
Reine(int x, int y);
|
||||||
|
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
char getchar();
|
string getchar();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
Roi(int x, int y);
|
Roi(int x, int y);
|
||||||
|
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
char getchar();
|
string getchar();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
Tour(int x, int y);
|
Tour(int x, int y);
|
||||||
|
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
char getchar();
|
string getchar();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -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
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
|
BIN
Chess/main.o
BIN
Chess/main.o
Binary file not shown.
Loading…
Reference in New Issue