diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2022-11-28 11:56:42 -0800 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2022-11-28 11:56:42 -0800 |
| commit | 6dce989df638af374a0e3bb30978e3875f67cbd0 (patch) | |
| tree | b3820478383c0c8d309524be1422650654e46f59 | |
| parent | 880a35551a5d3c141a4e08c58f2efcfadf84658f (diff) | |
drawing board
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | chess.c | 91 |
2 files changed, 94 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1472834 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +a.out +a.exe +*.swp @@ -0,0 +1,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; +} |
