From 8f28761776e0aeec8e368ff9a55d0ce0c31af150 Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Sun, 11 Feb 2024 20:40:57 -0500 Subject: [PATCH] Removed Driver.java due to replacing with JavaFX. --- src/main/java/Assignments/A1/Driver.java | 152 ----------------------- 1 file changed, 152 deletions(-) delete mode 100644 src/main/java/Assignments/A1/Driver.java diff --git a/src/main/java/Assignments/A1/Driver.java b/src/main/java/Assignments/A1/Driver.java deleted file mode 100644 index e72f1e2..0000000 --- a/src/main/java/Assignments/A1/Driver.java +++ /dev/null @@ -1,152 +0,0 @@ -package Assignments.A1; - -// Potentially will be changed to an UI Implementation with JavaFX if time permits. - -import Assignments.A1.models.Board; -import Assignments.A1.models.BoardGenerator; -import Assignments.A1.models.BoardNode; -import Assignments.A1.solving_algorithms.DFS; -import Assignments.A1.solving_algorithms.comparators.AStar; - -import java.awt.*; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.URI; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; - -/** - * Board will be used to save locations in a 2D array. - *

- * The design of the board locations will be numbered like so: - * 0 1 2 - * 3 4 5 - * 6 7 8 - *

- * 1 2 3 - * 8 0 4 - * 7 6 5 - *

- * The values will be specified with an int. Must be between (inclusive) 1-8. - * The empty spot will be represented with null. - */ -public class Driver { - - public static void main(String[] args) { - ArrayList timer = new ArrayList<>(); - int successes = 0; - int runs = 1; - BoardNode node = null; - for (int run = 0; run < runs; run++) { - Board board = BoardGenerator.generateBoard(); - DFS solver = new DFS(); -// BFS solver = new BFS(); -// UCS solver = new UCS(); -// AStar solver = new AStar(); - Date start = new Date(); - BoardNode result = solver.traverse(board); - Date end = new Date(); - if (result.board != null) { - long runtime = end.getTime() - start.getTime(); - - timer.add(runtime); - successes++; - node = result; - } - } - long total = 0; - for (int i = 0; i < timer.size(); i++) { - total += timer.get(i); - System.out.println("Run " + (i + 1) + ": " + timer.get(i)); - } - long average = total / (long) timer.size(); - System.out.println("Average Runtime: " + average); - System.out.println("Number of successful solves: " + successes + "/" + runs); - - StringBuffer result = printTotalHierarchy(node); - writeToFile("AStar", result); - } - - -// public static void main(String[] args) { -// int[] values = {1, 2, 3, 8, 0, 5, 4, 7, 6}; -// BoardNode node = new BoardNode(new Board(values), null); -// System.out.println(node.heuristic); -// } - - - private static StringBuffer printTotalHierarchy(BoardNode root, int depth, boolean hasMoreChildren) { - StringBuffer output = new StringBuffer(); - for (int i = 0; i < depth - 1; i++) { - output.append("│ "); - } - if (hasMoreChildren) { - output.append("├── ").append(root.board.toString()).append(System.lineSeparator()); - } else { - output.append("└── ").append(root.board.toString()).append(System.lineSeparator()); - } - - for (int i = 0; i < root.children.size(); i++) { - if (i == root.children.size() - 1) { - output.append(printTotalHierarchy(root.children.get(i), depth+1, false)); - } else { - output.append(printTotalHierarchy(root.children.get(i), depth+1, true)); - } - } - return output; - } - - public static StringBuffer printTotalHierarchy(BoardNode solved) { - BoardNode root = null; - while (solved.parent != null) { - solved = solved.parent; - } - root = solved; - - StringBuffer output = new StringBuffer(); - output.append(root.board.toString()).append(System.lineSeparator()); - if (root.children.size() == 1) { - output.append(printTotalHierarchy(root.children.get(0), 1, false)); - } else { - for (int i = 0; i < root.children.size(); i++) { - if (i == root.children.size() - 1) { - output.append(printTotalHierarchy(root.children.get(i), 1, false)); - } else { - output.append(printTotalHierarchy(root.children.get(i), 1, true)); - } - } - } - return output; - } - - private static void writeToFile(String name, StringBuffer values) { - URL resourcePath = Driver.class.getResource("/A1/results/" + name + ".txt"); - URI resourceURI = URI.create(resourcePath.toString()); - File resource = new File(resourceURI.getPath()); - - try (FileWriter out = new FileWriter(resource)) { - out.write(values.toString()); - System.out.println("Data written to file: " + name + ".txt"); - } catch (IOException e) { - System.err.println("Error writing to file: " + e.getMessage()); - } - openDirectoryFile(resource); - } - - private static void openDirectoryFile(File open) { - if (!Desktop.isDesktopSupported() || !Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) { - System.out.println("Desktop is not supported"); - return; - } - Desktop desktop = Desktop.getDesktop(); - try { - desktop.open(open); - } catch (IOException e) { - e.printStackTrace(); - } - - } - -}