X-Git-Url: http://git.scottworley.com/slidingtile/blobdiff_plain/5d2f7c7cebb5423fa9618a28871a81671c380041..d50a762626723f94b364f4a79232b89b96e63585:/sliding_tile_lib.cc diff --git a/sliding_tile_lib.cc b/sliding_tile_lib.cc index b43cbba..82402a5 100644 --- a/sliding_tile_lib.cc +++ b/sliding_tile_lib.cc @@ -118,3 +118,21 @@ std::vector Step::successors(std::shared_ptr shared_this) { } return suc; } + +std::ostream& operator<<(std::ostream& os, const Step& step) { + if (step.prev != nullptr) { + os << *step.prev; + signed char this_hole = step.board.hole(); + signed char prev_hole = step.prev->board.hole(); + os << int(step.board.board[prev_hole]) << " "; + switch (this_hole - prev_hole) { + case -1: os << "right"; break; + case 1: os << "left"; break; + case -BOARD_DIM: os << "down"; break; + case BOARD_DIM: os << "up"; break; + default: os << "somehow!"; break; + } + os << std::endl; + } + return os; +}