diff --git a/README.md b/README.md
index 1a7b222..27b72f7 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,29 @@
-# PyGame-Snake
+
+# Snake
+
+Dette er mit bud på det klassiske spil Snake, skrevet i Python, ved hjælp af PyGame.
+
+## Spillets forløb
+Slangen bevæger sig med en konstant fart, i én retning. Der er vilkårligt anbragte forhindringer på banen.
+
+
+Slangen skal styres udenom forhindringerne samt vægge. Du dør hvis du rammer en væg, en forhindring eller dig selv.
+
+Der bliver også lagt føde ud, vilkårlige steder. Føden forsvinder igen, efter 5 sekunder.
+
+Hvis du spiser føden, forlænges slangen.
+
+Målet er, at overleve så længe som muligt, samt at få så mange point som muligt.
+
+Én strategi kunne være, at undgå at spise, og derved forblive samme længde, men så får du kun point for tiden.
+
+Hvis du derimod spiser, fordobles dine tidspoint, for hver gang du spiser. Derved kan du opnå mange flere point end ved ikke at spise.
+
+## Kontrol
+Højre - d eller →
+Venstre - a eller ←
+Op - w eller ↑
+Ned - s eller ↓
+
+Alternativt, kan et joystick :joystick: eller gamepad :video_game: bruges.
\ No newline at end of file
diff --git a/gfx/LoseScreen.png b/gfx/LoseScreen.png
new file mode 100644
index 0000000..76c56da
Binary files /dev/null and b/gfx/LoseScreen.png differ
diff --git a/gfx/StartScreen.png b/gfx/StartScreen.png
new file mode 100644
index 0000000..21a383b
Binary files /dev/null and b/gfx/StartScreen.png differ
diff --git a/gfx/Textures.png b/gfx/Textures.png
new file mode 100644
index 0000000..c175c4b
Binary files /dev/null and b/gfx/Textures.png differ
diff --git a/gfx/Vignette.png b/gfx/Vignette.png
new file mode 100644
index 0000000..9206fe3
Binary files /dev/null and b/gfx/Vignette.png differ
diff --git a/gfx/WinScreen.png b/gfx/WinScreen.png
new file mode 100644
index 0000000..bf354a2
Binary files /dev/null and b/gfx/WinScreen.png differ
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..d7718d1
--- /dev/null
+++ b/main.py
@@ -0,0 +1,5 @@
+from tilemap.playground import PlayGround
+
+if __name__ == "__main__":
+ pg = PlayGround(geometry = (1, 3))
+ pass
\ No newline at end of file
diff --git a/pygame_logo.png b/pygame_logo.png
new file mode 100644
index 0000000..0de28c4
Binary files /dev/null and b/pygame_logo.png differ
diff --git a/tilemap/__init__.py b/tilemap/__init__.py
new file mode 100644
index 0000000..90f1c69
--- /dev/null
+++ b/tilemap/__init__.py
@@ -0,0 +1 @@
+from . import playground
\ No newline at end of file
diff --git a/tilemap/playground.py b/tilemap/playground.py
new file mode 100644
index 0000000..33a84d4
--- /dev/null
+++ b/tilemap/playground.py
@@ -0,0 +1,97 @@
+"""
+This is the part responsible for generating the playing area.
+The setup is a simple tilemap, which consists of a variety of
+tiles of 32x32 pixels.
+There's a series of wall_tiles, ground_tiles and obstacle_tiles.
+"""
+import html
+
+wall_tiles = {"WALL_NW": "╔", "WALL_HORIZONTAL": "═",
+ "WALL_NE": "╗", "WALL_VERTICAL": "║",
+ "WALL_SW": "╚", "WALL_SE": "╝",
+ "WALL_TOP_LEFT_OPENING": "╛", "WALL_TOP_RIGHT_OPENING": "╘",
+ "WALL_BOTTOM_LEFT_OPENING": "╕", "WALL_BOTTOM_RIGHT_OPENING": "╒",
+ "WALL_LEFT_UPPER_OPENING": "╜", "WALL_LEFT_LOWER_OPENING": "╖",
+ "WALL_RIGHT_UPPER_OPENING": "╙", "WALL_RIGHT_LOWER_OPENING": "╓"}
+
+walls = [
+ ["WALL_NW", "WALL_HORIZONTAL", "WALL_HORIZONTAL", "WALL_HORIZONTAL", "WALL_NE"],
+ ["WALL_VERTICAL", " ", " ", " ", "WALL_VERTICAL"],
+ ["WALL_VERTICAL", " ", " ", " ", "WALL_VERTICAL"],
+ ["WALL_VERTICAL", " ", " ", " ", "WALL_VERTICAL"],
+ ["WALL_SW", "WALL_HORIZONTAL", "WALL_HORIZONTAL", "WALL_HORIZONTAL", "WALL_SE"]
+ ]
+
+# Playground geometry matrix of rooms can range from 1x1 to 3x3.
+geometries = [(1, 1), (2, 1), (3, 1),
+ (1, 2), (2, 2), (3, 2),
+ (1, 3), (2, 3), (3, 3)]
+
+class Room:
+ def __init__(self, geometry: tuple):
+ self.room: list = []
+ self.create_random(geometry)
+
+ def create_random(self, geometry) -> None:
+ top: int = 0 # top = row 0
+ left: int = 0 # left = char 0 of row
+ right: int = geometry[0] - 1 # right = room_width-1
+ bottom: int = geometry[1] - 1 # bottom = room_height-1
+
+ room: list = []
+ for r in range(geometry[1]):
+ row: list = []
+ for c in range(geometry[0]):
+ if r == top and c == left:
+ row.append(wall_tiles["WALL_NW"])
+ continue
+ elif r == top and c == right:
+ row.append(wall_tiles["WALL_NE"])
+ continue
+ elif r == bottom and c ==left:
+ row.append(wall_tiles["WALL_SW"])
+ continue
+ elif r == bottom and c == right:
+ row.append(wall_tiles["WALL_SE"])
+ continue
+ if r == top or r == bottom:
+ if c > left and c < right:
+ row.append(wall_tiles["WALL_HORIZONTAL"])
+ continue
+ if r > top and r < bottom:
+ if c == left or c == right:
+ row.append(wall_tiles["WALL_VERTICAL"])
+ continue
+ row.append(" ")
+ room.append(row)
+ self.room = room
+
+ def get_room(self) -> list:
+ return self.list
+
+class PlayGround:
+ def __init__(self, geometry: tuple):
+ self.rooms: list = []
+ for r in range(geometry[0]):
+ row: list = []
+ for c in range(geometry[1]):
+ row.append(self.create_room(geometry = (20, 10)))
+ self.rooms.append(row)
+
+ def create_room(self, geometry) -> list:
+ return Room(geometry).room
+
+ def print_room(self, room) -> None:
+ pass
+
+if __name__ == "__main__":
+
+ pg = PlayGround(geometry = (1, 3))
+
+ line: str = ""
+ for r in pg.rooms[0]:
+ for c in r:
+ for b in c:
+ line = line + html.unescape(b)
+ line = line + "\n"
+ print(line)
\ No newline at end of file
diff --git a/tilemap/tiles/apple.png b/tilemap/tiles/apple.png
new file mode 100644
index 0000000..bf94088
Binary files /dev/null and b/tilemap/tiles/apple.png differ
diff --git a/tilemap/tiles/body_bottomleft.png b/tilemap/tiles/body_bottomleft.png
new file mode 100644
index 0000000..c98ecdf
Binary files /dev/null and b/tilemap/tiles/body_bottomleft.png differ
diff --git a/tilemap/tiles/body_bottomright.png b/tilemap/tiles/body_bottomright.png
new file mode 100644
index 0000000..ed9567e
Binary files /dev/null and b/tilemap/tiles/body_bottomright.png differ
diff --git a/tilemap/tiles/body_horizontal.png b/tilemap/tiles/body_horizontal.png
new file mode 100644
index 0000000..5da61e8
Binary files /dev/null and b/tilemap/tiles/body_horizontal.png differ
diff --git a/tilemap/tiles/body_topleft.png b/tilemap/tiles/body_topleft.png
new file mode 100644
index 0000000..e57fd8f
Binary files /dev/null and b/tilemap/tiles/body_topleft.png differ
diff --git a/tilemap/tiles/body_topright.png b/tilemap/tiles/body_topright.png
new file mode 100644
index 0000000..028bfce
Binary files /dev/null and b/tilemap/tiles/body_topright.png differ
diff --git a/tilemap/tiles/body_vertical.png b/tilemap/tiles/body_vertical.png
new file mode 100644
index 0000000..f7c0b2c
Binary files /dev/null and b/tilemap/tiles/body_vertical.png differ
diff --git a/tilemap/tiles/head_down.png b/tilemap/tiles/head_down.png
new file mode 100644
index 0000000..e3c6afa
Binary files /dev/null and b/tilemap/tiles/head_down.png differ
diff --git a/tilemap/tiles/head_left.png b/tilemap/tiles/head_left.png
new file mode 100644
index 0000000..d1f8ec1
Binary files /dev/null and b/tilemap/tiles/head_left.png differ
diff --git a/tilemap/tiles/head_right.png b/tilemap/tiles/head_right.png
new file mode 100644
index 0000000..8b7baa5
Binary files /dev/null and b/tilemap/tiles/head_right.png differ
diff --git a/tilemap/tiles/head_up.png b/tilemap/tiles/head_up.png
new file mode 100644
index 0000000..30ec169
Binary files /dev/null and b/tilemap/tiles/head_up.png differ
diff --git a/tilemap/tiles/tail_down.png b/tilemap/tiles/tail_down.png
new file mode 100644
index 0000000..44703ea
Binary files /dev/null and b/tilemap/tiles/tail_down.png differ
diff --git a/tilemap/tiles/tail_left.png b/tilemap/tiles/tail_left.png
new file mode 100644
index 0000000..f851fde
Binary files /dev/null and b/tilemap/tiles/tail_left.png differ
diff --git a/tilemap/tiles/tail_right.png b/tilemap/tiles/tail_right.png
new file mode 100644
index 0000000..6c23b18
Binary files /dev/null and b/tilemap/tiles/tail_right.png differ
diff --git a/tilemap/tiles/tail_up.png b/tilemap/tiles/tail_up.png
new file mode 100644
index 0000000..f984b66
Binary files /dev/null and b/tilemap/tiles/tail_up.png differ