]> git.scottworley.com Git - slidingtile/commitdiff
Read a board from the command line
authorScott Worley <scottworley@scottworley.com>
Mon, 28 Dec 2015 22:40:28 +0000 (14:40 -0800)
committerScott Worley <scottworley@scottworley.com>
Mon, 28 Dec 2015 22:40:28 +0000 (14:40 -0800)
sliding_tile.go [new file with mode: 0644]

diff --git a/sliding_tile.go b/sliding_tile.go
new file mode 100644 (file)
index 0000000..a934b4e
--- /dev/null
@@ -0,0 +1,34 @@
+package main
+
+import "fmt"
+import "os"
+import "strconv"
+
+const HOLE = 0
+const BOARD_SIZE = 16
+
+type Space int8
+type Board [BOARD_SIZE]Space
+
+func read_board_from_strings(in []string) (*Board, error) {
+  if len(in) != BOARD_SIZE {
+    return nil, fmt.Errorf("Please provide %d values", BOARD_SIZE)
+  }
+  var b Board
+  for i, s := range in {
+    num, err := strconv.Atoi(s)
+    b[i] = Space(num)
+    if err != nil {
+      return nil, err
+    }
+  }
+  return &b, nil
+}
+
+func main() {
+  start, err := read_board_from_strings(os.Args[1:])
+  if err != nil {
+    panic(err)
+  }
+  fmt.Println(start)
+}