mirror of
https://github.com/fsr/nopanic
synced 2024-11-15 08:53:11 +01:00
add puzzles and dumb quote for spacing
This commit is contained in:
parent
506ce83b0d
commit
e34a45f599
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -2,6 +2,8 @@
|
|||
Spieleabend.psd
|
||||
manual.pdf
|
||||
manual_compressed.pdf
|
||||
raetsel/picross.pdf
|
||||
raetsel/network.pdf
|
||||
zeitplan.pdf
|
||||
faltblatt.pdf
|
||||
PoSo/
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
|
56
raetsel/network.tex
Normal file
56
raetsel/network.tex
Normal file
|
@ -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}
|
73
raetsel/picross.tex
Normal file
73
raetsel/picross.tex
Normal file
|
@ -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}
|
|
@ -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}
|
63
texte/scrumwitch.tex
Normal file
63
texte/scrumwitch.tex
Normal file
|
@ -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
|
Loading…
Reference in a new issue