diff --git a/.idea/KolesarjenjePoManhattnu.iml b/.idea/KolesarjenjePoManhattnu.iml
index aa8b567..50b978c 100644
--- a/.idea/KolesarjenjePoManhattnu.iml
+++ b/.idea/KolesarjenjePoManhattnu.iml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 53138f2..8902a41 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/program.py b/program.py
index 9041424..c75758c 100644
--- a/program.py
+++ b/program.py
@@ -39,8 +39,6 @@ def povezave_tocke(x, y, povezave):
def generiraj_tuples_povezava(povezava):
pov = []
- z0 = None
- z1 = None
x0, y0, x1, y1 = povezava
@@ -73,6 +71,87 @@ def secisce(povezava1, povezava2):
return None
+def urejeni_povezavi(povezava1, povezava2):
+ x0_1, y0_1, x1_1, y1_1 = urejena(povezava1)
+ x0_2, y0_2, x1_2, y1_2 = urejena(povezava2)
+
+ if x0_1 < x0_2:
+ return povezava1, povezava2
+ elif x0_2 < x0_1:
+ return povezava2, povezava1
+
+ if y0_1 < y0_2:
+ return povezava1, povezava2
+ elif y0_2 < y0_1:
+ return povezava2, povezava1
+
+ if x1_1 < x1_2:
+ return povezava1, povezava2
+ elif x1_2 < x1_1:
+ return povezava2, povezava1
+
+ if y1_1 < y1_2:
+ return povezava1, povezava2
+ elif y1_2 < y1_1:
+ return povezava2, povezava1
+
+ # sigurno ne bosta dve identični povezavi prileteli sem? :D
+ if x0_1 == x0_2 and y0_1 == y0_2: return None
+
+def krizisca(povezave):
+ krizisce = {}
+
+ for povezava1 in povezave:
+ povezava1 = urejena(povezava1)
+
+ for povezava2 in povezave:
+ povezava2 = urejena(povezava2)
+
+ # nočemo primerjati križišče s samim sabo
+ if povezava1 == povezava2:
+ continue
+
+ # sortiranje povezav
+ pov1, pov2 = urejeni_povezavi(povezava1, povezava2)
+
+ # preverimo če trenutni povezavi že obstajata v slovarju
+ if (pov1, pov2) in krizisce:
+ continue
+
+ # preverimo če najdemo sečišče
+ sec = secisce(pov1, pov2)
+
+ # če ga najdemo dodamo vnos v slovar
+ if sec is not None:
+ # drugi imeni spr samo zaradi manjša zmede, ker se lahko zamenjata
+ krizisce[(pov1, pov2)] = sec
+
+ return krizisce
+
+def mozna_pot(pot, mreza):
+ povezave_obstajajo = True
+
+ for povezava in pot:
+ # dobimo urejeno povezavo
+ pov = urejena(povezava)
+
+
+ obstaja_pot = False
+
+ # preverimo če obstaja povezava v mreži
+ for x,y in mreza.keys():
+ if pov == x or pov == y:
+ obstaja_pot = True
+ break
+
+ # če ne obstaja pot takoj zaključi izvajanje
+ if not obstaja_pot:
+ return False
+
+ # to be continued, preveriti moramo še če se vse povezave stikajo skupaj
+
+
+
def main():
povezave = [
(11, 10, 13, 10),
@@ -85,17 +164,53 @@ def main():
(7, 14, 3, 14),
(9, 17, 9, 14),
]
- # 6
- # print(pravilna((18, 5, 13, 5)))
- # print(pravilna((5, 18, 5, 13)))
- # print(pravilna((10, 18, 12, 4)))
- # print(pravilna((10, 18, 10, 18)))
- # na_povezavi(10, 19, (10, 22, 10, 20))
+ pov = [
+ (11, 10, 13, 10),
- # print(povezave_tocke(3, 15, povezave))
+ (2, 12, 8, 12),
+ (6, 11, 6, 13),
- print(secisce((10, 20, 10, 25), (8, 22, 18, 22)))
- print(secisce((8, 20, 18, 20), (1, 25, 0, 25)))
+ (0, 16, 10, 16),
+ (3, 18, 3, 13),
+ (7, 14, 3, 14),
+ (9, 17, 9, 14),
+ (13, 15, 8, 15),
+ (12, 14, 12, 17),
+ (13, 16, 21, 16),
+ (14, 18, 14, 15),
+ (13, 15, 13, 16),
+ (16, 16, 16, 10),
+ (16, 10, 21, 10),
+ (14, 18, 10, 18),
+ (11, 13, 11, 20),
+ (15, 13, 22, 13),
+ (17, 15, 17, 17),
+ (18, 17, 18, 14),
+ (19, 19, 22, 19),
+ (20, 15, 20, 17),
+ (21, 10, 21, 19),
+ ]
+
+ mreza = krizisca(pov)
+
+ print("Mreža:\n")
+ for i, j in mreza.items():
+ print(f"{i}: {j}")
+
+ print("\n")
+
+ klic = mozna_pot(
+ [(14, 18, 10, 18),
+ (14, 18, 14, 15),
+ (13, 16, 21, 16),
+ (13, 16, 13, 15),
+ (8, 15, 13, 15),
+ (9, 14, 9, 17),
+ (10, 16, 0, 16),
+ (9, 14, 9, 17),
+ (8, 15, 13, 15),
+ (13, 16, 13, 15)], mreza)
+ #print(klic)
main()
\ No newline at end of file