diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 194ad84..6c3b2c4 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,22 +5,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -38,27 +24,30 @@
+ {
+ "associatedIndex": 4
+}
- {
+ "keyToString": {
+ "Application.Main.executor": "Run",
+ "Application.Unnamed.executor": "Run",
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "SHARE_PROJECT_CONFIGURATION_FILES": "true",
+ "git-widget-placeholder": "master",
+ "jdk.selected.JAVA_MODULE": "temurin-17",
+ "kotlin-language-version-configured": "true",
+ "project.structure.last.edited": "Modules",
+ "project.structure.proportion": "0.0",
+ "project.structure.side.proportion": "0.0"
}
-}]]>
+}
diff --git a/list/.idea/.gitignore b/list/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/list/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/list/.idea/compiler.xml b/list/.idea/compiler.xml
new file mode 100644
index 0000000..31a520b
--- /dev/null
+++ b/list/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/list/.idea/encodings.xml b/list/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/list/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/list/.idea/jarRepositories.xml b/list/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/list/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/list/.idea/misc.xml b/list/.idea/misc.xml
new file mode 100644
index 0000000..463551f
--- /dev/null
+++ b/list/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/list/.idea/vcs.xml
similarity index 100%
rename from .idea/vcs.xml
rename to list/.idea/vcs.xml
diff --git a/list/pom.xml b/list/pom.xml
new file mode 100644
index 0000000..d93c6df
--- /dev/null
+++ b/list/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.example
+ list
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/list/src/main/java/de/vivi/list/Main.java b/list/src/main/java/de/vivi/list/Main.java
new file mode 100644
index 0000000..2d7d6ff
--- /dev/null
+++ b/list/src/main/java/de/vivi/list/Main.java
@@ -0,0 +1,73 @@
+package de.vivi.list;
+
+public class Main {
+
+ public static void main(String[] args) {
+ ByteList array = new ArrayByteList();
+ ByteList linked = new LinkedByteList();
+ ByteList combined = new CombinedByteList(16);
+
+ testList(array);
+ testList(linked);
+ testList(combined);
+
+ testSort(array);
+ testSort(linked);
+ testSort(combined);
+ }
+
+ private static void testList(ByteList list) {
+ // add the element at the end
+ list.add((byte) 10);
+ list.add((byte) 5);
+ list.add((byte) -86);
+ list.add((byte) 3);
+
+ // add the element at the specified index
+ list.add(3, (byte) 99);
+ list.add(2, (byte) -40);
+
+ // remove the element at the specified index
+ list.remove(2);
+ list.remove(3);
+
+ // set the element at the specified index
+ list.set(1, 43);
+ list.set(0, 8);
+
+ // get the element at the specified index
+ list.get(2);
+ list.get(1);
+
+ // get the size
+ list.size();
+
+ // does the list contain the specified element?
+ list.contains(43);
+
+ // remove all elements inside the list
+ list.clear();
+
+ // return a copy of the list
+ list.copy();
+
+ // return a string of the form: [1, 84, 53]
+ list.toString();
+
+ // allow to use for each loop on list
+ for (byte value : list) {
+ // do some stuff with value...
+ }
+ }
+
+ private static void testSort(ByteList list) {
+ ByteSort bubble = new BubbleSort();
+ ByteSort merge = new MergeSort();
+ ByteSort bogo = new BogoSort();
+
+ // sort the lists with the sorting algorithm
+ bubble.sort(list.copy());
+ merge.sort(list.copy());
+ bogo.sort(list.copy());
+ }
+}
diff --git a/minesweeper/.idea/.gitignore b/minesweeper/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/minesweeper/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/minesweeper/.idea/compiler.xml b/minesweeper/.idea/compiler.xml
new file mode 100644
index 0000000..0d44dd5
--- /dev/null
+++ b/minesweeper/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/minesweeper/.idea/encodings.xml b/minesweeper/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/minesweeper/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/minesweeper/.idea/jarRepositories.xml b/minesweeper/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/minesweeper/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/minesweeper/.idea/misc.xml b/minesweeper/.idea/misc.xml
new file mode 100644
index 0000000..a12cfda
--- /dev/null
+++ b/minesweeper/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/minesweeper/.idea/vcs.xml b/minesweeper/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/minesweeper/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/minesweeper/pom.xml b/minesweeper/pom.xml
new file mode 100644
index 0000000..b2a7306
--- /dev/null
+++ b/minesweeper/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.example
+ minesweeper
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/minesweeper/src/main/java/de/vivi/minesweeper/Main.java b/minesweeper/src/main/java/de/vivi/minesweeper/Main.java
new file mode 100644
index 0000000..5a1b311
--- /dev/null
+++ b/minesweeper/src/main/java/de/vivi/minesweeper/Main.java
@@ -0,0 +1,40 @@
+package de.vivi.minesweeper;
+
+public class Main {
+
+ private static final int DEFAULT_SIZE = 8;
+
+ public static void main(String[] args) {
+ int size;
+ Mode mode;
+
+ if (args.length != 2) {
+ System.out.println("Usage: minesweeper [size] [mode]");
+ return;
+ }
+
+ try {
+ size = Integer.parseInt(args[0]);
+ } catch (NumberFormatException e) {
+ size = -1;
+ }
+
+ if (size < DEFAULT_SIZE) {
+ System.out.println("Invalid size provided, must be number greater or equal " + DEFAULT_SIZE);
+ }
+
+ switch (args[1]) {
+ case "easy": mode = new EasyMode(); break;
+ case "normal": mode = new NormalMode(); break;
+ case "hard": mode = new HardMode(); break;
+ default:
+ System.out.println("Invalid mode provided, must be easy, normal or hard");
+ return;
+ }
+
+ Board board = new Board(size);
+ Game game = new Game(mode, board);
+
+ game.start();
+ }
+}
diff --git a/minesweeper/src/main/java/de/vivi/minesweeper/board/Board.java b/minesweeper/src/main/java/de/vivi/minesweeper/board/Board.java
new file mode 100644
index 0000000..e9c56f1
--- /dev/null
+++ b/minesweeper/src/main/java/de/vivi/minesweeper/board/Board.java
@@ -0,0 +1,15 @@
+package de.vivi.minesweeper.board;
+
+/**
+ * TODO:
+ *
+ * This class is the board. The board should have a constructor
+ * that takes the size as a parameter. It is a 2D grid. This should
+ * be implemented similar to the chess game, this includes printing
+ * to the console. But instead of rendering it with pawns and white
+ * and black squares, it should be rendered with a '#' for an
+ * unrevealed tile, a ' ' for a revealed tile and with a number,
+ * if it has unrevealed neighbors containing a mine.
+ */
+public class Board {
+}
diff --git a/minesweeper/src/main/java/de/vivi/minesweeper/game/Game.java b/minesweeper/src/main/java/de/vivi/minesweeper/game/Game.java
new file mode 100644
index 0000000..eec2c02
--- /dev/null
+++ b/minesweeper/src/main/java/de/vivi/minesweeper/game/Game.java
@@ -0,0 +1,11 @@
+package de.vivi.minesweeper.game;
+
+/**
+ * TODO:
+ *
+ * This class is the game. It should contain a constructor that
+ * takes as a parameter the mode and the board. It also should
+ * contain a start method for starting the game.
+ */
+public class Game {
+}
diff --git a/minesweeper/src/main/java/de/vivi/minesweeper/mode/Mode.java b/minesweeper/src/main/java/de/vivi/minesweeper/mode/Mode.java
new file mode 100644
index 0000000..7c360a5
--- /dev/null
+++ b/minesweeper/src/main/java/de/vivi/minesweeper/mode/Mode.java
@@ -0,0 +1,9 @@
+package de.vivi.minesweeper.mode;
+
+/**
+ * TODO:
+ *
+ *
+ */
+public interface Mode {
+}