1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vector.h"
#include "chesshelpers.h"
#include "console.h"
void draw_board(int** board) {
printf(" A B C D E F G H\n");
int tileColor = 0;
for(int r = 0; r < 8; r++) {
tileColor = !tileColor;
char* line = calloc(2 + (8 * 16) + 9, sizeof(char));
line[0] = '8' - r;
line[1] = ' ';
for(int c = 0; c < 8; c++) {
tileColor = !tileColor;
strcat(line, tileColor == 0 ? COLOR_CHESS_WHITE : COLOR_CHESS_BLACK);
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;
}
}
strcat(line, COLOR_RESET " ");
}
printf(line);
printf("\n" 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" COLOR_WARN);
printf(message);
printf(COLOR_RESET "\nPress any key to continue...\n");
while(getchar() != '\n');
getchar();
}
|