aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzedarider <ymherklotz@gmail.com>2016-11-09 15:29:24 +0000
committerzedarider <ymherklotz@gmail.com>2016-11-09 15:29:24 +0000
commit375e4b989af8b4ac2c3479ea32f9324f29ce9071 (patch)
tree79c0e49d9b7201ef43b28695c11b8d8d97cccd05
parent946993f12456d0ec6dc97534b57393565404ad79 (diff)
downloadChessAI-375e4b989af8b4ac2c3479ea32f9324f29ce9071.tar.gz
ChessAI-375e4b989af8b4ac2c3479ea32f9324f29ce9071.zip
changed the code formatting for easier viewing
-rw-r--r--include/chess_ai.hpp32
-rw-r--r--src/chess_board.cpp35
-rw-r--r--src/chess_piece.cpp10
3 files changed, 45 insertions, 32 deletions
diff --git a/include/chess_ai.hpp b/include/chess_ai.hpp
index a62ddf4..380d406 100644
--- a/include/chess_ai.hpp
+++ b/include/chess_ai.hpp
@@ -19,7 +19,7 @@ namespace chess_ai {
enum board_state : unsigned;
// defines the errors that can happen when moving a piece
- enum movement_flag : unsigned;
+ enum move_error : unsigned;
// The chess board that will be played on
class chess_board;
@@ -28,8 +28,10 @@ namespace chess_ai {
class chess_piece;
// typedefs for iterators to access elements easier
+
typedef std::vector<std::vector<chess_ai::chess_piece>>::
-iterator vector_iterator;
+ iterator vector_iterator;
+
typedef std::vector<chess_ai::chess_piece>::iterator square_iterator;
enum piece_type : unsigned {
@@ -84,7 +86,7 @@ iterator vector_iterator;
clear
};
- enum movement_flag : unsigned {
+ enum move_error : unsigned {
// when king is in check there are limited possibilities
move_error_KingInCheckAfterMove,
// when there is a friendly piece in the way
@@ -125,13 +127,21 @@ iterator vector_iterator;
void remove_piece(unsigned x, unsigned y);
// move a piece according to the chess rules
- movement_flag move_piece(chess_piece piece);
- movement_flag move_piece(unsigned x, unsigned y);
- movement_flag move_piece(unsigned orig_x, unsigned orig_y, unsigned dest_x,
- unsigned dest_y);
- movement_flag move_piece(unsigned orig_x, unsigned orig_y, unsigned dest_x,
- unsigned dest_y, chess_piece& taken_piece);
- movement_flag move_piece(chess_piece piece, unsigned x, unsigned y);
+ move_error move_piece(chess_piece piece);
+
+ // move piece using only x and y (for pawns)
+ move_error move_piece(unsigned x, unsigned y);
+
+ // move piece with x and y as original and final destination
+ move_error move_piece(unsigned orig_x, unsigned orig_y,
+ unsigned dest_x, unsigned dest_y);
+
+ // move piece and return a piece that has been captured
+ move_error move_piece(unsigned orig_x, unsigned orig_y,
+ unsigned dest_x, unsigned dest_y,
+ chess_piece& taken_piece);
+
+ move_error move_piece(chess_piece piece, unsigned x, unsigned y);
// iterate through the list and return the pointer to change
square_iterator& iterate_board(square_iterator& it, unsigned x,
@@ -144,7 +154,7 @@ iterator vector_iterator;
void init_board_vector();
// moves the pawn
- movement_flag move_pawn(square_iterator it, square_iterator new_it,
+ move_error move_pawn(square_iterator it, square_iterator new_it,
chess_piece& taken_piece);
// The size of the chess board is a constant and hence defined by a
diff --git a/src/chess_board.cpp b/src/chess_board.cpp
index ac3e1ae..4891981 100644
--- a/src/chess_board.cpp
+++ b/src/chess_board.cpp
@@ -4,7 +4,7 @@ chess_ai::chess_board::chess_board() : SIZE(CHESS_BOARD_SIZE) {
init_board_vector();
}
-chess_ai::chess_board::chess_board(board_state state) : SIZE(CHESS_BOARD_SIZE){
+chess_ai::chess_board::chess_board(board_state state) : SIZE(CHESS_BOARD_SIZE) {
unsigned vec_index, sqr_index;
init_board_vector();
@@ -119,12 +119,11 @@ void chess_ai::chess_board::remove_piece(unsigned x, unsigned y) {
*iterate_board(it_sqr, x, y) = chess_piece();
}
-chess_ai::movement_flag chess_ai::chess_board::move_piece(chess_piece piece) {
+chess_ai::move_error chess_ai::chess_board::move_piece(chess_piece piece) {
return move_piece(piece.x, piece.y);
}
-chess_ai::movement_flag chess_ai::chess_board::move_piece(unsigned x,
- unsigned y) {
+chess_ai::move_error chess_ai::chess_board::move_piece(unsigned x, unsigned y) {
square_iterator it;
iterate_board(it, x, y);
@@ -136,19 +135,23 @@ chess_ai::movement_flag chess_ai::chess_board::move_piece(unsigned x,
return move_error_IllegalMove;
}
-chess_ai::movement_flag chess_ai::chess_board::move_piece(
- chess_ai::chess_piece piece, unsigned x, unsigned y) {
+chess_ai::move_error chess_ai::chess_board::move_piece
+(chess_ai::chess_piece piece, unsigned x, unsigned y) {
+
return move_piece(piece.x, piece.y, x, y);
}
-chess_ai::movement_flag chess_ai::chess_board::move_piece(unsigned orig_x,
- unsigned orig_y, unsigned dest_x, unsigned dest_y) {
+chess_ai::move_error chess_ai::chess_board::move_piece
+(unsigned orig_x, unsigned orig_y, unsigned dest_x, unsigned dest_y) {
+
chess_piece taken;
return move_piece(orig_x, orig_y, dest_x, dest_y, taken);
}
-chess_ai::movement_flag chess_ai::chess_board::move_piece(unsigned orig_x,
- unsigned orig_y, unsigned dest_x,
- unsigned dest_y, chess_piece& taken_piece) {
+
+chess_ai::move_error chess_ai::chess_board::move_piece
+(unsigned orig_x, unsigned orig_y, unsigned dest_x, unsigned dest_y,
+ chess_piece& taken_piece) {
+
square_iterator it;
square_iterator new_it;
@@ -169,8 +172,9 @@ chess_ai::movement_flag chess_ai::chess_board::move_piece(unsigned orig_x,
}
}
-chess_ai::square_iterator& chess_ai::chess_board::iterate_board(
- square_iterator& it, unsigned x, unsigned y) {
+chess_ai::square_iterator& chess_ai::chess_board::iterate_board
+(square_iterator& it, unsigned x, unsigned y) {
+
unsigned vec_index, sqr_index;
for(vector_iterator it_vec = grid.begin(); it_vec != grid.end(); ++it_vec) {
for(square_iterator it_sqr = (*it_vec).begin();
@@ -187,8 +191,9 @@ chess_ai::square_iterator& chess_ai::chess_board::iterate_board(
return it;
}
-chess_ai::movement_flag chess_ai::chess_board::move_pawn(square_iterator it,
- square_iterator new_it, chess_piece& taken_piece) {
+chess_ai::move_error chess_ai::chess_board::move_pawn
+(square_iterator it, square_iterator new_it, chess_piece& taken_piece) {
+
chess_piece piece(it->type, it->colour, new_it->x, new_it->y);
if((new_it->y - it->y == 2 && it->y == 1) ||
diff --git a/src/chess_piece.cpp b/src/chess_piece.cpp
index 6eb07e7..e81b9b7 100644
--- a/src/chess_piece.cpp
+++ b/src/chess_piece.cpp
@@ -2,6 +2,7 @@
chess_ai::chess_piece::chess_piece(piece_type type, piece_colour colour) :
type(type), colour(colour) {
+
if(colour == black) {
y = 0;
} else {
@@ -15,12 +16,9 @@ chess_ai::chess_piece::chess_piece(piece_type type, piece_colour colour) :
}
}
-chess_ai::chess_piece::chess_piece(
- piece_type type,
- piece_colour colour,
- unsigned x,
- unsigned y
- ) : type(type), colour(colour), x(x), y(y) {}
+chess_ai::chess_piece::chess_piece(piece_type type, piece_colour colour,
+ unsigned x, unsigned y) :
+ type(type), colour(colour), x(x), y(y) {}
void chess_ai::chess_piece::set_type(piece_type type) {
this->type = type;