Skip to content

Instantly share code, notes, and snippets.

@pauldwhitman
Last active December 14, 2015 17:48
Show Gist options
  • Save pauldwhitman/5124273 to your computer and use it in GitHub Desktop.
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.
#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