diff options
Diffstat (limited to 'console.c')
| -rw-r--r-- | console.c | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/console.c b/console.c new file mode 100644 index 0000000..6c1cda8 --- /dev/null +++ b/console.c @@ -0,0 +1,105 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "vector.h" +#include "chesshelpers.h" +#include "console.h" + +void draw_board(int board[8][8]) { + printf(" A B C D E F G H\n"); + int tileColor = 1; + for(int r = 0; r < 8; r++) { + tileColor = !tileColor; + char* line = calloc(2 + (8 * 10), sizeof(char)); + line[0] = '8' - r; + line[1] = ' '; + for(int c = 0; c < 8; c++) { + tileColor = !tileColor; + strcat(line, tileColor == 0 ? ANSI_COLOR_RED : ANSI_COLOR_RESET); + if(board[c][r] <= 6) { + switch(board[c][r]) { + case 0: + strcat(line, "# "); + break; + case pawn: + strcat(line, "P "); + break; + case knight: + strcat(line, "N "); + break; + case bishop: + strcat(line, "B "); + break; + case rook: + strcat(line, "R "); + break; + case queen: + strcat(line, "Q "); + break; + case king: + strcat(line, "K "); + break; + } + } + else { + switch(board[c][r] - 6) { + case pawn: + strcat(line, "p "); + break; + case knight: + strcat(line, "n "); + break; + case bishop: + strcat(line, "b "); + break; + case rook: + strcat(line, "r "); + break; + case queen: + strcat(line, "q "); + break; + case king: + strcat(line, "k "); + break; + } + } + } + printf(line); + printf("\n" ANSI_COLOR_RESET); + free(line); + } +} +vector_t user_input_pos() { + char* inputString = malloc(3 * sizeof(char)); + vector_t pos; + printf("Enter coordinates: "); + scanf("%2s", inputString); + for(int i = 0; i < 2; i++) { + if(inputString[i] <= '9' && inputString[i] >= '0') { + pos.my = 8 - (inputString[i] - '0'); + } + else if(inputString[i] <= 'Z' && inputString[i] >= 'A') { + pos.mx = inputString[i] - 'A'; + } + else if(inputString[i] <= 'z' && inputString[i] >= 'a') { + pos.mx = inputString[i] - 'a'; + } + else { + return init_vector(-1, -1); + } + } + free(inputString); + return pos; +} +void clear_screen() { + system("@cls||clear"); +} +void warn_user(char* message) { + clear_screen(); + printf("\n"); + printf(message); + printf("\nPress any key to continue...\n"); + while(getchar() != '\n'); + getchar(); +} + |
