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 |
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
| /* Calculate possible up-right diagonal destinations. | |
| * This requires the loop to iterate backwards as we are | |
| * checking cells before the bishop. */ | |
| for (i=7; i>=0; i--) { | |
| for (j=7; j>=0; j--){ | |
| /* If 1) the cell to left is inbounds of the array and | |
| * 2) the cell isn't not on the final row */ | |
| if ((j-1 != -1) && (i != 7)) { | |
| /* ...and the below-left cell has a bishop OR a breadcrumb... */ | |
| if (board[i+1][j-1] == BISHOP || board[i+1][j-1] == POTENTIAL_MOVE_BISHOP_UR) { |
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
| /* Calculate a pawn move */ | |
| /* For every row */ | |
| for (i = 0;i <= 7; i++) { | |
| /* And every column */ | |
| for (j = 0;j <= 7; j++){ | |
| /* If this square contains a pawn.. */ | |
| if (board[i][j] == PAWN) { | |
| /* ..and the pawn is NOT on the final row.. */ | |
| if (i != 7) { | |
| /* ..mark the square below as being a potential move */ |
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
| /* Calculate a pawn move */ | |
| /* For every row */ | |
| for (i = 0;i <= 7; i++) { | |
| /* And every column */ | |
| for (j = 0;j <= 7; j++){ | |
| /* If this square contains a pawn.. */ | |
| if (board[i][j] == PAWN) { | |
| /* ..mark the square below as being a potential move */ | |
| board[i+1][j] = POTENTIAL_MOVE_PAWN; |
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
| /* Calculate a pawn move */ | |
| /* For every row */ | |
| for (i = 0;i <= 7; i++) { | |
| /* And every column */ | |
| for (j = 0;j <= 7; j++){ | |
| /* If this square contains a pawn.. */ | |
| if (board[i][j] == PAWN) { | |
| /* ..mark the square below as being a potential move */ | |
| board[i+1][j] = POTENTIAL_MOVE_PAWN; | |
| } |
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
| /* 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;*/ |
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
| /* 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) { |
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
| #define POTENTIAL_MOVE_KING 10 | |
| #define POTENTIAL_MOVE_QUEEN 20 | |
| #define POTENTIAL_MOVE_ROOK 30 | |
| #define POTENTIAL_MOVE_KNIGHT 40 | |
| #define POTENTIAL_MOVE_BISHOP 50 | |
| #define POTENTIAL_MOVE_PAWN 60 |
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 |
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
| #define EMPTY 0 | |
| #define KING 1 | |
| #define QUEEN 2 | |
| #define ROOK 3 | |
| #define KNIGHT 4 | |
| #define BISHOP 5 | |
| #define PAWN 6 | |
| #define BREADCRUMB 9 | |
| #define POTENTIAL_MOVE_KING 10 |