From 6dce989df638af374a0e3bb30978e3875f67cbd0 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Mon, 28 Nov 2022 11:56:42 -0800 Subject: drawing board --- chess.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 chess.c (limited to 'chess.c') diff --git a/chess.c b/chess.c new file mode 100644 index 0000000..5593d79 --- /dev/null +++ b/chess.c @@ -0,0 +1,91 @@ +#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; +} -- cgit v1.3.1