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
|
#include <stdio.h>
#include <stdlib.h>
enum piece {
pawn = 1,
knight = 2,
bishop = 3,
rook = 4,
queen = 5,
king = 6
};
void draw_board(int board[8][8]) {
printf(" ABCDEFGH\n");
for(int r = 0; r < 8; r++) {
char* line = calloc(10, sizeof(char));
line[0] = '8' - r;
line[1] = ' ';
for(int c = 0; c < 8; c++) {
if(board[c][r] <= 6) {
switch(board[c][r]) {
case 0:
line[c + 2] = ' ';
break;
case pawn:
line[c + 2] = 'P';
break;
case knight:
line[c + 2] = 'N';
break;
case bishop:
line[c + 2] = 'B';
break;
case rook:
line[c + 2] = 'R';
break;
case queen:
line[c + 2] = 'Q';
break;
case king:
line[c + 2] = 'K';
break;
}
}
else {
switch(board[c][r] - 6) {
case 0:
line[c + 2] = ' ';
break;
case pawn:
line[c + 2] = 'p';
break;
case knight:
line[c + 2] = 'n';
break;
case bishop:
line[c + 2] = 'b';
break;
case rook:
line[c + 2] = 'r';
break;
case queen:
line[c + 2] = 'q';
break;
case king:
line[c + 2] = 'k';
break;
}
}
}
printf(line);
printf("\n");
free(line);
}
}
void clear_screen() {
system("@cls||clear");
}
int main() {
int board[8][8] = {
{ rook + 6, pawn + 6, 0, 0, 0, 0, pawn, rook },
{ knight + 6, pawn + 6, 0, 0, 0, 0, pawn, knight },
{ bishop + 6, pawn + 6, 0, 0, 0, 0, pawn, bishop },
{ queen + 6, pawn + 6, 0, 0, 0, 0, pawn, queen },
{ king + 6, pawn + 6, 0, 0, 0, 0, pawn, king },
{ bishop + 6, pawn + 6, 0, 0, 0, 0, pawn, bishop },
{ knight + 6, pawn + 6, 0, 0, 0, 0, pawn, knight },
{ rook + 6, pawn + 6, 0, 0, 0, 0, pawn, rook }
};
clear_screen(board);
draw_board(board);
return 0;
}
|