solved wrong index bug
This commit is contained in:
+6
-5
@@ -5,7 +5,7 @@
|
||||
void init_board(board_t board) {
|
||||
for (int i = 0; i < BOARD_VERTICAL; i++) {
|
||||
for (int j = 0; j < BOARD_HORIZONTAL; j++) {
|
||||
board[j][i] = BOARD_DEFAULT_CONFIG[i][j];
|
||||
board[i][j] = BOARD_DEFAULT_CONFIG[i][j];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -175,10 +175,14 @@ bool is_dest_opponent(board_t board, player_e player, move_t move) {
|
||||
* 2b. it could be capturable x non-capturable
|
||||
* 2c. it could be out of bounds
|
||||
*/
|
||||
/** FIXME: does not work -> b1 a3 says 0 */
|
||||
bool validate_move(board_t board, player_e player, move_t move) {
|
||||
bool none = is_dest_none(board, move.to);
|
||||
bool dest_is_opponent = is_dest_opponent(board, player, move);
|
||||
bool move_legal = is_move_legal(move);
|
||||
printf("move.from = {%d,%d}; move.to = {%d,%d}\n", move.from.x, move.from.y, move.to.x, move.to.y);
|
||||
printf("from.piece = %d; to.piece = %d\n", board[move.from.y][move.from.x], board[move.to.y][move.to.x]);
|
||||
printf("dest is none? %d; dest is opp? %d; legal? %d\n", none, dest_is_opponent, move_legal);
|
||||
if (none && move_legal) {
|
||||
// free ability to move
|
||||
return true;
|
||||
@@ -363,7 +367,6 @@ bool is_king_endangered(board_t board, player_e player, move_t move) {
|
||||
}
|
||||
|
||||
// checks for mates
|
||||
/** FIXME: unimplemented */
|
||||
end_condition_e check_end(board_t board, player_e player, move_t move) {
|
||||
// here 'is_move_legal' is used as a determinator if a piece can move
|
||||
if (is_king_endangered(board, player, move) && !is_move_legal(move)) {
|
||||
@@ -376,9 +379,7 @@ end_condition_e check_end(board_t board, player_e player, move_t move) {
|
||||
}
|
||||
|
||||
end_condition_e perform_move(board_t *board, player_e player, captured_t *captured, move_t move) {
|
||||
bool valid = validate_move(*board, player, move);
|
||||
printf("move valid? %d", valid);
|
||||
if (valid) {
|
||||
if (validate_move(*board, player, move)) {
|
||||
if (
|
||||
*board[move.to.y][move.to.x] != WKING || // accounting for both players
|
||||
*board[move.to.y][move.to.x] != BKING // you cannot capture a king
|
||||
|
||||
+2
-2
@@ -11,9 +11,9 @@ void show_board(board_t board, player_e player) {
|
||||
for (int i = 0; i < BOARD_VERTICAL; i++) {
|
||||
printf("%-2d [", i+1);
|
||||
for (int j = 0; j < BOARD_HORIZONTAL-1; j++) {
|
||||
printf("%-2d ", board[j][i]);
|
||||
printf("%-2d ", board[i][j]);
|
||||
}
|
||||
printf("%d]\n", board[BOARD_HORIZONTAL-1][i]);
|
||||
printf("%d]\n", board[i][BOARD_HORIZONTAL-1]);
|
||||
}
|
||||
|
||||
printf("\ncurrently plays: ");
|
||||
|
||||
Reference in New Issue
Block a user