X-Git-Url: http://git.scottworley.com/slidingtile/blobdiff_plain/49358f3664c36c346dba758ae1b7da9106c42e3b..310a7132ffc617b93969703de7f3bf1c5ea0fa30:/sliding_tile_lib.cc?ds=sidebyside diff --git a/sliding_tile_lib.cc b/sliding_tile_lib.cc index 82402a5..e4f2f12 100644 --- a/sliding_tile_lib.cc +++ b/sliding_tile_lib.cc @@ -49,6 +49,30 @@ bool Board::is_valid() const { return true; } +bool Board::operator==(const Board& o) const { + for (int i = 0; i < BOARD_SIZE; i++) { + if (board[i] != o.board[i]) { + return false; + } + } + return true; +} + +bool Board::operator!=(const Board& o) const { + return !operator==(o); +} + +bool Board::operator<(const Board& o) const { + for (int i = 0; i < BOARD_SIZE; i++) { + if (board[i] < o.board[i]) { + return true; + } else if (board[i] > o.board[i]) { + return false; + } + } + return false; +} + std::istream& operator>>(std::istream& is, Board& board) { for (int i = 0; i < BOARD_SIZE; i++) { if (!is.good()) {