summaryrefslogtreecommitdiff
path: root/chess.c
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2022-11-28 11:56:42 -0800
committerKai Stevenson <kai@kaistevenson.com>2022-11-28 11:56:42 -0800
commit6dce989df638af374a0e3bb30978e3875f67cbd0 (patch)
treeb3820478383c0c8d309524be1422650654e46f59 /chess.c
parent880a35551a5d3c141a4e08c58f2efcfadf84658f (diff)
drawing board
Diffstat (limited to 'chess.c')
-rw-r--r--chess.c91
1 files changed, 91 insertions, 0 deletions
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 <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;
+}