#include "sliding_tile_lib.h"
#include <istream>
+#include <ostream>
#include <stdexcept>
signed char adjacent[BOARD_SIZE][5] = {
11, 14, -1, -1, -1,
};
-bool Board::is_valid() {
+bool Board::is_valid() const {
bool seen[BOARD_SIZE];
for (int i = 0; i < BOARD_SIZE; i++) {
seen[i] = false;
return is;
}
-signed char Board::hole() {
+std::ostream& operator<<(std::ostream& os, const Board& board) {
+ for (int i = 0; i < BOARD_SIZE; i++) {
+ if (i > 0) {
+ os << " ";
+ }
+ os << int(board.board[i]);
+ }
+ return os;
+}
+
+signed char Board::hole() const {
for (int i = 0; i < BOARD_SIZE; i++) {
if (board[i] == 0) {
return i;