Skip to content

Instantly share code, notes, and snippets.

@mpgarate
Created November 14, 2015 19:18
Show Gist options
  • Save mpgarate/d88e9d5b779300d9fb7e to your computer and use it in GitHub Desktop.
Save mpgarate/d88e9d5b779300d9fb7e to your computer and use it in GitHub Desktop.
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..11d7bdc
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,4 @@
+[root]
+name = "fifteen_puzzle"
+version = "0.1.0"
+
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..7320974
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,4 @@
+[package]
+name = "fifteen_puzzle"
+version = "0.1.0"
+authors = ["michael <mpgarate@gmail.com>"]
diff --git a/src/game/.bitboard.rs.swp b/src/game/.bitboard.rs.swp
new file mode 100644
index 0000000..06d61aa
Binary files /dev/null and b/src/game/.bitboard.rs.swp differ
diff --git a/src/game/bitboard.rs b/src/game/bitboard.rs
new file mode 100644
index 0000000..08ac932
--- /dev/null
+++ b/src/game/bitboard.rs
@@ -0,0 +1,35 @@
+#[allow(dead_code)]
+const BOARD_STATE_EMPTY: u64 = 0x123456789ABCDEF0;
+
+#[allow(dead_code)]
+pub struct BitBoard {
+ data: u64,
+}
+
+#[allow(dead_code)]
+impl BitBoard {
+ fn new() -> BitBoard {
+ BitBoard { data: BOARD_STATE_EMPTY }
+ }
+
+ fn is_solved(&self) -> bool {
+ self.data == BOARD_STATE_EMPTY
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn constructs_with_empty_state() {
+ let b: BitBoard = BitBoard::new();
+ assert!(b.data == super::BOARD_STATE_EMPTY);
+ }
+
+ #[test]
+ fn new_board_is_solved() {
+ let b: BitBoard = BitBoard::new();
+ assert!(b.is_solved());
+ }
+}
diff --git a/src/game/mod.rs b/src/game/mod.rs
new file mode 100644
index 0000000..7e255be
--- /dev/null
+++ b/src/game/mod.rs
@@ -0,0 +1,2 @@
+pub use self::bitboard::BitBoard;
+mod bitboard;
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..ce8dedf
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,2 @@
+mod game;
+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment