From 484f758d72f45b6ea84da479dae4b7a19fba96b7 Mon Sep 17 00:00:00 2001
From: Jacob Theisen <jacobth@stud.ntnu.no>
Date: Sat, 20 Nov 2021 15:02:42 +0100
Subject: [PATCH] prep

---
 ov8/test_env/HM_compressed_text | Bin 10019 -> 15686 bytes
 ov9/README.md                   |   1 +
 ov9/program1.py                 |  53 ++++++++++++++++++++++++++++++--
 3 files changed, 51 insertions(+), 3 deletions(-)
 create mode 100644 ov9/README.md

diff --git a/ov8/test_env/HM_compressed_text b/ov8/test_env/HM_compressed_text
index 7da038842dbd4f35d086b57517e82a179150618e..55f35ec554422ef52d920b6941fd3b8028838b90 100644
GIT binary patch
literal 15686
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

literal 10019
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
AssI20

diff --git a/ov9/README.md b/ov9/README.md
new file mode 100644
index 0000000..68b6e7e
--- /dev/null
+++ b/ov9/README.md
@@ -0,0 +1 @@
+#python3 program1.py -a/-n 
\ No newline at end of file
diff --git a/ov9/program1.py b/ov9/program1.py
index 102505c..be39017 100644
--- a/ov9/program1.py
+++ b/ov9/program1.py
@@ -1,4 +1,5 @@
-
+from math import inf
+import sys
 
 class int_points (object):
     def __init__(self, id, type, name):
@@ -20,6 +21,14 @@ class edges (object):
         self.lenght = lenght
         self.speed = speed 
 
+class results(object):
+    def __init__(self, node, dist, visited):
+        self.node = node
+        self.dist = dist
+        self.visited = visited
+
+
+#prep nodes
 with open('./test_files/noder.txt','r') as file:
     node_file = file.read()
 
@@ -32,7 +41,7 @@ for i in range(0, len(node_file), 3):
     #nodenr breddegrad lengdegrad
     node_arr.append(nodes(node_file[i], node_file[i+1], node_file[i+2]))
 
-
+#prep edges
 with open('./test_files/kanter.txt','r') as file:
     edge_file = file.read()
 
@@ -45,7 +54,7 @@ for i in range(0, len(edge_file), 5):
     #franode tilnode kjøretid lengde fartsgrense
     edge_arr.append(edges(edge_file[i], edge_file[i+1], edge_file[i+2], edge_file[i+3], edge_file[i+4]))
 
-
+#prep intresting 
 with open('./test_files/interessepkt.txt','r') as file:
     intresting_file = file.read()
 
@@ -59,5 +68,43 @@ for i in range(len(intresting_file)):
     tmp_values = intresting_file[i].split()
     intresting_arr.append(int_points(tmp_values[0], tmp_values[1], ' '.join(tmp_values[2:])))
 
+res_arr = []
+def init_table():
+    for i in range(len(node_file)):
+        res_arr.append(results(i, inf, None))
+
+
+
+
+queue = []
+def dijkstras(fra, til):
+    if fra == til: 
+        print('were here')
+    for i in edge_arr:
+         if fra == i.fra:
+            a = [a for a in queue if a.visited == None and a.node == i.til]
+            if a:
+                queue.append(i.til)
+            
+             
+
+
+
+
 
+def init_things():
+    if len(sys.argv) > 1:
+        if sys.argv[1] == '-d':
+            #node_id
+            fra = 0
+            til = 1
+            init_table()
+            dijkstras(fra, til)
+        elif sys.argv[1] == '-a':
+            print('A* not yet implemented')
+        else:
+            print('Unknown argument')
+    else:
+        print('Missing argument')
 
+init_things()
\ No newline at end of file
-- 
GitLab