diff --git a/PR2Projekt/.classpath b/PR2Projekt/.classpath
index 160ba5f..5c5b866 100644
--- a/PR2Projekt/.classpath
+++ b/PR2Projekt/.classpath
@@ -1,11 +1,35 @@
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PR2Projekt/.project b/PR2Projekt/.project
index 13ac5a5..38886c7 100644
--- a/PR2Projekt/.project
+++ b/PR2Projekt/.project
@@ -10,8 +10,14 @@
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+ org.eclipse.m2e.core.maven2Nature
org.eclipse.jdt.core.javanature
diff --git a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/HitoriMain.java b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/HitoriMain.java
new file mode 100644
index 0000000..34f2395
--- /dev/null
+++ b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/HitoriMain.java
@@ -0,0 +1,235 @@
+package de.hs_mannheim.informatik.mvn.domain;
+
+import java.awt.CardLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Scanner;
+import java.util.Stack;
+import java.io.File;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import de.hs_mannheim.informatik.mvn.gui.GameGUI;
+import de.hs_mannheim.informatik.mvn.gui.MenuGUI;
+
+public class HitoriMain extends JFrame implements ActionListener{
+
+ private static String[] filepath = {"", ""};
+
+ public static void main(String[] args) throws FileNotFoundException{
+ new MenuGUI();
+ }
+
+ public static void ablauf(CardLayout cl, JPanel main, String[] filepath) throws FileNotFoundException {
+ Stack madeMoves = new Stack<>();
+ String[][] data = getData(filepath[0], Integer.parseInt(filepath[1]));
+ String[][] colors = makeColorArray(data.length);
+ JButton[][] buttons = makeButtonArray(data);
+ GameGUI.paintGame(cl, main, filepath, buttons, colors, madeMoves, data);
+ }
+
+ public static ArrayList readFromFile(String path){
+ ArrayList lines = new ArrayList<>();
+ try (BufferedReader reader = new BufferedReader(new FileReader(path))) {
+ String line;
+ while ((line = reader.readLine()) != null) {
+ lines.add(line);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return lines;
+ }
+
+ public static String[][] getData(String filepath, int rows) throws FileNotFoundException{
+ Scanner sc = new Scanner(new File(filepath));
+ String[][] data = new String[rows][rows];
+ int rowInt = 0;
+ while (sc.hasNextLine() && rowInt < rows) {
+ String line = sc.nextLine();
+ data[rowInt] = line.split(",");
+ rowInt++;
+ }
+ sc.close();
+ return data;
+ }
+
+
+ public static String[][] makeColorArray(int size){
+ String[][] colors = new String[size][size];
+ for(int i=0;i filteredData = getSolution(path, result);
+ String[][] ergebnis1 = getErgebnisArray(result, filteredData);
+ int count = 0;
+ for(int i=0;i madeMoves,String[][] data) throws FileNotFoundException{
+ madeMoves.clear();
+ for(int i = 0; i getSolution(String path, String[][] result) throws FileNotFoundException{
+ Scanner sc = new Scanner(new File(path));
+ ArrayList filteredData = new ArrayList<>();
+ boolean isUnderComment = false;
+ while (sc.hasNextLine()) {
+ String line = sc.nextLine().trim();
+ if (line.equals("//Lösung (schwarze Felder)")) {
+ isUnderComment = true;
+ continue;
+ }
+ if (isUnderComment && !line.isEmpty()) {
+ String[] lineArray = line.split(",");
+ int num1 = Integer.parseInt(lineArray[0]);
+ int num2 = Integer.parseInt(lineArray[1]);
+ String newNum1 = String.valueOf(num1-1);
+ String newNum2 = String.valueOf(num2-1);
+ String newLine = newNum1+","+newNum2;
+ filteredData.add(newLine);
+ }
+ }
+ sc.close();
+ return filteredData;
+ }
+
+ public static String[][] getErgebnisArray(String[][] result, ArrayList filteredData){
+ String[][] ergebnis = new String[result.length][result.length];
+ for(int i=0;i= 0 && row < ergebnis.length && col >= 0 && col < ergebnis[row].length) {
+ ergebnis[row][col] = "B";
+ }
+ }
+ return ergebnis;
+ }
+
+ public static void sortByTime(String path) throws FileNotFoundException, IOException{
+ File file = new File(path);
+ ArrayList entries = new ArrayList<>();
+
+ try (BufferedReader br = new BufferedReader(new FileReader(file))) {
+ String line;
+ while ((line = br.readLine()) != null) {
+ String[] parts = line.split(" ", 2);
+ String timeStr = parts[0];
+ String name = parts.length > 1 ? parts[1] : "";
+
+ String[] timeParts = timeStr.split(":");
+ int hour = Integer.parseInt(timeParts[0]);
+ int minute = Integer.parseInt(timeParts[1]);
+ LocalTime time = LocalTime.of(hour, minute);
+
+ entries.add(new Entry(time, name));
+ }
+ }
+
+ entries.sort(Comparator.comparing(e -> e.time));
+
+ try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
+ for (Entry e : entries) {
+ String formattedTime = String.format("%02d:%02d", e.time.getHour(), e.time.getMinute());
+ bw.write(formattedTime + " " + e.name);
+ bw.newLine();
+ }
+ }
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+}
+
+class Entry {
+ LocalTime time;
+ String name;
+
+ Entry(LocalTime time, String name) {
+ this.time = time;
+ this.name = name;
+ }
+}
diff --git a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/LogHighscores.java b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/LogHighscores.java
index 557685f..196e0f9 100644
--- a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/LogHighscores.java
+++ b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/domain/LogHighscores.java
@@ -1,15 +1,15 @@
-package src.main.java.de.hs_mannheim.informatik.mvn.domain;
+package de.hs_mannheim.informatik.mvn.domain;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
+import java.lang.System.Logger;
import java.util.Scanner;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
public class LogHighscores {
- private static final Logger logger = LogManager.getLogger(LogHighscore.class);
+ //private static final Logger logger = LogManager.getLogger(LogHighscores.class);
public static void newRecord(String path, String username, String time) throws FileNotFoundException {
String timePart = time.substring("Zeit: ".length()).trim();
@@ -26,7 +26,7 @@ public class LogHighscores {
sc.nextLine();
}
sc.close();
-
+ /*
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filepath, true))) {
String eintrag = timePart + " " + username;
logger.info("Neuer Eintrag: {}", eintrag);
@@ -36,5 +36,6 @@ public class LogHighscores {
} catch (IOException e) {
logger.error("Fehler beim Schreiben in die Datei: " + filepath, e);
}
+ */
}
}
diff --git a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/GameGUI.java b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/GameGUI.java
index 4b6f384..57c48e2 100644
--- a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/GameGUI.java
+++ b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/GameGUI.java
@@ -1,4 +1,4 @@
-package src.test.java.de.hs_mannheim.informatik.mvn.gui;
+package de.hs_mannheim.informatik.mvn.gui;
import java.awt.BorderLayout;
import java.awt.CardLayout;
@@ -19,8 +19,8 @@ import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
-import src.main.java.de.hs_mannheim.informatik.mvn.domain.HitoriMain;
-import src.main.java.de.hs_mannheim.informatik.mvn.domain.LogHighscores;
+import de.hs_mannheim.informatik.mvn.domain.HitoriMain;
+import de.hs_mannheim.informatik.mvn.domain.LogHighscores;
public class GameGUI extends JFrame implements ActionListener {
diff --git a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/HighscoreGUI.java b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/HighscoreGUI.java
index c3fdd82..0d57ab7 100644
--- a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/HighscoreGUI.java
+++ b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/HighscoreGUI.java
@@ -1,4 +1,4 @@
-package src.test.java.de.hs_mannheim.informatik.mvn.gui;
+package de.hs_mannheim.informatik.mvn.gui;
import java.awt.BorderLayout;
import java.awt.CardLayout;
@@ -16,7 +16,7 @@ import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
-import src.main.java.de.hs_mannheim.informatik.mvn.domain.HitoriMain;
+import de.hs_mannheim.informatik.mvn.domain.HitoriMain;
public class HighscoreGUI extends JFrame implements ActionListener {
diff --git a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/MenuGUI.java b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/MenuGUI.java
index 78f3e4c..fbd94bc 100644
--- a/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/MenuGUI.java
+++ b/PR2Projekt/src/main/java/de/hs_mannheim/informatik/mvn/gui/MenuGUI.java
@@ -1,4 +1,4 @@
-package src.test.java.de.hs_mannheim.informatik.mvn.gui;
+package de.hs_mannheim.informatik.mvn.gui;
import java.awt.BorderLayout;
import java.awt.CardLayout;
@@ -13,7 +13,7 @@ import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
-import src.main.java.de.hs_mannheim.informatik.mvn.domain.HitoriMain;
+import de.hs_mannheim.informatik.mvn.domain.HitoriMain;
public class MenuGUI extends JFrame implements ActionListener {
diff --git a/PR2Projekt/src/test/java/java/de/hs_mannheim/informatik/mvn/test/HitoriTest.java b/PR2Projekt/src/test/java/de/hs_mannheim/informatik/mvn/test/HitoriTest.java
similarity index 91%
rename from PR2Projekt/src/test/java/java/de/hs_mannheim/informatik/mvn/test/HitoriTest.java
rename to PR2Projekt/src/test/java/de/hs_mannheim/informatik/mvn/test/HitoriTest.java
index fd69167..f8099f8 100644
--- a/PR2Projekt/src/test/java/java/de/hs_mannheim/informatik/mvn/test/HitoriTest.java
+++ b/PR2Projekt/src/test/java/de/hs_mannheim/informatik/mvn/test/HitoriTest.java
@@ -1,12 +1,17 @@
-package src.test.java.de.hs_mannheim.informatik.mvn.test;
+package de.hs_mannheim.informatik.mvn.test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.*;
-import org.junit.jupiter.api.Test;
-import src.java.main.de.hs_mannheim.informatik.domain.HitoriMain;
-import src.java.main.de.hs_mannheim.informatik.gui.GameGUI;
import java.io.FileNotFoundException;
import java.util.Arrays;
+import org.junit.jupiter.api.Test;
+
+import de.hs_mannheim.informatik.mvn.domain.HitoriMain;
+import de.hs_mannheim.informatik.mvn.gui.GameGUI;
+
class HitoriTest{
@Test