#include #include 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; }