diff --git a/.gitignore b/.gitignore index 5cecb10..4adf5dc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ Spieleabend.psd manual.pdf manual_compressed.pdf +raetsel/picross.pdf +raetsel/network.pdf zeitplan.pdf faltblatt.pdf PoSo/ diff --git a/.latexmkrc b/.latexmkrc index 1ebef42..15cc73f 100644 --- a/.latexmkrc +++ b/.latexmkrc @@ -1,4 +1,9 @@ -@default_files = ('timetable/zeitplan.tex', 'manual.tex'); +@default_files = ( + 'raetsel/picross.tex', + 'raetsel/network.tex', + 'timetable/zeitplan.tex', + 'manual.tex', +); # descriptions stolen from https://collaborating.tuhh.de/alex/latex-git-cookbook/-/blob/4174942b6674588d016189c708327dccbaac5b8d/.latexmkrc diff --git a/manual.tex b/manual.tex index db5b570..99c7625 100644 --- a/manual.tex +++ b/manual.tex @@ -69,10 +69,11 @@ \include{texte/veranstaltungen} \include{texte/studienalltag} \include{texte/moduluebersicht} +\include{texte/scrumwitch} +\include{texte/raetsel} \include{texte/werbung} \include{texte/links} % \addchap{Notizen}\mbox{} -\include{texte/raetsel} \include{texte/campusplan} \include{cover/back} diff --git a/raetsel/network.tex b/raetsel/network.tex new file mode 100644 index 0000000..3ff85d6 --- /dev/null +++ b/raetsel/network.tex @@ -0,0 +1,56 @@ +\documentclass[class=minimal,border=0pt]{standalone} + +\usepackage{tikz} +\usepackage{fontspec} + +\setmainfont[ + Scale=0.90, + BoldFeatures={Scale=1.0} +]{Open Sans} + +\begin{document} + +\begin{tikzpicture}[ + every node/.style={circle, fill=black, minimum size=3mm}, + start/.style={draw=black, very thick, fill=none, minimum size=6mm, node font=\bfseries}, + end/.style={draw=black, double, very thick, fill=none, minimum size=7mm, node font=\bfseries} +] + \node [start] (S) at (0,-2) {?}; + + \node [draw] (a) at (0,-1) {} edge [dashed] (S); + \node [draw] (b) at (0,-0) {} edge [-] (a); + \node [draw] (c) at (1,-1) {} edge [-] (a); + \node [draw] (d) at (2,0) {} edge [-] (b) + edge [-] (c); + + \node [draw] (e) at (0,-3) {} edge [dashed] (S); + \node [draw] (f) at (0,-5.5) {} edge [-] (e); + \node [draw] (g) at (4.5,-5.5) {} edge [-] (f); + \node [draw] (h) at (4.5,-2) {} edge [-] (g); + \node [draw] (i) at (4.5,-1) {} edge [-] (h); + + \node [draw] (j) at (1,-3) {} edge [dashed] (S) + edge [-] (e); + \node [draw] (k) at (1,-5) {} edge [-] (j); + \node [draw] (l) at (2,-4) {} edge [-] (k); + \node [draw] (m) at (3,-5) {} edge [-] (k); + \node [draw] (n) at (3,-4) {} edge [-] (l) + edge [-] (m); + \node [draw] (o) at (3,-3) {} edge [-] (n); + \node [draw] (p) at (4,-3) {} edge [-] (n); + \node [draw] (q) at (3,-2) {} edge [-] (o) + edge [-] (p); + \node [draw] (v) at (4,-5) {} edge [-] (p); + \node [draw] (r) at (1,-2) {} edge [-] (e) + edge [-] (n); + \node [draw] (t) at (2,-1) {} edge [-] (r); + \node [draw] (u) at (2,-2) {} edge [-] (t) + edge [-] (q); + + \node [end] (end) at (3,-1) {} edge [-] (d) + edge [-] (i) + edge [-] (q); + \node [draw] (w) at (4,0) {} edge [-] (end); +\end{tikzpicture} + +\end{document} diff --git a/raetsel/picross.tex b/raetsel/picross.tex new file mode 100644 index 0000000..249a3c2 --- /dev/null +++ b/raetsel/picross.tex @@ -0,0 +1,73 @@ +\documentclass[class=minimal,border=0pt]{standalone} + +\usepackage{tikz} +\usepackage{fontspec} + +\setmainfont[ + Scale=0.90, + BoldFeatures={Scale=1.0} +]{Open Sans} + +\def\cols{ + {}, + {}, + {}, + {2}, + {5}, + {1,2,1}, + {2,1,2}, + {16}, + {2,1,2}, + {1,3,1}, + {5}, + {3}, + {}, + {}, + {}, + {} +} + +% (sublists have to be REVERSED so the for loop makes sense!!!) +\def\rows{ + {1}, + {3}, + {5}, + {1}, + {3,1}, + {3,1,1}, + {3,1,3}, + {1,1,3}, + {1,1,1}, + {1,1,1}, + {2,1}, + {2}, + {1}, + {3}, + {3}, + {1} +} + +\begin{document} + +\begin{tikzpicture}[ + every node/.style={rectangle, draw=black, semithick, minimum size=5mm, node font=\bfseries}, + num/.style={draw=none, minimum size=4mm} +] + \node + foreach \list [count=\x] in \cols + foreach \val [count=\y] in \list + [num] at (\x/2, 0.35*\y+0.15) {\val}; + \node + foreach \list [count=\y] in \rows + foreach \val [count=\x] in \list + [num] at (-0.3*\x-0.2, 0.5-\y/2) {\val}; + + % grid + \node + foreach \a [count=\y] in \rows + foreach \b [count=\x] in \cols + at (\x/2-0.5, 0.5-\y/2) {}; + +\end{tikzpicture} + +\end{document} diff --git a/texte/raetsel.tex b/texte/raetsel.tex index e69de29..6968e1c 100644 --- a/texte/raetsel.tex +++ b/texte/raetsel.tex @@ -0,0 +1,137 @@ +%\cleardoubleevenemptypage + +\ifcase\numexpr \modulo{\value{page}}{2} \relax +% don't add any extra pages +\or +\hbox{} +\vspace{5mm} +\begin{center} +\tiny +--- This page is unintentionally left blank --- +\vfill +:P +\end{center} +\newpage +\fi + + +\addchap{Rätsel} + +Kennst du Picross oder Nonogramm (oder eine ganze Sammlung von weiteren Begriffen)? +In diesem Logikrätsel ist ein Pixelbild versteckt. +An jeder Zeile und Spalte steht nur, wie viele aufeinanderfolgende ausgefüllte Pixel es in der Reihe gibt. +Dazwischen können jeweils beliebig viele unausgefüllte liegen. + +\vfill +% no centering, the image is already off center because the numbers are only on one side of the grid +\includegraphics[width=.95\textwidth]{raetsel/picross} + +\vspace{3mm} + + +\pagebreak + +Es sind die 1960er Jahre, du arbeitest mit einem Kommilitonen an einem ersten Prototypen für miteinander vernetzte Computer. +Der Algorithmus ist noch recht simpel. +Zu simpel: denn jeder Rechner schickt von einer Verbindung in der einen Sekunde empfangene Nachrichten in der nächsten Sekunde einfach blind an alle anderen Verbindungen weiter. +Wenn eine Nachricht aber gleichzeitig aus mehr als einer Verbindung eingeht, + crasht der Rechner und ist erst in der nächsten Sekunde wieder einsatzfähig -- + ohne das soeben Empfangene weiterzusenden. +\\ +Du versuchst natürlich, deinem Kommilitonen das als Nachricht auf den einzigen Rechner mit aktivierten Logs zu schicken. +Aber den zu erreichen gestaltet sich erstaunlich schwierig, + denn du hast nur ein Kabel, und es reicht nur zu drei anderen Rechnern... +Mit welcher Verbindung kommt die Nachricht sicher ans Ziel -- ohne dieses zu crashen? + +\vfill% + +\begin{minipage}{.2\textwidth} +\vfill + +\[t\] + +\begin{tikzpicture}[ + every node/.style={circle, draw, fill=black, inner sep=1pt, minimum size=2.5mm}, +] + \node [double] (a) at (0.5, 0.25) {} edge [<-] (0,0.25); + \node [] (b) at (1.25,0 ) {} edge [-] (a) + edge [-] (1.75,0); + \node [] (c) at (1.25,0.5 ) {} edge [-] (a) + edge [-] (1.75,0.5); +\end{tikzpicture} + +\vspace{1mm} + +\[t+1\] + +\begin{tikzpicture}[ + every node/.style={circle, draw, fill=black, inner sep=1pt, minimum size=2.5mm}, +] + \node [] (a) at (0.5, 0.25) {} edge [-] (0,0.25); + \node [double] (b) at (1.25,0 ) {} edge [<-] (a) + edge [-] (1.75,0); + \node [double] (c) at (1.25,0.5 ) {} edge [<-] (a) + edge [-] (1.75,0.5); +\end{tikzpicture} + + +\vspace{6mm} + + +\[t\] + +\begin{tikzpicture}[ + every node/.style={circle, draw, fill=black, inner sep=1pt, minimum size=2.5mm}, +] + \node [double] (b) at (0.5, 0 ) {} edge [<-] (0,0); + \node [double] (c) at (0.5, 0.5 ) {} edge [<-] (0,0.5); + \node [] (d) at (1.25,0.25) {} edge [-] (b) + edge [-] (c); + \node [] (e) at (1.75,0.25) {} edge [-] (d) + edge [-] (2.25,0.25); +\end{tikzpicture} + +\vspace{1mm} + +\[t+1\] + +\begin{tikzpicture}[ + every node/.style={circle, draw, fill=black, inner sep=1pt, minimum size=2.5mm}, + cross/.style={path picture={ + \draw[black] + (path picture bounding box.south east) -- (path picture bounding box.north west) (path picture bounding box.south west) -- (path picture bounding box.north east); + }}, + crashed/.style={draw, cross, thick, fill=none}, +] + \node [] (b) at (0.5, 0 ) {} edge [-] (0,0); + \node [] (c) at (0.5, 0.5 ) {} edge [-] (0,0.5); + \node [crashed] (d) at (1.25,0.25) {} edge [<-] (b) + edge [<-] (c); + \node [] (e) at (1.75,0.25) {} edge [-] (d) + edge [-] (2.25,0.25); +\end{tikzpicture} + +\vspace{1mm} + +\[t+2\] + +\begin{tikzpicture}[ + every node/.style={circle, draw, fill=black, inner sep=1pt, minimum size=2.5mm}, +] + \node [] (b) at (0.5, 0 ) {} edge [-] (0,0); + \node [] (c) at (0.5, 0.5 ) {} edge [-] (0,0.5); + \node [] (d) at (1.25,0.25) {} edge [-] (b) + edge [-] (c); + \node [] (e) at (1.75,0.25) {} edge [-] (d) + edge [-] (2.25,0.25); +\end{tikzpicture} + + +\vfill + +\end{minipage}% +% +\hfill% +\begin{minipage}{.75\textwidth} +\includegraphics[width=\textwidth]{raetsel/network} +\end{minipage} diff --git a/texte/scrumwitch.tex b/texte/scrumwitch.tex new file mode 100644 index 0000000..ac0f7bc --- /dev/null +++ b/texte/scrumwitch.tex @@ -0,0 +1,63 @@ + +\newcommand\scrumwitch{ + \thispagestyle{empty} + \hbox{} + \vfill + \begin{center} + \begin{minipage}{.7\textwidth} + \centering + In the beginning God created the heaven and the earth. + And the earth was without form, and void; + and it was a static void, and it was private. + And God said: \enquote{It is not good that the void should be private; + I will make it protected, + so it can be enjoyed by everyone, and no harm shall befall it.} + + [...] + + And God said: \enquote{Let the earth sprout a great many paradigms and programming patterns, + and binary trees bearing random number generators in which is their seed, + each according to its kind.} + And it was so. + And God saw that it was good. + And there was evening and there was morning; the third sprint. + \end{minipage} + \end{center} + + \hfill\textit{--- the SCRUM--Witch, citing her scripture} + \vfill +} + +\newcommand\unintentional{ + \hbox{} + \vspace{5mm} + \begin{center} + \tiny + --- This page is unintentionally left blank --- + \vfill + :P + \end{center} +} + +% Fill with empty pages here so we don't have empty pages immediately before the cover +% Assuming there are n*4 pages of content left before the back cover, +% our target is {page num mod 4 = 0} – if it is anything else, +% fill the empty space with nonsense and a cheeky quote +\ifcase\numexpr \modulo{\value{page}}{4} \relax +% don't add any extra pages +\or + +\unintentional +\newpage +\scrumwitch +\newpage +\thispagestyle{empty} +\unintentional +\or +\thispagestyle{empty} +\unintentional +\newpage +\scrumwitch +\or +\scrumwitch +\fi