\ No newline at end of file
diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt
index 0eba5d3..533ded3 100644
--- a/src/main/kotlin/Main.kt
+++ b/src/main/kotlin/Main.kt
@@ -1,5 +1,14 @@
package technology.zim
+/*
+Adjacency matrix for graph representation. 5k x 5k or 10k x 10k are safe goals, for memory
+Working with a gigantic grid that's mostly full: better to have a up/right/down/left data in each one or a huge adjacency matrix?
+Minimum int size is probably 32 or 64 bit, so huge memory waste if that's used
+
+
+Abandon fancy stretch goals, just get pathfinding done and scale it up to demonstrate large scale
+ */
+
fun main() {
println("Hello World!")
}
\ No newline at end of file
diff --git a/src/main/kotlin/Pathfinder.kt b/src/main/kotlin/Pathfinder.kt
new file mode 100644
index 0000000..4b69348
--- /dev/null
+++ b/src/main/kotlin/Pathfinder.kt
@@ -0,0 +1,5 @@
+package technology.zim
+
+class Pathfinder {
+
+}
\ No newline at end of file
diff --git a/src/main/kotlin/TestingClass.kt b/src/main/kotlin/TestingClass.kt
new file mode 100644
index 0000000..3297e9b
--- /dev/null
+++ b/src/main/kotlin/TestingClass.kt
@@ -0,0 +1,7 @@
+package technology.zim
+
+class TestingClass {
+ fun basic(): Boolean {
+ return true
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/Tile.kt b/src/main/kotlin/Tile.kt
new file mode 100644
index 0000000..fe55f73
--- /dev/null
+++ b/src/main/kotlin/Tile.kt
@@ -0,0 +1,13 @@
+package technology.zim
+
+//Data holder to encapsulate a particular location
+//Might not be necessary, might add unnecessary memory usage
+
+//Tile could use a simple int or long to combine both coordinates
+//Retrieve X or Y with bitwise operations
+//Removes boxing while allowing access. Still doesn't add walls.
+
+@JvmInline
+value class Tile(val coords: Int) {
+
+}
diff --git a/src/main/kotlin/Walls.kt b/src/main/kotlin/Walls.kt
new file mode 100644
index 0000000..ee9b88a
--- /dev/null
+++ b/src/main/kotlin/Walls.kt
@@ -0,0 +1,7 @@
+package technology.zim
+
+//Should change things around so an inline class holds the data and functions for wall checks
+
+enum class Walls(val dirs: Int) {
+ NORTH(1), EAST(2), SOUTH(4), WEST(8)
+}
diff --git a/src/main/kotlin/World.kt b/src/main/kotlin/World.kt
new file mode 100644
index 0000000..77979ed
--- /dev/null
+++ b/src/main/kotlin/World.kt
@@ -0,0 +1,23 @@
+package technology.zim
+
+//For now, keep it small with uncompresed tile representation
+//In the future, this could be stored in a gzipped file and memory mapped
+
+
+//Location in array is the tile's coordinates
+//Value of int is barriers, bitwise operation
+
+class World(val tiles: ArrayList> ) {
+ //TODO: Implement world generation algorithm
+ fun generate(seed: Int) {
+
+ }
+
+ //Determine whether moving from one tile to another is valid
+ //Should limit to adjacent tiles
+ //Should detect walls and refuse movement if one exists in the desired direction
+ //Or maybe this should be delegated to another class
+ fun canPass(x: Int, y: Int, fromX: Int, fromY: Int) {
+
+ }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/TestingClassTest.kt b/src/test/kotlin/TestingClassTest.kt
new file mode 100644
index 0000000..04d5973
--- /dev/null
+++ b/src/test/kotlin/TestingClassTest.kt
@@ -0,0 +1,14 @@
+import org.junit.jupiter.api.Test
+
+import org.junit.jupiter.api.Assertions.*
+import technology.zim.TestingClass
+
+class TestingClassTest {
+
+ @Test
+ fun basic() {
+ val test = TestingClass()
+ val res = test.basic()
+ assertEquals(true, res)
+ }
+}
\ No newline at end of file