diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/chess_board.cpp | 28 | ||||
-rw-r--r-- | src/chess_piece.cpp | 46 |
2 files changed, 56 insertions, 18 deletions
diff --git a/src/chess_board.cpp b/src/chess_board.cpp index 9a6848b..badd585 100644 --- a/src/chess_board.cpp +++ b/src/chess_board.cpp @@ -1,14 +1,10 @@ #include "../include/chess_ai.hpp" -typedef std::vector<std::vector<chess_ai::chess_piece>>:: -iterator vector_iterator; -typedef std::vector<chess_ai::chess_piece>::iterator square_iterator; - -chess_ai::chess_board::chess_board() { +chess_ai::chess_board::chess_board() : SIZE(CHESS_BOARD_SIZE) { init_board_vector(); } -chess_ai::chess_board::chess_board(board_state state) { +chess_ai::chess_board::chess_board(board_state state) : SIZE(CHESS_BOARD_SIZE){ unsigned vec_index, sqr_index; init_board_vector(); @@ -155,3 +151,23 @@ void chess_ai::chess_board::remove_piece(unsigned x, unsigned y) { } } } + +void chess_ai::chess_board::move_piece(chess_piece piece) { + +} + +void chess_ai::chess_board::iterate_board(unsigned x, unsigned y, + square_iterator& it) { + 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(); + it_sqr != (*it_vec).end(); ++it_sqr) { + vec_index = it_vec - grid.begin(); + sqr_index = it_sqr - (*it_vec).begin(); + + if(vec_index == y && sqr_index == x) { + it = it_sqr; + } + } + } +} diff --git a/src/chess_piece.cpp b/src/chess_piece.cpp index 5e23444..bab3612 100644 --- a/src/chess_piece.cpp +++ b/src/chess_piece.cpp @@ -1,9 +1,7 @@ #include "../include/chess_ai.hpp" -chess_ai::chess_piece::chess_piece(piece_type type, piece_colour colour) { - this->type = type; - this->colour = colour; - +chess_ai::chess_piece::chess_piece(piece_type type, piece_colour colour) : + type(type), colour(colour) { if(colour == black) { y = 0; } else { @@ -17,14 +15,12 @@ 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) { - this->type = type; - this->colour = colour; - this->x = x; - this->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; @@ -42,6 +38,32 @@ void chess_ai::chess_piece::set_y(unsigned y) { this->y = y; } +void chess_ai::chess_piece::set(piece_type type, piece_colour colour, + unsigned x, unsigned y) { + set_type(type); + set_colour(colour); + set_x(x); + set_y(y); +} + +chess_ai::chess_piece& chess_ai::chess_piece::operator==(const chess_piece& + piece) { + if(this != &piece) { + this->set(piece.type, piece.colour, piece.x, piece.y); + } + return *this; +} + +chess_ai::chess_piece& chess_ai::chess_piece::operator++() { + return *this; +} + +chess_ai::chess_piece chess_ai::chess_piece::operator++(int) { + chess_piece tmp(*this); + operator++(); + return tmp; +} + std::string chess_ai::chess_piece::str() { if(type == empty) return " "; |