diff options
Diffstat (limited to 'Info')
34 files changed, 1156 insertions, 0 deletions
diff --git a/Info/11/NTG/1/Breitensuche/.gitignore b/Info/11/NTG/1/Breitensuche/.gitignore new file mode 100644 index 00000000..e34b598e --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/.gitignore @@ -0,0 +1 @@ +plots/ diff --git a/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_01.png b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_01.png new file mode 120000 index 00000000..e8c0f547 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_01.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/Manfreds_Labyrinth_01.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png new file mode 120000 index 00000000..4b035935 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png new file mode 120000 index 00000000..5a582695 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png new file mode 120000 index 00000000..25e5ef52 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png new file mode 120000 index 00000000..39bdfae2 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/graph_impl_alpha.png b/Info/11/NTG/1/Breitensuche/img/graph_impl_alpha.png new file mode 120000 index 00000000..da0cceb0 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/graph_impl_alpha.png @@ -0,0 +1 @@ +../../Graphen_Implementierung/img/graph_impl_alpha.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/laboscout.png b/Info/11/NTG/1/Breitensuche/img/laboscout.png new file mode 120000 index 00000000..f7f27490 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/laboscout.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/laboscout.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/manfred_alpha_bg.png b/Info/11/NTG/1/Breitensuche/img/manfred_alpha_bg.png new file mode 120000 index 00000000..2bbeb5cc --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/manfred_alpha_bg.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/manfred_alpha_bg.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/manfred_cut_out.png b/Info/11/NTG/1/Breitensuche/img/manfred_cut_out.png new file mode 120000 index 00000000..4a370da5 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/manfred_cut_out.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/manfred_cut_out.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/manfred_cut_out_sad.png b/Info/11/NTG/1/Breitensuche/img/manfred_cut_out_sad.png new file mode 120000 index 00000000..50df8c04 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/manfred_cut_out_sad.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/manfred_cut_out_sad.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/manfred_cut_out_sad_under_water.png b/Info/11/NTG/1/Breitensuche/img/manfred_cut_out_sad_under_water.png new file mode 120000 index 00000000..a7ceae23 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/manfred_cut_out_sad_under_water.png @@ -0,0 +1 @@ +../../ManfredsLabyrinth/manfred_cut_out_sad_under_water.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/nuernberg_metro_u3.png b/Info/11/NTG/1/Breitensuche/img/nuernberg_metro_u3.png new file mode 120000 index 00000000..d34da79f --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/nuernberg_metro_u3.png @@ -0,0 +1 @@ +../../Graphen_Implementierung/img/nuernberg_metro_u3.png
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/img/pseudocode.png b/Info/11/NTG/1/Breitensuche/img/pseudocode.png Binary files differnew file mode 100644 index 00000000..4afb5658 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/img/pseudocode.png diff --git a/Info/11/NTG/1/Breitensuche/manfreds_labyrinth_graph.tikz b/Info/11/NTG/1/Breitensuche/manfreds_labyrinth_graph.tikz new file mode 120000 index 00000000..7610475c --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/manfreds_labyrinth_graph.tikz @@ -0,0 +1 @@ +../../../../11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tikz
\ No newline at end of file diff --git a/Info/11/NTG/1/Breitensuche/slides.md b/Info/11/NTG/1/Breitensuche/slides.md new file mode 100644 index 00000000..b12ae492 --- /dev/null +++ b/Info/11/NTG/1/Breitensuche/slides.md @@ -0,0 +1,427 @@ +--- +header-includes: | + \usepackage{ulem} + \makeatletter + \beamer@ignorenonframefalse + \makeatother + \usetikzlibrary{graphs} + \usetikzlibrary{overlay-beamer-styles} +--- + +## {.standout} +Herzlich Willkommen! + +Du kannst dich schon anmelden + +\texttt{vorname.nachname} + +und den Bildschirm ausschalten. + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Graph Implementierung \hfill{} 1/5 + +::: {.columns align=center} +:::: {.column width=50%} +{.center height=4cm} +:::: + +:::: {.column width=50%} +**Diskutiert die Aussage:** \textit{Alle in der Abbildung enthaltenen Informationen können in einer Adjazenzmatrix gespeichert werden!} +:::: +::: + +\pause + +**Nein!** Um zusätzliche Informationen über die Knoten zu speichern, brauchen wir ein Feld von Knoten Objekten. + +::: {.columns} +:::: {.column width=50%} +\begin{center} +\begin{tikzpicture} +\node[thick, draw] (g) {\large Graph}; +\node[thick, draw, right=3cm of g] (k) {\large Knoten}; +\draw (g) edge node[above] {1~~~enthält >~~~n} (k); +\end{tikzpicture} +\end{center} +:::: + +:::: {.column width=50%} +\begin{center} +\begin{tikzpicture} +\begin{class}[]{Graph}{0, 0} +\attribute{Knoten[] knotenfeld} +\attribute{int[][] adjazenzmatrix} +\operation{...} +\end{class} +\end{tikzpicture} +\end{center} +:::: +::: + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Graph Implementierung \hfill{} 2/5 + +### Diskutiert die Aussage: + +\vspace{0.1cm} + +> Da Arrays nicht vergrößert werden können, legen wir einfach sehr große Arrays an und hoffen, dass es reicht. +> Ansonsten müssen wir nichts beachten. + +\pause + +\vspace{0.1cm} +**Fast!** Wir müssen im Attribut `anzKnoten` speichern, wie viele Knoten aktuell enthalten sind, um nur existierende Knoten bzw. Kanten zu betrachten. + +::: {.columns} +:::: {.column width=50%} +\begin{center} +\begin{tikzpicture} +\begin{class}[]{Graph}{0, 0} +\attribute{Knoten[] knotenfeld} +\attribute{int[][] adjazenzmatrix} +\attribute{int anzKnoten} +\operation{Graph(int maxAnzKnoten)} +\operation{...} +\end{class} +\end{tikzpicture} +\end{center} +:::: + +:::: {.column width=50%} + +:::: +::: + + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Adjazenzmatrix \hfill{} 3/5 + +### Diskutiert die Aussage: + +\vspace{0.1cm} +> Die **n-te** Reihe einer Adjazenzmatrix enthält, alle ausgehenden Kanten des **n-ten** Knoten im Knotenfeld. +> Sie können mit folgendem Code ausgegeben werden: + +```java +int i = indexDesNtenKnoten; +for(int j = 0; j < anzKnoten; j++) { + println(adjazenzmatrix[j][i]); +} +``` + +\pause + +**Achtung**: Der Index eines Arrays beginnt mit **0**. +Der Code \boldred{passt nicht}! Zwei-dimensionale Arrays werden als \texttt{array[\textcolor{magenta}{zeile}][\textcolor{teal}{spalte}]} indiziert. + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Graphen \hfill{} 4/5 + +### Diskutiert die Aussage: + +\vspace{0.1cm} +> Jeder ungewichtete Graph ist auch ein gewichteter Graph. +> Außerdem ist jeder ungerichtete Grapch auch ein gerichteter Graph. + +\pause + +**Stimmt**. + +::: {.columns} +:::: {.column width=50%} +```{.graphviz dpi=150 height=2.8cm} +graph { + bgcolor=transparent + layout=circo + node [shape=circle] + nodesep=0.5 + v1 -- v2 + v2 -- v3 + v2 -- v4 + v3 -- v4 +} +``` +:::: + +:::: {.column width=50%} +```{.graphviz dpi=150 height=2.8cm} +digraph { + bgcolor=transparent + layout=circo + node [shape=circle] + nodesep=0.5 + v1 -> v2 [label=1] + v2 -> v3 [label=1] + v2 -> v4 [label=1] + v3 -> v4 [label=1] + v2 -> v1 [label=1] + v3 -> v2 [label=1] + v4 -> v2 [label=1] + v4 -> v3 [label=1] +} +``` +:::: +::: + +## \faIcon{hands-helping} / \faIcon{chalkboard} Arbeitsauftrag: Java Konvention \hfill{} 5/5 + +### Diskutiert die Aussage: + +\vspace{0.1cm} +> In Java kann man meist ganz leicht an der Schreibweise von Wörtern erkennen um was es sich handelt. +> Per Konvention werden nur Klassen groß geschrieben. +> Alles was klein geschrieben wird ist demnach ein Name einer Methode, Variable oder eines Attributs. + +```java +// Klassenname +// | +- Variablenname +// v v +Knoten neuerKnoten = new Knoten("neue Bezeichnung"); +``` + +\pause +\vspace{0.1cm} +**Fast!** \underline{Konstruktoren} werden auch groß geschrieben, da sie dem \underline{Klassennamen} entsprechen müssen. + +## Was ist denn mit Manfred los? + +::: {.columns align=center} +:::: {.column width=50%} +`\only<1>{`{=latex} + +`}\only<2>{`{=latex} + +`}\only<3->{`{=latex} + +`}`{=latex} +:::: + +:::: {.column width=50%} +`\only<3>{`{=latex} +Manfred hat einen Wasserrohrbruch in seinem Wohnzimmer! +`}`{=latex} +:::: +::: + +## \faIcon{pencil-alt} Welche Räume werden als letztes überflutet? + +::: {.columns} +:::: {.column width=30%} + +:::: + +:::: {.column width=70%} +`\begin{center}`{=latex} + +`\only<1>{`{=latex} +{height=70%} +`}\only<2>{`{=latex} +{height=70%} +`}\only<3>{`{=latex} +{height=70%} +`}\only<4->{`{=latex} +{height=70%} +`}`{=latex} + +`\only<1-4>{`{=latex} + +\vspace{0.2cm} +> Welche Zimmer bleiben am längsten trocken, wenn wir annehmen, dass sich das Wasser in Wellen gleichmäßig von Raum zu Raum ausbreitet? + +`}`{=latex} + +`\only<5>{`{=latex} +3: Speisekammer, +5: Hobbyraum, +13: Heimkino, +14: Gästetoilette, +16: Schlafzimmer +`}`{=latex} + +`\end{center}`{=latex} +:::: +::: + +## \faIcon{pencil-alt} Arbeitsauftrag: Modellierung als Graph \hfill 7 min + +Bearbeite die Teilaufgaben **a)** und **b)** auf deinem Arbeitsblatt. + +## Modellierung als Graph + +::: {.columns align=center} +:::: {.column width=60%} +\vspace{-0.5cm} +\scalebox{1.2}{ +\tikzstyle{first} = [] +\tikzstyle{second} = [] +\tikzstyle{third} = [] +\tikzstyle{fourth} = [] +\only<1-> {% +\tikzstyle{first} = [fill=blue!40]% +}\only<2->{% +\tikzstyle{second} = [fill=yellow!90]% +}\only<3->{% +\tikzstyle{third} = [fill=red!50]% +}\only<4->{% +\tikzstyle{fourth} = [fill=teal!50]% +}% +\input{manfreds_labyrinth_graph.tikz} +} +:::: + +:::: {.column width=40%} +### Breitensuche: +Beginnend bei einem \boldred{Startknoten} werden alle anderen Knoten \underline{ebenenweise} besucht. +:::: +::: + +## \faIcon{pencil-alt} Arbeitsauftrag + +\begin{tikzpicture} +\node[rotate=5, draw] {\includegraphics[]{img/Copyrighted/ECK_merk1.png}}; +\end{tikzpicture} + +## \faIcon{pencil-alt} Arbeitsauftrag: Übung Breitensuche + +Führe die Breitensuche auf deinem Arbeitsblatt durch und nimm Stellung zu der Aussage: + +\vspace{0.5cm} +> Unabhängig vom Graphen werde bei der Breitensuche alle Knoten besucht. + +## \faIcon{pencil-alt} Arbeitsauftrag + + + +## \faIcon{comment} Arbeitsauftrag: Breitensuche für den Computer + +Der Computer hat mit unserem menschlichen Vorgehen noch Probleme, denn er sieht nicht wie wir den ganzen Graphen auf einmal: + +1. Wie kann sich der Computer merken welche Knoten markiert sind? +2. Wie kann der Computer sicherstellen, dass die Knoten in der richtigen Reihenfolge markiert werden? + +### Lösungen \faIcon[regular]{lightbulb} + +1. Ein neues Array um die Markierungen zu speichern oder ein neues Attribut `besucht` der Klasse `Knoten` +2. Wir müssen eine \boldred{Warteschlange} der zu bearbeitenden Knoten verwalten + +## \faIcon{pencil-alt} Arbeitsauftrag: Breitensuche wie der Computer + +Führe die Breitensuche wie der Computer an Manfreds Labyrinth durch. + +::: {.columns align=center} +:::: {.column width=50%} +\begin{tikzpicture}[ + node distance = 3 cm, + graph vertex/.style={ + circle, + draw, + minimum size=5mm, + }, + marked/.style={fill=blue!40}, + marked on/.style={alt=####1{marked}{}}, + active/.style={fill=red!40}, + active on/.style={alt=####1{active}{}}, +] +\node[graph vertex, marked on=<7->, active on=<12>] (v1) at (.50, 5.00) {1}; +\node[graph vertex, marked on=<5->, active on=<6-7>] (v2) at (2.50, 5.00) {2}; +\node[graph vertex, marked on=<14->, active on=<23>] (v3) at (5.00, 5.00) {3}; +\node[graph vertex, marked on=<7->, active on=<13-14>] (v4) at (4.00, 4.15) {4}; +\node[graph vertex, marked on=<19->, active on=<25>] (v5) at (1.00, 3.50) {5}; +\node[graph vertex, marked on=<9->, active on=<15>] (v6) at (5.50, 3.50) {6}; +\node[graph vertex, marked on=<2->, active on=<4-5>] (v7) at (2.80, 3.00) {7}; +\node[graph vertex, marked on=<11->, active on=<18-19>] (v8) at (1.40, 2.25) {8}; +\node[graph vertex, marked on=<5->, active on=<8-9>] (v9) at (4.00, 2.55) {9}; +\node[graph vertex, marked on=<9->, active on=<16-17>] (v10) at (5.50, 2.00) {10}; +\node[graph vertex, marked on=<5->, active on=<10-11>] (v11) at (2.90, 1.50) {11}; +\node[graph vertex, marked on=<11->, active on=<20>] (v12) at (4.20, 1.25) {12}; +\node[graph vertex, marked on=<17->, active on=<24>] (v13) at (5.50, 1.00) {13}; +\node[graph vertex, marked on=<19->, active on=<26>] (v14) at (1.00, .80) {14}; +\node[graph vertex, marked on=<11->, active on=<21-22>] (v15) at (2.80, .10) {15}; +\node[graph vertex, marked on=<22->, active on=<27>] (v16) at (4.50, .07) {16}; + +\graph { + (v1) -- (v2), + (v2) -- (v4), + (v3) -- (v6), + (v3) -- (v4), + (v4) -- (v9), + (v2) -- (v7), + (v7) -- (v9), + (v9) -- (v6), + (v7) -- (v11), + (v9) -- (v11), + (v9) -- (v10), + (v11) -- (v12), + (v12) -- (v13), + (v13) -- (v16), + (v16) -- (v15), + (v8) -- (v11), + (v5) -- (v8), + (v8) -- (v14), + (v14) --[bend left] (v5), + (v4) -- (v6), + (v11) -- (v15), + (v10) -- (v13), + (v6) -- (v10) +}; + +\only<1,2>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange:}; +}\only<3>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 7}; +}\only<4>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{7}}; +}\only<5>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 2,9,11}; +}\only<6>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{2},9,11}; +}\only<7>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 9,11,1,4}; +}\only<8>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{9},11,1,4}; +}\only<9>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 11,1,4,6,10}; +}\only<10>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{11},1,4,6,10}; +}\only<11>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 1,4,6,10,8,12,15}; +}\only<12>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{1},4,6,10,8,12,15}; +}\only<13>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{4},6,10,8,12,15}; +}\only<14>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 6,10,8,12,15,3}; +}\only<15>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{6},10,8,12,15,3}; +}\only<16>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{10},8,12,15,3}; +}\only<17>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 8,12,15,3,13}; +}\only<18>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{8},12,15,3,13}; +}\only<19>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 12,15,3,13,5,14}; +}\only<20>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{12},15,3,13,5,14}; +}\only<21>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{15},3,13,5,14}; +}\only<22>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: 3,13,5,14,16}; +}\only<23>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{3},13,5,14,16}; +}\only<24>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{13},5,14,16}; +}\only<25>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{5},14,16}; +}\only<26>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{14},16}; +}\only<27>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: \sout{16}}; +}\only<28>{ +\node[draw, minimum width=5.5cm, align=left] at (2.2, -1) {Warteschlange: }; +} +\end{tikzpicture} +:::: + +:::: {.column width=50%} + +:::: +::: + diff --git a/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_kueche1.png b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_kueche1.png Binary files differnew file mode 100644 index 00000000..2a1a6448 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_kueche1.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_pool1.png b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_pool1.png Binary files differnew file mode 100644 index 00000000..57255572 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_pool1.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png Binary files differnew file mode 100644 index 00000000..830e9fcf --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer1.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png Binary files differnew file mode 100644 index 00000000..ce07ce4d --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer2.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png Binary files differnew file mode 100644 index 00000000..06a5c21f --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer3.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png Binary files differnew file mode 100644 index 00000000..49fcee7d --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/Manfreds_Labyrinth_wasserrohtbruch_wohnzimmer4.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfred_cut_out_sad.png b/Info/11/NTG/1/ManfredsLabyrinth/manfred_cut_out_sad.png Binary files differnew file mode 100644 index 00000000..53733edd --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfred_cut_out_sad.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfred_cut_out_sad_under_water.png b/Info/11/NTG/1/ManfredsLabyrinth/manfred_cut_out_sad_under_water.png Binary files differnew file mode 100644 index 00000000..2a6c0da8 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfred_cut_out_sad_under_water.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth.dot b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth.dot new file mode 100644 index 00000000..f51fe048 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth.dot @@ -0,0 +1,25 @@ +graph { + layout=neato + 1 -- 2 + 2 -- 4 + 2 -- 7 + 3 -- 4 + 3 -- 6 + 4 -- 6 + 4 -- 9 + 5 -- 8 + 6 -- 9 + 6 -- 10 + 7 -- 9 + 7 -- 11 + 8 -- 11 + 8 -- 14 + 9 -- 10 + 9 -- 11 + 10 -- 13 + 11 -- 12 + 11 -- 15 + 12 -- 13 + 13 -- 16 + 15 -- 16 +} diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.drawio b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.drawio new file mode 100644 index 00000000..26c73748 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.drawio @@ -0,0 +1,200 @@ +<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0" version="24.7.12"> + <diagram name="Page-1" id="42789a77-a242-8287-6e28-9cd8cfd52e62"> + <mxGraphModel dx="1434" dy="766" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="IeRqU4G2yZm01STRAlAV-1" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="290" y="210" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-2" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="490" y="210" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-3" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="710" y="210" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-4" value="5" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="380" y="320" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-5" value="7" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="530" y="360" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-6" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="640" y="280" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-7" value="6" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="770" y="330" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-8" value="8" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="370" y="425" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-9" value="11" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="540" y="500" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-10" value="9" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="660" y="400" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-11" value="10" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="780" y="460" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-12" value="12" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="660" y="550" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-13" value="14" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="380" y="610" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-14" value="15" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="530" y="680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-15" value="16" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="680" y="680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-16" value="13" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=19;fontStyle=1;strokeWidth=2;" vertex="1" parent="1"> + <mxGeometry x="780" y="590" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-17" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-1" target="IeRqU4G2yZm01STRAlAV-2"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="560" y="420" as="sourcePoint" /> + <mxPoint x="610" y="370" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-18" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="IeRqU4G2yZm01STRAlAV-6"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="530" y="229.5" as="sourcePoint" /> + <mxPoint x="690" y="229.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-20" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-6" target="IeRqU4G2yZm01STRAlAV-3"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="680" y="300" as="sourcePoint" /> + <mxPoint x="730" y="250" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-22" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-7" target="IeRqU4G2yZm01STRAlAV-3"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="310" as="sourcePoint" /> + <mxPoint x="726" y="250" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-23" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-5" target="IeRqU4G2yZm01STRAlAV-2"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="560" y="420" as="sourcePoint" /> + <mxPoint x="610" y="370" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-24" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-10" target="IeRqU4G2yZm01STRAlAV-6"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="560" y="420" as="sourcePoint" /> + <mxPoint x="610" y="370" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-25" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-5" target="IeRqU4G2yZm01STRAlAV-10"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="560" y="420" as="sourcePoint" /> + <mxPoint x="610" y="370" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-26" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-10" target="IeRqU4G2yZm01STRAlAV-7"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="560" y="420" as="sourcePoint" /> + <mxPoint x="610" y="370" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-27" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-11" target="IeRqU4G2yZm01STRAlAV-7"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-28" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-11" target="IeRqU4G2yZm01STRAlAV-10"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-29" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-16" target="IeRqU4G2yZm01STRAlAV-11"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-30" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-12" target="IeRqU4G2yZm01STRAlAV-16"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-31" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-9" target="IeRqU4G2yZm01STRAlAV-5"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-32" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-9" target="IeRqU4G2yZm01STRAlAV-10"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-33" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-8" target="IeRqU4G2yZm01STRAlAV-9"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-34" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-8" target="IeRqU4G2yZm01STRAlAV-4"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-35" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-8" target="IeRqU4G2yZm01STRAlAV-13"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-36" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-13" target="IeRqU4G2yZm01STRAlAV-4"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="270" y="570" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + <Array as="points"> + <mxPoint x="320" y="570" /> + <mxPoint x="320" y="400" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-37" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-9" target="IeRqU4G2yZm01STRAlAV-14"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-38" value="" style="endArrow=none;html=1;rounded=0;entryX=-0.05;entryY=0.275;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1.05;exitY=0.725;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-9" target="IeRqU4G2yZm01STRAlAV-12"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-39" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-14" target="IeRqU4G2yZm01STRAlAV-15"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-40" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-15" target="IeRqU4G2yZm01STRAlAV-16"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="720" y="680" as="sourcePoint" /> + <mxPoint x="770" y="630" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="IeRqU4G2yZm01STRAlAV-41" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="IeRqU4G2yZm01STRAlAV-7" target="IeRqU4G2yZm01STRAlAV-6"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="450" as="sourcePoint" /> + <mxPoint x="500" y="400" as="targetPoint" /> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.drawio.png b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.drawio.png Binary files differnew file mode 100644 index 00000000..24768d3d --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.drawio.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.pdf b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.pdf Binary files differnew file mode 100644 index 00000000..7941f223 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.pdf diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.png b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.png Binary files differnew file mode 100644 index 00000000..dddf37b7 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.png diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tex b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tex new file mode 100644 index 00000000..0af440d3 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tex @@ -0,0 +1,10 @@ +\documentclass{standalone} +\usepackage{tikz} +\usetikzlibrary{graphs} +\begin{document} +\tikzstyle{first} = [] +\tikzstyle{second} = [] +\tikzstyle{third} = [] +\tikzstyle{fourth} = [] +\input{manfreds_labyrinth_graph.tikz} +\end{document} diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tikz b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tikz new file mode 100644 index 00000000..40e09780 --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph.tikz @@ -0,0 +1,44 @@ +\begin{tikzpicture}[graph vertex/.style={draw, circle, minimum size=0.5cm}] +\node[graph vertex, third] (v1) at (.50, 5.00) {1}; +\node[graph vertex, second] (v2) at (2.50, 5.00) {2}; +\node[graph vertex, fourth] (v3) at (5.00, 5.00) {3}; +\node[graph vertex, third] (v4) at (4.00, 4.15) {4}; +\node[graph vertex, fourth] (v5) at (1.00, 3.50) {5}; +\node[graph vertex, third] (v6) at (5.50, 3.50) {6}; +\node[graph vertex, first] (v7) at (2.80, 3.00) {7}; +\node[graph vertex, third] (v8) at (1.40, 2.25) {8}; +\node[graph vertex, second] (v9) at (4.00, 2.55) {9}; +\node[graph vertex, third] (v10) at (5.50, 2.00) {10}; +\node[graph vertex, second] (v11) at (2.90, 1.50) {11}; +\node[graph vertex, third] (v12) at (4.20, 1.25) {12}; +\node[graph vertex, fourth] (v13) at (5.50, 1.00) {13}; +\node[graph vertex, fourth] (v14) at (1.00, .80) {14}; +\node[graph vertex, third] (v15) at (2.80, .10) {15}; +\node[graph vertex, fourth] (v16) at (4.50, .07) {16}; + +\graph { + (v1) -- (v2), + (v2) -- (v4), + (v3) -- (v6), + (v3) -- (v4), + (v4) -- (v9), + (v2) -- (v7), + (v7) -- (v9), + (v9) -- (v6), + (v7) -- (v11), + (v9) -- (v11), + (v9) -- (v10), + (v11) -- (v12), + (v12) -- (v13), + (v13) -- (v16), + (v16) -- (v15), + (v8) -- (v11), + (v5) -- (v8), + (v8) -- (v14), + (v14) --[bend left] (v5), + (v4) -- (v6), + (v11) -- (v15), + (v10) -- (v13), + (v6) -- (v10) +}; +\end{tikzpicture} diff --git a/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph_tum.txt b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph_tum.txt new file mode 100644 index 00000000..8ae6d20e --- /dev/null +++ b/Info/11/NTG/1/ManfredsLabyrinth/manfreds_labyrinth_graph_tum.txt @@ -0,0 +1,39 @@ +n 50 500 0 +n 250 500 1 +n 500 500 2 +n 400 415 3 +n 100 350 4 +n 550 350 5 +n 280 300 6 +n 140 225 7 +n 400 255 8 +n 550 200 9 +n 290 150 10 +n 420 125 11 +n 550 100 12 +n 100 80 13 +n 280 10 14 +n 450 7 15 +e 0 1 0 1 +e 1 3 1 1 +e 2 5 2 1 +e 2 3 3 1 +e 3 8 4 1 +e 1 6 5 1 +e 6 8 6 1 +e 8 5 7 1 +e 6 10 8 1 +e 8 10 9 1 +e 8 9 10 1 +e 10 11 11 1 +e 11 12 12 1 +e 12 15 13 1 +e 15 14 14 1 +e 7 10 15 1 +e 4 7 16 1 +e 7 13 17 1 +e 13 4 18 1 +e 3 5 19 1 +e 10 14 20 1 +e 9 12 21 1 +e 5 9 22 1 diff --git a/Info/24_25/10/14/11C/slides.md b/Info/24_25/10/14/11C/slides.md new file mode 100644 index 00000000..41745b8e --- /dev/null +++ b/Info/24_25/10/14/11C/slides.md @@ -0,0 +1,396 @@ +--- +header-includes: | + \makeatletter + \beamer@ignorenonframefalse + \makeatother + \usepackage{bm} +--- + +## Here comes Manfred! + +::: {.columns align=center} +:::: {.column width=65%} + +:::: + +:::: {.column width=40%} +\pause +Manfred der freundliche Minotaurus aus der Nachbarschaft braucht [immernoch]{.underline} Hilfe in seinem Labyrinth! +:::: +::: + +## *"Ich kenne mich immer noch nicht aus!"* + +::: {.columns} +:::: {.column width=30%} + +:::: + +:::: {.column width=70%} +`\begin{center}`{=latex} + +\textit{Das ist mein Zuhause!} + +\vspace{0.1cm} +{height=70%} +\begin{tikzpicture}[overlay, remember picture] +\only<2>{ +\node[anchor=north west, fill=magenta, opacity=0.5, minimum size=0.75cm] at (0.41, 3.98) {}; +} +\end{tikzpicture} +\vspace{-0.1cm} + +> Welche Zimmer grenzen nochmal an mein Atelier (Zimmer 9)? + +`\end{center}`{=latex} +:::: +::: + +## Wiederholung: Zimmer finden + +\begin{tikzpicture} + \foreach \y in {2,...,3} { + \node[anchor=south west, minimum size=1cm, draw] at (-3, \y) {}; + } +\only<-3>{ + \node[anchor=south west, minimum size=1cm, draw] at (-3, 0.7) {}; +} +\only<4> { + \node[anchor=south west, minimum size=1cm, draw, fill=magenta!30] at (-3, 0.7) {}; +} + \node[] at (-2.5, 1.85) {\large \textbf{...}}; + \node[anchor=south west, minimum size=1cm, draw] at (-3, -0.6) {}; + \node[] at (-2.5, 0.55) {\large \textbf{...}}; + + \foreach \y in {0,...,1} { + \node at (-1.75, 3.5 - \y) {\textbf \y}; + } +\only<-3>{ + \node at (-1.75, 1.2) {\textbf 8}; +} + \node at (-1.75, -0.1) {\textbf{15}}; + + \begin{object}[text width=4.2cm]{p: Knoten}{-6, 4.5} + \attribute{name = "Pool"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, 3.5) {}; + \draw[-Triangle, thick] (-2.5, 3.5) -- (-3.5, 4); + + \begin{object}[text width=4.2cm]{b: Knoten}{-6, 3} + \attribute{name = "Badezimmer"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, 2.5) {}; + \draw[-Triangle, thick] (-2.5, 2.5) -- (-3.5, 2.5); + + \node at (-6, 1.6) {\large \textbf{...}}; + + \begin{object}[text width=4.2cm]{a: Knoten}{-6, 1.3} + \attribute{name = "Atelier"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, 1.2) {}; + \draw[-Triangle, thick] (-2.5, 1.2) -- (-3.5, 0.8); + + \node at (-6, -0.1) {\large \textbf{...}}; + + \begin{object}[text width=4.2cm]{s: Knoten}{-6, -0.4} + \attribute{name = "Schlafzimmer"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, -0.1) {}; + \draw[-Triangle, thick] (-2.5, -0.1) -- (-3.5, -0.9); + + %\node at (-5, -2) {\texttt{anzKnoten = 16}}; + \node at (2, 4.25) {gesuchte Bezeichnung: "Atelier"}; + +\only<2> { + \node at (-1, 3.5){\Large \textcolor{red!70}{$\bm{\Leftarrow}$}}; +} +\only<3> { + \node at (-1, 2.5){\Large \textcolor{red!70}{$\bm{\Leftarrow}$}}; +} +\only<4> { + \node at (-1, 1.2){\Large \textcolor{green!70!black}{$\bm{\Leftarrow}$}}; + \node[magenta] at (-1.75, 1.2) {\textbf 8}; +} +\end{tikzpicture} + +## Wiederholung: Knoten finden + +::: {.columns align=top} +:::: {.column width=45%} +\vspace{0.5cm} +``` + +für index < Anzahl der Knoten + falls Knotenbezeichnung gleich + gesuchter Bezeichnung + gibt index zurück + + +gibt -1 zurück +``` +:::: + +:::: {.column width=55%} +\pause +```java +int knotenFinden(String bezeichnung) { + for (int i = 0; i < anzKnoten; i++) { + if (knotenfeld[i].bezeichnung + == bezeichnung) { + return i; + } + } + return -1; +} +``` +:::: +::: + +## Nachbarn ausgeben +\begin{tikzpicture} + \foreach \y in {2,...,3} { + \node[anchor=south west, minimum size=1cm, draw] at (-3, \y) {}; + } +\only<1>{ + \node[anchor=south west, minimum size=1cm, draw] at (-3, 0.7) {}; +} +\only<2-> { + \node[anchor=south west, minimum size=1cm, draw, fill=magenta!30] at (-3, 0.7) {}; +} + \node[] at (-2.5, 1.85) {\large \textbf{...}}; + \node[anchor=south west, minimum size=1cm, draw] at (-3, -0.6) {}; + \node[] at (-2.5, 0.55) {\large \textbf{...}}; + + \foreach \y in {0,...,1} { + \node at (-1.75, 3.5 - \y) {\textbf \y}; + } +\only<1>{ + \node at (-1.75, 1.2) {\textbf 8}; +} + \node at (-1.75, -0.1) {\textbf{15}}; + + \begin{object}[text width=4.2cm]{p: Knoten}{-6, 4.5} + \attribute{name = "Pool"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, 3.5) {}; + \draw[-Triangle, thick] (-2.5, 3.5) -- (-3.5, 4); + + \begin{object}[text width=4.2cm]{b: Knoten}{-6, 3} + \attribute{name = "Badezimmer"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, 2.5) {}; + \draw[-Triangle, thick] (-2.5, 2.5) -- (-3.5, 2.5); + + \node at (-6, 1.6) {\large \textbf{...}}; + + \begin{object}[text width=4.2cm]{a: Knoten}{-6, 1.3} + \attribute{name = "Atelier"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, 1.2) {}; + \draw[-Triangle, thick] (-2.5, 1.2) -- (-3.5, 0.8); + + \node at (-6, -0.1) {\large \textbf{...}}; + + \begin{object}[text width=4.2cm]{s: Knoten}{-6, -0.4} + \attribute{name = "Schlafzimmer"} + \end{object} + \node[draw, circle, fill, inner sep=1pt] at (-2.5, -0.1) {}; + \draw[-Triangle, thick] (-2.5, -0.1) -- (-3.5, -0.9); + +\only<2-> { + \node[magenta] at (-1.75, 1.2) {\textbf 8}; +} + +\only<3->{ + \draw[Triangle-Triangle, thick, dashed] (-1.6, 1.2) -- (-0.4, 1.2); + \node at (-0.25, 1.2) {\textbf{\textcolor{magenta}{8}}}; +} +\only<4>{ + \node[anchor=south west, minimum size=1cm, fill=teal!30] at (1.5, 0.3) {?}; +} +\only<5>{ + \node[anchor=south west, minimum size=1cm, fill=teal!30] at (2.5, 0.3) {?}; +} +\only<6>{ + \node[anchor=south west, minimum size=1cm, fill=teal!30] at (3.5, 0.3) {?}; +} +\only<7>{ + \node[anchor=south west, minimum size=1cm, fill=teal!30] at (4.5, 0.3) {?}; +} + + \foreach \y in {0,...,1} { + \node at (-0.25, 3.5 - \y) {\textbf \y}; + } +\only<-2>{ + \node at (-0.25, 1.2) {\textbf 8}; +} + \node at (-0.25, -0.1) {\textbf{15}}; + + \foreach \y in {2,...,3} { + \node[anchor=south west, minimum size=1cm, draw] at (0, \y) {}; + } + +\only<-2>{ + \node[anchor=south west, minimum size=1cm, draw] at (0, 0.7) {}; +} +\only<3-> { + \node[anchor=south west, minimum size=1cm, draw, fill=magenta!30] at (0, 0.7) {}; +} + + \node[] at (0.5, 1.85) {\large \textbf{...}}; + \node[anchor=south west, minimum size=1cm, draw] at (0, -0.6) {}; + \node[] at (0.5, 0.55) {\large \textbf{...}}; + + \foreach \x in {0,...,3} + \node at (\x + 2, 4.5) {\textbf \x}; + + \foreach \y in {2,...,3} { + \foreach \x in {0,...,3} { + \node[anchor=south west, minimum size=1cm, draw] at (1.5 + \x , -0.5 + \y + \y*0.25) {}; + } + + \node[draw, circle, fill, inner sep=1pt] at (0.5, \y + 0.5) {}; + \draw[-Triangle, thick] (0.5, \y + 0.5) -- (1.5, \y + \y*0.25); + } + + \node at (3.5, 1.6) {\large \textbf{...}}; + + \foreach \x in {0,...,3} { + \node[anchor=south west, minimum size=1cm, draw] at (1.5 + \x, 0.3) {}; + } + \node[draw, circle, fill, inner sep=1pt] at (0.5, 1.2) {}; + \draw[-Triangle, thick] (0.5, 1.2) -- (1.5, 0.8); + + \node at (3.5, -0.1) {\large \textbf{...}}; + + \foreach \x in {0,...,3} { + \node[anchor=south west, minimum size=1cm, draw] at (1.5 + \x , -1.4) {}; + } + \node[draw, circle, fill, inner sep=1pt] at (0.5, -0.1) {}; + \draw[-Triangle, thick] (0.5, -0.1) -- (1.5, -0.9); + +\end{tikzpicture} + +## \faIcon{pencil-alt} Lösung: Nachbarn ausgeben + +`\begin{center}`{=latex} +``` +finde index des Ausgangsknoten +für index < Anzahl der Knoten + falls ausgehende Kante von Ausgangs- zu aktuellem Knoten + gib aktuelle Knoten-Bezeichnung aus +``` + +\vspace{0.2cm} + +```java +void nachbarnAusgeben(String bezeichnung) { + int knotenIndex = knotenFinden(bezeichnung); + for (int i = 0; i < anzKnoten; i++) { + if (adjazenzmatrix[knotenIndex][i] != -1) { + println(knotenfeld[i].bezeichnung); + } + } +} +``` +`\end{center}`{=latex} + +## \faIcon{desktop} Arbeitsauftrag: Nachbarn zählen \hfill 7 min + +Implementiere eine Methode, die die Anzahl der ausgehenden Kanten eines Knoten zählt. + +`\begin{enumerate}`{=latex} +\item Implementiere die Methode `int ausgehendeKantenZaehlen(String bezeichner)`{.java} +`\end{enumerate}`{=latex} + +### Tipp +Orientiere dich an der Methode `nachbarnAusgeben(String bezeichnung)`{.java}. + + +## Manfred sucht ein neues Labyrinth + +\begin{tikzpicture} +\node {\includegraphics[keepaspectratio, width=\textwidth]{topic/img/laboscout.png}}; +\node at (-5, 0) {\includegraphics[keepaspectratio, height=\textheight]{topic/img/manfred_cut_out.png}}; +\end{tikzpicture} + +## \only<2>{\faIcon{desktop}/\faIcon{pencil-alt} Arbeitsauftrag:} Manfred sucht ein neues Labyrinth + +::: {.columns align=center} +:::: {.column width=30%} + +:::: + +:::: {.column width=70%} +> Bei LaboScout24 kann ich die Labyrinthe als Graph herunterladen. +> Mich würde interessieren: + +1. Sind die Wege in dem Labyrinth alle gleich schwierig? +2. Verlaufen manche Gänge nur in eine Richtung? +3. \faIcon{earlybirds} **[Für Schnelle]{.underline}**: Wie viele Sackgassen sind in dem Labyrinth? + +\pause + +### Arbeitsauftrag \faIcon{hands-helping} +Entwickelt Vorgehen in Java oder Pseudocode um Manfreds Fragen zu beantworten. +:::: +::: + +## Lösung: Gewichtete Graphen erkennen + +### \faIcon[regular]{lightbulb} Idee: +In einem \boldred{gewichteten} Graphen gibt es mindestens eine Kante mit Gewicht $> 0$. + +Also müssen wir \boldred{alle} Kantengewichte überprüfen. + +\pause + +```java +boolean istUngewichtet() { + for (int i=0; i < anzKnoten; i++) { + for (int j=0; j < anzKnoten; j++) { + if (adjazenzmatrix[i][j] > 1) { + return false; // Graph ist gewichtet + } + } + } + return true; // Graph ist ungewichtet +} +``` + +## Lösung: Ungerichtete Graphen erkennen + +### \faIcon[regular]{lightbulb} Idee: +\pause + +::: {.columns} +:::: {.column width=60%} +Die Adjazenzmatrix eines \boldred{ungerichteten} Graphen muss achsensymmetrisch zu ihrer Diagonalen sein. +:::: + +:::: {.column width=30%} +\begin{tabular}{c | c | c} +\rowcolor{gray!30} \cellcolor{gray} & v1 & v2 \\ +\hline +\cellcolor{gray!30} v1 & \cellcolor{yellow!30} & \boldred{1} \\ +\hline +\cellcolor{gray!30} v2 & \boldred{1} & \cellcolor{yellow!30} \\ +\end{tabular} +:::: +::: + +\pause + +\vspace{0.3cm} +Also müssen wir prüfen ob \boldred{beide} Richtungen einer Kante gleich sind. + +\pause + +### Überprüfung in Java \faIcon{java} + +```java + if (adjazenzmatrix[i][j] != adjazenzmatrix[j][i] + return false; + } +} +``` diff --git a/Info/24_25/10/14/11C/topic b/Info/24_25/10/14/11C/topic new file mode 120000 index 00000000..1db61272 --- /dev/null +++ b/Info/24_25/10/14/11C/topic @@ -0,0 +1 @@ +../../../../11/NTG/1/Breitensuche
\ No newline at end of file |
