Closed Cris-lml007 closed 2 years ago
oh, did not notice yet. Which commit broke it?
I can't color ANSI-type data when I perform the command: :ColorHightlinght
.
before it was normal but now it is no longer.
I found an error and fixed it. Please try again. If this doesn't work, please send me an example that reproduces this problem. Thanks
I just updated it again and it doesn't work with ANSI colors yet .
I am testing with this code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("\033[1;41m ________________ \n");
printf("| | | \n");
printf("| |____|________ \n");
printf("| | \n");
printf("|_________________________| \n");
printf(" / \\ / \\ \n");
printf("| | | | \n");
printf("_\\__/_____________\\__/__________________________ \n");
printf("________________________________________________ \033[0m\n ");
getchar();
system("clear");
printf("\033[1;44m _________________ \n");
printf(" | | | \n");
printf(" _______|____| | \n");
printf("| | \n");
printf("|_________________________| \n");
printf(" / \\ / \\ \n");
printf(" | | | | \n");
printf("____\\__/_____________\\__/_________________\n");
printf("__________________________________________\033[0m\n ");
getchar();
return 0;
}
and this:
#include <iostream>
#include <cstring>
#define crojo "\x1b[1;41m"
#define cnegro "\x1b[1;40m"
#define cnormal "\x1b[1;0m"
#define saluda "hola como estas"
using namespace std;
string tablero[8][8],copia[8][8],turno;
int mov[4];
//piezas de ajedrez y tablero
string torre_n=" ♜ ",torre_b=" ♖ ";
string caballo_n=" ♞ ",caballo_b=" ♘ ";
string alfil_n=" ♝ ",alfil_b=" ♗ ";
string reyna_n=" ♛ ",reyna_b=" ♕ ";
string rey_n=" ♚ ",rey_b=" ♔ ";
string peon_n=" ♟ ",peon_b=" ♙ ";
string cuadro=" ";
bool prey_n=true;
bool prey_b=true;
int puntaje[6][2];
void table(){
for(int i=0;i<8;i++){
for(int ii=0;ii<8;ii++){
if(i==0){
if(ii==0 || ii==7) tablero[ii][i]=torre_n;
if(ii==1 || ii==6) tablero[ii][i]=caballo_n;
if(ii==2 || ii==5) tablero[ii][i]=alfil_n;
if(ii==3) tablero[ii][i]=reyna_n;
if(ii==4) tablero[ii][i]=rey_n;
}else if(i==1)tablero[ii][i]=peon_n;
else if(i==7){
if(ii==0 || ii==7) tablero[ii][i]=torre_b;
if(ii==1 || ii==6) tablero[ii][i]=caballo_b;
if(ii==2 || ii==5) tablero[ii][i]=alfil_b;
if(ii==3) tablero[ii][i]=reyna_b;
if(ii==4) tablero[ii][i]=rey_b;
}else if(i==6) tablero[ii][i]=peon_b;
else tablero[ii][i]=cuadro;
}
}
}
void mostrar(){
bool verificacion;
cout<<"\n \x1b[1;40m\x1b[1;37m+ a b c d e f g h +\x1b[1;0m"<<" "<<cnegro<<"\x1b[1;37m+-----------------+"<<cnormal<<endl;
for(int i=0;i<8;i++){
cout<<" "<<cnegro<<"\x1b[1;37m"<<i+1<<"\x1b[1;37m";
if(i%2==0){
cout<<cnegro;
verificacion=true;
}else{
cout<<crojo;
verificacion=false;
}
for(int ii=0;ii<8;ii++){
cout<<tablero[ii][i];
if(verificacion==true){
cout<<crojo;
verificacion=false;
}else{
cout<<cnegro;
verificacion=true;
}
}
cout<<cnormal<<"\x1b[1;40m\x1b[1;37m"<<i+1<<cnormal<<"\x1b[1;37m";
if(i==0) cout<<" "<<cnegro<<"| "<<torre_n<<": "<<puntaje[4][0]<<" | "<<torre_b<<": "<<puntaje[4][1]<<" |"<<cnormal<<endl;
else if(i==1) cout<<" "<<cnegro<<"| "<<caballo_n<<": "<<puntaje[3][0]<<" | "<<caballo_b<<": "<<puntaje[3][1]<<" |"<<cnormal<<endl;
else if(i==2) cout<<" "<<cnegro<<"| "<<alfil_n<<": "<<puntaje[2][0]<<" | "<<alfil_b<<": "<<puntaje[2][1]<<" |"<<cnormal<<endl;
else if(i==3) cout<<" "<<cnegro<<"| "<<reyna_n<<": "<<puntaje[1][0]<<" | "<<reyna_b<<": "<<puntaje[1][1]<<" |"<<cnormal<<endl;
else if(i==4) cout<<" "<<cnegro<<"| "<<rey_n<<": "<<puntaje[0][0]<<" | "<<rey_b<<": "<<puntaje[0][1]<<" |"<<cnormal<<endl;
else if(i==5) cout<<" "<<cnegro<<"| "<<peon_n<<": "<<puntaje[5][0]<<" | "<<peon_b<<": "<<puntaje[5][1]<<" |"<<cnormal<<endl;
else if(i==6) cout<<" "<<cnegro<<"\x1b[1;37m+-----------------+"<<cnormal<<endl;
else if(i==7) cout<<" "<<cnegro<<"\x1b[1;37m|"<<turno<<"|"<<cnormal<<endl;
else cout<<endl;
}
cout<<" "<<cnegro<<"\x1b[1;37m+ a b c d e f g h +"<<cnormal<<" "<<cnegro<<"\x1b[1;37m+-----------------+"<<cnormal<<endl;
}
void puntajes(){
int rey=0,reyna=0,alfil=0,caballo=0,torre=0,peon=0;
int rey1=0,reyna1=0,alfil1=0,caballo1=0,torre1=0,peon1=0;
string npieza;
for(int a=0;a<2;a++){
for(int b=0;b<6;b++){
puntaje[b][a]=0;
}
}
for(int i=0;i<8;i++){
for(int ii=0;ii<8;ii++){
npieza=tablero[ii][i];
if(npieza==rey_n){
rey++;
puntaje[0][0]=rey;
}else if(npieza==reyna_n){
reyna++;
puntaje[1][0]=reyna;
}else if(npieza==alfil_n){
alfil++;
puntaje[2][0]=alfil;
}else if(npieza==caballo_n){
caballo++;
puntaje[3][0]=caballo;
}else if(npieza==torre_n){
torre++;
puntaje[4][0]=torre;
}else if(npieza==peon_n){
peon++;
puntaje[5][0]=peon;
}else if(npieza==rey_b){
rey1++;
puntaje[0][1]=rey1;
}else if(npieza==reyna_b){
reyna1++;
puntaje[1][1]=reyna1;
}else if(npieza==alfil_b){
alfil1++;
puntaje[2][1]=alfil1;
}else if(npieza==caballo_b){
caballo1++;
puntaje[3][1]=caballo1;
}else if(npieza==torre_b){
torre1++;
puntaje[4][1]=torre1;
}else if(npieza==peon_b){
peon1++;
puntaje[5][1]=peon1;
}
}
}
}
void mover(string a,int ver){
int A,B;
if(ver==1){
A=0;
B=1;
}else{
A=2;
B=3;
}
if(a[0]=='a') mov[A]=0;
else if(a[0]=='b') mov[A]=1;
else if(a[0]=='c') mov[A]=2;
else if(a[0]=='d') mov[A]=3;
else if(a[0]=='e') mov[A]=4;
else if(a[0]=='f') mov[A]=5;
else if(a[0]=='g') mov[A]=6;
else if(a[0]=='h') mov[A]=7;
if(a[1]=='1') mov[B]=0;
else if(a[1]=='2') mov[B]=1;
else if(a[1]=='3') mov[B]=2;
else if(a[1]=='4') mov[B]=3;
else if(a[1]=='5') mov[B]=4;
else if(a[1]=='6') mov[B]=5;
else if(a[1]=='7') mov[B]=6;
else if(a[1]=='8') mov[B]=7;
}
class pieza{
private:
string PIE;
public:
pieza(string);
bool movimiento();
void torre();
void caballo();
void peon();
void alfil();
void reyna();
void rey();
string PIEZA();
};
string pieza::PIEZA(){
string ver=PIE;
return ver;
}
void moverse(){
tablero[mov[2]][mov[3]]=tablero[mov[0]][mov[1]];
tablero[mov[0]][mov[1]]=cuadro;
}
pieza::pieza(string pie){
PIE=pie;
}
string posicion(){
string pos=tablero[mov[2]][mov[3]];
return pos;
}
bool aliado_n(){
bool ver;
if(posicion()==peon_n || posicion()==torre_n || posicion()==caballo_n || posicion()==alfil_n || posicion()==reyna_n || posicion()==reyna_n){
ver=false;
}else ver=true;
return ver;
}
bool aliado_b(){
bool ver;
if(posicion()==peon_b || posicion()==torre_b || posicion()==caballo_b || posicion()==alfil_b || posicion()==rey_b || posicion()==reyna_b){
ver=false;
}else ver=true;
return ver;
}
void delay(int seg){
for(int i=time(NULL)+seg;time(NULL)!=i;time(NULL));
}
void error(){
system("clear");
cout<<"\x1b[5;37mLA POSICION A LA QUE DESEA AVANZAR ES ERRONEA\n\tINTENTE NUEVAMENTE EN 3 SEG\n"<<cnormal;
mostrar();
delay(3);
}
void pieza::torre(){
bool selector;
if(PIE==torre_n || PIE==reyna_n) selector=aliado_n();
else if(PIE==torre_b || PIE==reyna_b) selector=aliado_b();
//movimiento de columna
if(mov[3]==mov[1]){
bool ver=true,ver1=true,ver2=true;
//validacion de espacios vacios a recorrer hacia la derecha
if(mov[2]>mov[0]){
for(int i=mov[0]+1;i<mov[2];i++){
if(tablero[i][mov[3]]!=cuadro){
i=mov[2]+1;
ver=false;
}else ver=true;
}
//validacion si recorrera un espacio
if(mov[2]==mov[0]+1){
if(selector==false){
ver2=false;
}else ver2=true;
}
}else{
//validacion de espacios vacios hacia la izquierda
for(int i=mov[0]-1;i>mov[2];i--){
if(tablero[i][mov[3]]!=cuadro){
i=mov[2]-1;
ver=false;
}else ver=true;
}
//validacion de la casilla a mover si esta vacia o con pieza enemiga
if(mov[2]==mov[0]-1){
if(selector==false){
ver2=false;
}else ver2=true;
}
}
//movimiento de la pieza si cumple las 3 reglas anteriores
if(selector==false){
ver1=false;
}else ver1=true;
if(ver==true && ver1==true && ver2==true){
moverse();
}else error();
//movimiento de fila
}else if(mov[2]==mov[0]){
bool ver=true,ver1=true,ver2=true;
//movimiento hacia adelante
if(mov[3]>mov[1]){
//movimiento de espacios vacios a recorrer
for(int i=mov[1]+1;i<mov[3];i++){
if(tablero[mov[2]][i]!=cuadro){
i=mov[3]+1;
ver=false;
}else ver=true;
}
//validacion si recorrera un espacio
if(mov[3]==mov[1]+1){
if(selector==false){
ver2=false;
}else ver2=true;
}
//movimiento hacia atras
}else{
//validacion de espacios vacios a recorrer
for(int i=mov[1]-1;i>mov[3];i--){
if(tablero[mov[2]][i]!=cuadro){
i=mov[3]-1;
ver=false;
}else ver=true;
}
//validacion si recorrera un espacio
if(mov[3]==mov[1]-1){
if(selector==false){
ver2=false;
}else ver2=true;
}
}
//validacion del espacio a mover si esta vacio o con enemigo
if(selector==false){
ver1=false;
}else ver1=true;
//movimiento si se cumple las 3 reglas anteriores
if(ver==true && ver1==true && ver2==true){
moverse();
}else error();
}else error();
}
void pieza::caballo(){
bool selector;
if(PIE==caballo_n) selector=aliado_n();
else if(PIE==caballo_b) selector=aliado_b();
if(mov[2]==mov[0]+2 || mov[2]==mov[0]-2){
if(mov[3]==mov[1]-1 || mov[3]==mov[1]+1){
if(selector==true){
moverse();
}else error();
}
}else if(mov[3]==mov[1]-2 || mov[3]==mov[1]+2){
if(mov[2]==mov[0]-1 || mov[2]==mov[0]+1){
if(selector==true){
moverse();
}else error();
}
}else error();
}
void pieza::peon(){
bool selector;
if(PIE==peon_n) selector=aliado_n();
else if(PIE==peon_b) selector=aliado_b();
if(PIE==peon_n){
if(mov[2]==mov[0] && mov[3]>mov[1] && mov[3]<=mov[1]+1 && posicion()==cuadro){
moverse();
}else if(mov[2]==mov[0] && mov[3]>mov[1] && mov[1]==1 && mov[3]<=mov[1]+2 && posicion()==cuadro){
moverse();
}else if(mov[2]==mov[0]+1 || mov[2]==mov[0]-1){
if(mov[3]>mov[1] && mov[3]<=mov[1]+1 && posicion()!=cuadro){
if(selector==true){
moverse();
}else error();
}
}
if(mov[3]==7 && mov[1]+1==7){
int selec;
system("clear");
do{
cout<<cnegro<<"\x1b[1;37m"<<"+---------------+"<<endl;
cout<<cnegro<<"\x1b[1;37m"<<"|"<<reyna_n<<"|"<<alfil_n<<"|"<<caballo_n<<"|"<<torre_n<<"|\n";
cout<<"| 1 | 2 | 3 | 4 |"<<endl;
cout<<"+---------------+"<<endl;
cout<<"ingrese el numero de la pieza para cambiar: ";
cin>>selec;
if(selec==1) tablero[mov[2]][mov[3]]=reyna_n;
else if(selec==2) tablero[mov[2]][mov[3]]=alfil_n;
else if(selec==3) tablero[mov[2]][mov[3]]=caballo_n;
else if(selec==4) tablero[mov[2]][mov[3]]=torre_n;
else cout<<"pieza no encontrada"<<endl;
}while(selec<1 || selec>5);
tablero[mov[0]][mov[1]]=cuadro;
}
}else if(PIE==peon_b){
if(mov[2]==mov[0] && mov[3]<mov[1] && mov[3]>=mov[1]-1 && posicion()==cuadro){
moverse();
}else if(mov[2]==mov[0] && mov[3]<mov[1] && mov[1]==6 && mov[3]>=mov[1]-2 && posicion()==cuadro){
moverse();
}else if(mov[3]<mov[1] && mov[3]>=mov[1]-1 && posicion()!=cuadro){
if(selector==true){
moverse();
}else error();
}
if(mov[3]==0 && mov[1]-1==0){
int selec;
system("clear");
do{
cout<<cnegro<<"\x1b[1;37m"<<"+---------------+"<<endl;
cout<<cnegro<<"\x1b[1;37m"<<"|"<<reyna_b<<"|"<<alfil_b<<"|"<<caballo_b<<"|"<<torre_b<<"|\n";
cout<<"| 1 | 2 | 3 | 4 |"<<endl;
cout<<"+---------------+"<<endl;
cout<<"ingrese el numero de la pieza para cambiar: ";
cin>>selec;
if(selec==1) tablero[mov[2]][mov[3]]=reyna_b;
else if(selec==2) tablero[mov[2]][mov[3]]=alfil_b;
else if(selec==3) tablero[mov[2]][mov[3]]=caballo_b;
else if(selec==4) tablero[mov[2]][mov[3]]=torre_b;
else cout<<"pieza no encontrada"<<endl;
}while(selec<1 || selec>5);
tablero[mov[0]][mov[1]]=cuadro;
}
}else error();
}
void pieza::alfil(){
bool selector,orientacion1,orientacion2,veri1,veri2;
int colum=mov[0],fil=mov[1],colum1=mov[0],fil1=mov[1];
if(PIE==alfil_n || PIE==reyna_n) selector=aliado_n();
else if(PIE==alfil_b || PIE==reyna_b) selector=aliado_b();
//define si la casilla a avanzar es de caracter positivo o negativo
if(mov[3]>mov[1]) orientacion1=true;
else orientacion1=false;
if(mov[2]>mov[0]) orientacion2=true;
else orientacion2=false;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//verificador
//verifica si la posicion de salida es una posicion admitida
if(fil<mov[3]){
while(fil<mov[3]){
if(orientacion1==true) fil++;
else fil--;
if(orientacion2==true) colum++;
else colum--;
}
}else if(fil>mov[3]){
while(fil>mov[3]){
if(orientacion1==true) fil++;
else fil--;
if(orientacion2==true) colum++;
else colum--;
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//comprobador de espacios vacios
//----------------------------------------------------------------
//comprueba la diagonal derecha hacia abajo
if(colum==mov[2] && fil==mov[3]){
if(mov[2]>colum1 && mov[3]>fil1){
if(fil1+1==mov[3]){
veri1=true;
}else if(fil1<mov[3]){
while(fil1<mov[3]-1){
if(orientacion1==true) fil1++;
else fil1--;
if(orientacion2==true) colum1++;
else colum1--;
if(tablero[colum1][fil1]!=cuadro){
fil1=mov[3]+1;
veri1=false;
}else veri1=true;
}
}
}
//comprueba la diagonal izquierda abajo
if(mov[2]<colum1 && mov[3]>fil1){
if(fil1+1==mov[3]){
veri1=true;
}else if(fil1<mov[3]){
while(fil1<mov[3]-1){
if(orientacion1==true) fil1++;
else fil1--;
if(orientacion2==true) colum1++;
else colum1--;
if(tablero[colum1][fil1]!=cuadro){
fil1=mov[3]+1;
veri1=false;
}else veri1=true;
}
}
}
//comprueba la diagonal arriba izquierda
if(mov[2]<colum1 && mov[3]<fil1){
if(fil1-1==mov[3]){
veri1=true;
}else if(fil1>mov[3]){
while(fil1>mov[3]+1){
if(orientacion1==true) fil1++;
else fil1--;
if(orientacion2==true) colum1++;
else colum1--;
if(tablero[colum1][fil1]!=cuadro){
fil1=mov[3]+1;
veri1=false;
}else veri1=true;
}
}
}
//comprueba la diagonal derecha arriba
if(mov[2]>colum1 && mov[3]<fil1){
if(fil1-1==mov[3]){
veri1=true;
}else if(fil1>mov[3]){
while(fil1>mov[3]+1){
if(orientacion1==true) fil1++;
else fil1--;
if(orientacion2==true) colum1++;
else colum1--;
if(tablero[colum1][fil1]!=cuadro){
fil1=mov[3]+1;
veri1=false;
}else veri1=true;
}
}
}
}
//----------------------------------------------------------------
//****************************************************************
//comprobador de casilla posicion aliada o enemiga
if(selector==true) veri2=true;
else veri2=false;
//****************************************************************
//comprobante de seguridad para realizar el movimiento
if(veri1==true && veri2==true){
moverse();
}else error();
}
void pieza::reyna(){
pieza reyna=pieza(tablero[mov[0]][mov[1]]);
if(mov[2]==mov[0] && mov[3]!=mov[1]) reyna.torre();
else if(mov[2]!=mov[0] && mov[3]==mov[1]) reyna.torre();
else reyna.alfil();
}
void pieza::rey(){
bool selector,ver=true,ver1=true;
int srey,a,b;
if(PIE==rey_n) selector=aliado_n();
else if(PIE==rey_b) selector=aliado_b();
if(PIE==rey_n) srey=0;
else if(PIE==rey_b) srey=7;
if(mov[3]==mov[1]+1 && mov[2]==mov[0]+1){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1]-1 && mov[2]==mov[0]-1){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1]-1 && mov[2]==mov[0]+1){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1]+1 && mov[2]==mov[0]-1){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1]+1 && mov[2]==mov[0]){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1]-1 && mov[2]==mov[0]){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1] && mov[2]==mov[0]+1){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[3]==mov[1] && mov[2]==mov[0]-1){
if(selector==true){
moverse();
if(PIE==rey_n) prey_n=false;
else if(PIE==rey_b) prey_b=false;
}else error();
}else if(mov[0]==4 && mov[1]==srey){
if((mov[2]==6 && mov[3]==srey) || (mov[2]==2 && mov[3]==srey)){
if(mov[2]==2){
for(int i=1;i<4;i++){
if(tablero[i][srey]!=cuadro){
ver=false;
i=4+1;
}else ver=true;
}
}else if(mov[2]==6){
for(int i=5;i<6;i++){
if(tablero[i][srey]!=cuadro){
ver=false;
i=6+1;
}else ver=true;
}
}
if(mov[2]==6 && srey==0){
if(tablero[7][0]==torre_n){
ver1=true;
a=5;
b=7;
}else ver1=false;
}
if(mov[2]==2 && srey==0){
if(tablero[0][0]==torre_n){
ver1=true;
a=3;
b=0;
}else ver1=false;
}
if(mov[2]==6 && srey==7){
if(tablero[7][7]==torre_b){
ver1=true;
a=5;
b=7;
}else ver1=false;
}
if(mov[2]==2 && srey==7){
if(tablero[0][7]==torre_b){
ver1=true;
a=3;
b=0;
}else ver1=false;
}
if(ver==true && ver1==true){
if(srey==0 && prey_n==true){
moverse();
tablero[a][srey]=torre_n;
tablero[b][srey]=cuadro;
prey_n=false;
}else if(srey==7 && prey_b==true){
moverse();
tablero[a][srey]=torre_b;
tablero[b][srey]=cuadro;
prey_b=false;
}else error();
}
}
}else error();
}
bool pieza::movimiento(){
pieza spieza=pieza(PIE);
bool ver=true;
//reglas de las piezas
if(PIE==peon_n || PIE==peon_b) spieza.peon();
else if(PIE==torre_n || PIE==torre_b) spieza.torre();
else if(PIE==caballo_b || PIE==caballo_n) spieza.caballo();
else if(PIE==alfil_n || PIE==alfil_b) spieza.alfil();
else if(PIE==reyna_n || PIE==reyna_b) spieza.reyna();
else if(PIE==rey_n || PIE==rey_b) spieza.rey();
else{
system("clear");
cout<<"\t\x1b[5;37mPIEZA NO ENCONTRADA\n\tINTENTE NUEVAMENTE EN 3 SEG"<<cnormal;
delay(3);
ver=false;
}
return ver;
}
void copia_t(){
for(int i=0;i<8;i++){
for(int ii=0;ii<8;ii++){
copia[ii][i]=tablero[ii][i];
}
}
}
bool comparar_t(){
bool com;
for(int i=0;i<8;i++){
for(int ii=0;ii<8;ii++){
if(copia[ii][i]==tablero[ii][i]){
com=true;
}else{
com=false;
ii=8+1;
i=8+1;
}
}
}
return com;
}
void juego(){
string avanzar;
turno="TURNO DE BLANCAS ";
table();
bool verificacion;
do{
copia_t();
do{
system("clear");
puntajes();
mostrar();
cout<<endl<<"ingrese la pieza a mover: ";
cin>>avanzar;
mover(avanzar,1);
pieza PIEZA=pieza(tablero[mov[0]][mov[1]]);
if(turno=="TURNO DE BLANCAS "){
if(PIEZA.PIEZA()==rey_b || PIEZA.PIEZA()==reyna_b || PIEZA.PIEZA()==alfil_b || PIEZA.PIEZA()==caballo_b || PIEZA.PIEZA()==torre_b || PIEZA.PIEZA()==peon_b){
cout<<"ingrese a donde desea mover: ";
cin>>avanzar;
mover(avanzar,3);
PIEZA.movimiento();
puntajes();
mostrar();
}else turno="TURNO DE BLANCAS ";
}else if(turno==" TURNO DE NEGRAS "){
if(PIEZA.PIEZA()==rey_n || PIEZA.PIEZA()==reyna_n || PIEZA.PIEZA()==alfil_n || PIEZA.PIEZA()==caballo_n || PIEZA.PIEZA()==torre_n || PIEZA.PIEZA()==peon_n){
cout<<"ingrese a donde desea mover: ";
cin>>avanzar;
mover(avanzar,3);
PIEZA.movimiento();
puntajes();
mostrar();
}else turno=" TURNO DE NEGRAS ";
}
if(avanzar=="rendirse"){
if(turno=="TURNO DE BLANCAS ") puntaje[0][1]=0;
else puntaje[0][0]=0;
}
if(comparar_t()==true && avanzar!="rendirse"){
verificacion=true;
error();
}else verificacion=false;
}while(verificacion==true);
if(turno=="TURNO DE BLANCAS ") turno=" TURNO DE NEGRAS ";
else turno="TURNO DE BLANCAS ";
if(puntaje[0][0]==0 || puntaje[0][1]==0){
avanzar="rendirse";
}
}while(avanzar!="rendirse");
system("clear");
string ganador[5];
if(puntaje[0][0]==1){
ganador[0]="██████ ██ ██████ █████ ██ ██\n";
ganador[1]="██ ██ ██ ██ ██ ██ ██ ██\n";
ganador[2]="█████ ██ ██████ ██ ████\n";
ganador[3]="██ ██ ██ ██ ██ ██ ██ ██\n";
ganador[4]="██████ ████ ██ ██ █████ ██ ██\n";
}
else if(puntaje[0][1]==1){
ganador[0]="██ ██ ██ ██ ██ ████████ █████\n";
ganador[1]="██ ██ ██ ██ ██ ██ ██ ██ \n";
ganador[2]="██ ██ ██ ██████ ██ ██ █████\n";
ganador[3]="██ ██ ██ ██ ██ ██ ██ ██ \n";
ganador[4]="██████████ ██ ██ ██ ██ █████\n";
};
cout<<"\x1b[5;37m";
cout<<"██ ██ ██ ██ ██ "<<ganador[0];
cout<<"██ ██ ██ ██ ████ ██ "<<ganador[1];
cout<<"██ ██ ██ ██ ██ ████ "<<ganador[2];
cout<<"██ ██ ██ ██ ██ ███ "<<ganador[3];
cout<<"██████████ ██ ██ ██ "<<ganador[4];
cout<<cnormal;
delay(5);
system("clear");
}
int main(){
int seleccion;
do{
cout<<cnegro<<"\x1b[1;31m";
cout<<"\t\t****** ****** ***** **** **** ***** ***** \n";
cout<<"\t\t** ** ** ** ** ** ** * ** * \n";
cout<<"\t\t****** ** ***** ** ** **** ***** ***** \n";
cout<<"\t\t** ** ** ** ** ** ** ** * ** * \n";
cout<<"\t\t** ** ***** ***** **** ** * ***** ***** \n"<<cnormal;
cout<<"\t\t\t\t 1)jugar\n\t\t\t\t 2)ayuda\n\t\t\t\t 3)salir\n\t\t\t\t ";
cin>>seleccion;
if(seleccion==1) juego();
}while(seleccion==1);
cout<<"\x1b[5;31m"<<"\t\t\t\tby::Metallica "<<cnormal<<endl;
return 0;
}
@chrisbra Just letting you know that I'm encountering this. It's not a huge deal to me, just wanted to let you know. I only need this on flat text files, so I only debugged this a little bit, but it looks like it conflicts with syntax highlighting on my machine for ANSI escapes only.
I ran this:
echo -e "\033[35mtest\033[0m" > test
I then opened it in neovim and ran :ColorHighlight
and it worked. I then ran :setf sh
and it stopped working. Same thing with setf java
, so it's not just one language. It works fine with hex colors in the same file. I'm using neovim, this is the configuration as of right before I installed and tested this plugin (i'm heavily experimenting with neovim, so I hope you can excuse the sloppiness): https://github.com/mostfunkyduck/bootstrap/tree/30ea1536aba44e7ea30f6730b8277b7de9c967c0/.config/nvim
I just saw that testing the colors ansi scape in a plain text file and if you recognize the colors, there seems to be a problem when it is detected that the file has a sparse extension, hopefully @chrisbra it can be solved.
I made a small refactor. Please ues :ColorHighlight!
(note the !
attribute). Then it should work. For performance reasons, it's disabled for non-empty filetyptes
if it works thanks for giving us a solution
the plugin has not been working with ANSI colors since the last update, before it was giving normal, because this is due?