Last active
December 14, 2015 17:48
-
-
Save pauldwhitman/5124273 to your computer and use it in GitHub Desktop.
Part of the "Chess in C" blog post series. The complete code for part 1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#define EMPTY 0 | |
#define KING 1 | |
#define QUEEN 2 | |
#define ROOK 3 | |
#define KNIGHT 4 | |
#define BISHOP 5 | |
#define PAWN 6 | |
#define BREADCRUMB 9 | |
int main(void) { | |
int board[8][8]; | |
int i, j; | |
int boardValue; | |
/* Zero out the board */ | |
for (i = 0; i <= 7; i++) { | |
for (j = 0; j <= 7; j++) { | |
/* Zero out the square */ | |
board[i][j] = 0; | |
} | |
} | |
/* Iterate backward through board */ | |
for (i = 7; i >= 0; i--) { | |
for (j = 7; j >= 0; j--) { | |
/* Zero out the square */ | |
board[i][j] = 0; | |
} | |
} | |
/* Set initial start positions */ | |
board[0][0] = ROOK; | |
board[0][1] = KNIGHT; | |
board[0][2] = BISHOP; | |
board[0][3] = QUEEN; | |
board[0][4] = KING; | |
board[0][5] = BISHOP; | |
board[0][6] = KNIGHT; | |
board[0][7] = ROOK; | |
board[1][0] = PAWN; | |
board[1][1] = PAWN; | |
board[1][2] = PAWN; | |
board[1][3] = PAWN; | |
board[1][4] = PAWN; | |
board[1][5] = PAWN; | |
board[1][6] = PAWN; | |
board[1][7] = PAWN; | |
/* Print the board */ | |
/* For every row */ | |
for (i = 0;i <= 7; i++) { | |
/* And every column */ | |
for (j = 0;j <= 7; j++){ | |
/* Get the board value */ | |
boardValue = board[i][j]; | |
/* And print the contents */ | |
switch (boardValue) { | |
case EMPTY: printf("."); | |
break; | |
case KING: printf("K"); | |
break; | |
case QUEEN: printf("Q"); | |
break; | |
case ROOK: printf("R"); | |
break; | |
case KNIGHT: printf("N"); | |
break; | |
case BISHOP: printf("B"); | |
break; | |
case PAWN: printf("P"); | |
break; | |
case BREADCRUMB: printf("+"); | |
break; | |
} | |
} | |
/* At the end of each row, make a new line */ | |
printf("\n"); | |
} | |
return EXIT_SUCCESS; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment