]> git.scottworley.com Git - slidingtile/blobdiff - sliding_tile_lib.cc
A where's-the-hole function.
[slidingtile] / sliding_tile_lib.cc
index 3b7806bd0a204eb113146871eb5deaedcfbb7fd3..b8ddc154a1a829e3ce7843678c34901334ef7ddf 100644 (file)
@@ -1,6 +1,7 @@
 #include "sliding_tile_lib.h"
 
 #include <istream>
+#include <stdexcept>
 
 signed char adjacent[BOARD_SIZE][5] = {
   1,   4,   -1,  -1,  -1,
@@ -63,3 +64,12 @@ std::istream& operator>>(std::istream& is, Board& board) {
   }
   return is;
 }
+
+signed char Board::hole() {
+  for (int i = 0; i < BOARD_SIZE; i++) {
+    if (board[i] == 0) {
+      return i;
+    }
+  }
+  throw std::runtime_error("Board with no hole");
+}