Use rgb for setcolor

This commit is contained in:
Ole Morud
2023-03-19 13:45:52 +01:00
parent 2c9d136e5a
commit fc7cb88029

26
chess.c
View File

@@ -16,7 +16,7 @@
#define WHITE 1 #define WHITE 1
#define BLACK -1 #define BLACK -1
void setcolor(int mode, int r, int g, int b);
void print_board(int* board); void print_board(int* board);
void init_board(int* board); void init_board(int* board);
@@ -35,10 +35,17 @@ int main(){
/* /*
* Prints an escape char to set the font style * Sets the foreground or background color.
* Modes:
* - 0: change background
* - 1: change foreground
* - 2: reset colors
*/ */
void setcolor(int col){ void setcolor(int mode, int r, int g, int b){
printf("\033[%im", col); if( mode == 2 )
printf("\033[0m");
else
printf("\033[%i;2;%i;%i;%im", mode?38:48, r, g, b);
}; };
@@ -70,9 +77,10 @@ void print_board(int* board){
// Make tiles black and white // Make tiles black and white
if((i+j) % 2) if((i+j) % 2)
setcolor(100); // white setcolor(0, 100, 100, 150);
else else
setcolor(107); // black setcolor(0, 150, 150, 200);
// Print empty space and do nothing if tile is empty // Print empty space and do nothing if tile is empty
if(p == E){ if(p == E){
@@ -82,16 +90,16 @@ void print_board(int* board){
// Set piece color // Set piece color
if(p > 0){ if(p > 0){
setcolor(37); // white foreground setcolor(1, 0xff, 0xff, 0xff); //white
}else{ }else{
setcolor(30); setcolor(1, 0, 0, 0); //black
p *= -1; p *= -1;
} }
printf("%lc ", 0x2659 + p); printf("%lc ", 0x2659 + p);
} }
setcolor(0); // reset text attributes setcolor(2, 0, 0, 0); // reset text attributes
} }
// Print horizontal letter coordinates // Print horizontal letter coordinates