From 71a92a62ed638687db4c8442f3f8bccc408fc50f Mon Sep 17 00:00:00 2001
From: Nimrod Abramovich <grumpydormin@gmail.com>
Date: Wed, 26 Feb 2020 17:20:25 +0000
Subject: [PATCH] Added file reading to load file button

---
 bin/coursework/Main.class | Bin 11417 -> 12192 bytes
 mathdokuCage.txt          |  15 +++++++++++++++
 src/coursework/Main.java  |  24 ++++++++++++++++++++----
 3 files changed, 35 insertions(+), 4 deletions(-)
 create mode 100644 mathdokuCage.txt

diff --git a/bin/coursework/Main.class b/bin/coursework/Main.class
index bd8e82f3de7abd33e65466a9ef376d862e3b6e08..7830df1d45c823fed8ad31465aa8df7bbcfe4d74 100644
GIT binary patch
delta 4473
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

delta 3621
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
E0I=Wi9smFU

diff --git a/mathdokuCage.txt b/mathdokuCage.txt
new file mode 100644
index 0000000..6db4b91
--- /dev/null
+++ b/mathdokuCage.txt
@@ -0,0 +1,15 @@
+11+ 1,7
+2÷ 2,3
+20x 4,10
+6x 5,6,12,18
+3- 8,9
+3÷ 11,17
+240x 13,14,19,20
+6x 15,16
+6x 21,27
+7+ 22,28,29
+30x 23,24
+6x 25,26
+9+ 30,36
+8+ 31,32,33
+2÷ 34,35
\ No newline at end of file
diff --git a/src/coursework/Main.java b/src/coursework/Main.java
index 06dabe9..656035c 100644
--- a/src/coursework/Main.java
+++ b/src/coursework/Main.java
@@ -1,5 +1,10 @@
 package coursework;
 
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+
 import javafx.application.*;
 import javafx.event.EventHandler;
 import javafx.geometry.Insets;
@@ -132,8 +137,19 @@ public class Main extends Application {
 		
 		topHBox.getChildren().addAll(loadGameFileButton, showMistakesButton, loadGameTextInputButton);
 		
+		final String PATH = "C:\\Java Eclipse Workspace\\Programming II Coursework\\mathdokuCage.txt";
 		loadGameFileButton.setOnAction(e -> {
-			
+			try {
+				BufferedReader file = new BufferedReader(new FileReader(PATH));
+				String line;
+				while ((line = file.readLine()) != null) {
+					System.out.println(line);
+				}
+			} catch (FileNotFoundException e1) {
+				e1.printStackTrace();
+			} catch (IOException e2) {
+				e2.printStackTrace();
+			}
 		});
 		
 		return topHBox;
@@ -193,11 +209,11 @@ public class Main extends Application {
 	
 	private void setupCages() {
 		new Cage(new int[] {0,6},11,"+");
-		new Cage(new int[] {1,2},2,"/");
+		new Cage(new int[] {1,2},2,"�");
 		new Cage(new int[] {3,9},20,"x");
 		new Cage(new int[] {7,8},3,"-");
 		new Cage(new int[] {4,5,11,17},6,"x");
-		new Cage(new int[] {10, 16},3,"/");
+		new Cage(new int[] {10, 16},3,"�");
 		new Cage(new int[] {12,13,18,19},240,"x");
 		new Cage(new int[] {14,15},6,"x");
 		new Cage(new int[] {24,25},6,"x");
@@ -205,7 +221,7 @@ public class Main extends Application {
 		new Cage(new int[] {21,27,28},7,"+");
 		new Cage(new int[] {22,23},30,"x");
 		new Cage(new int[] {30,31,32},8,"+");
-		new Cage(new int[] {33,34},2,"/");
+		new Cage(new int[] {33,34},2,"�");
 		new Cage(new int[] {29,35},9,"+");
 		
 	}
-- 
GitLab