diff --git a/README.md b/README.md index bab4708..9f71ccc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ edugame-rail-traffic-flow ====== +Version 0.7 +------ +reworking of game mechanics together with tasks and figures + + Version 0.6.1 ------ extended tasks for routes diff --git a/backmatter/versionhistory.tex b/backmatter/versionhistory.tex index c90a99a..dca7882 100644 --- a/backmatter/versionhistory.tex +++ b/backmatter/versionhistory.tex @@ -48,4 +48,8 @@ \IfLanguage{ngerman}{Aufgaben für Fahrstraßen erweitert} \IfLanguage{english}{Extended tasks for routes} } + \vhEntry{0.7}{2019-09-09}{MS|LP}{ + \IfLanguage{ngerman}{Spielmechanik mit Aufgaben und Abbildungen überarbeitet} + \IfLanguage{english}{reworking of game mechanics together with tasks and figures} + } \end{versionhistory} diff --git a/figures/challenge1_setup.pdf b/figures/challenge1_setup.pdf new file mode 100644 index 0000000..fd30a6f Binary files /dev/null and b/figures/challenge1_setup.pdf differ diff --git a/figures/challenge1_setup.tex b/figures/challenge1_setup.tex new file mode 100644 index 0000000..2d862ec --- /dev/null +++ b/figures/challenge1_setup.tex @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} +\usepackage[main=english,ngerman]{babel} +\usepackage{iflang} % needs babel +\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}} +\usepackage{lmodern,microtype,mathptmx,courier} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{challenge1_setup.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/challenge1_setup.tikz b/figures/challenge1_setup.tikz new file mode 100644 index 0000000..5a67d46 --- /dev/null +++ b/figures/challenge1_setup.tikz @@ -0,0 +1,54 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = challenge1_setup.tex + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\begin{scope} + \coordinate (base) at (0,0); + \draw[dotted] ([shift={(base)}] 0,0) rectangle ++(1,0.5); + \foreach \x in {1,...,4} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5); + \node at ([shift={(base)}] 1.5,0.25) {-2}; + \node at ([shift={(base)}] 2.5,0.25) {-1}; + \node at ([shift={(base)}] 3.5,0.25) {0}; + \node at ([shift={(base)}] 4.5,0.25) {1}; + \draw ([shift={(base)}] 1,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); + \draw ([shift={(base)}] 1,0.8) -- ++ (3,0) node [above,midway] { + \IfLanguage{english}{platform A} + \IfLanguage{ngerman}{Bahnsteig A} + }; + \draw[dotted] ([shift={(base)}] 5,0) rectangle ++(1,0.5); + + \draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}] 4,0.85) -- ++(3,0) node[midway,fill=white] {12}; + + \foreach \x in {6,...,10} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5); + \node at ([shift={(base)}] 6.5,0.25) {12}; + \node at ([shift={(base)}] 7.5,0.25) {13}; + \node at ([shift={(base)}] 8.5,0.25) {14}; + \node at ([shift={(base)}] 9.5,0.25) {15}; + \node at ([shift={(base)}] 10.5,0.25) {16}; + \draw ([shift={(base)}] 7,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); + \draw ([shift={(base)}] 7,0.8) -- ++ (3,0) node [above,midway] { + \IfLanguage{english}{platform B} + \IfLanguage{ngerman}{Bahnsteig B} + }; + \draw[dotted] ([shift={(base)}] 11,0) rectangle ++(1,0.5); + + \draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}] 10,0.85) -- ++(3,0) node[midway,fill=white] {21}; + + \foreach \x in {12,...,15} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5); + \node at ([shift={(base)}] 12.5,0.25) {36}; + \node at ([shift={(base)}] 13.5,0.25) {37}; + \node at ([shift={(base)}] 14.5,0.25) {38}; + \node at ([shift={(base)}] 15.5,0.25) {39}; + \draw ([shift={(base)}] 13,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); + \draw ([shift={(base)}] 13,0.8) -- ++ (3,0) node [above,midway] { + \IfLanguage{english}{platform C} + \IfLanguage{ngerman}{Bahnsteig C} + }; + \draw[dotted] ([shift={(base)}] 16,0) rectangle ++(1,0.5); + % \draw[line width=1pt, fill=white] ([shift={(base)}] 3.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/challenge3_layout2.tikz b/figures/challenge3_layout2.tikz new file mode 100644 index 0000000..61f404e --- /dev/null +++ b/figures/challenge3_layout2.tikz @@ -0,0 +1,47 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../material/route_locking_matrix.tex + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\begin{scope} + \path[draw, line width=2pt] ( 0,0) -- ++(17,0); + \path[draw, line width=2pt] ( 4,0) -- ++(1,1) -- ++(7,0) -- ++(1,-1); + \path[draw, line width=2pt] (11,1) -- ++(1,1) -- ++(1,0); + \path[draw, line width=1pt, fill] (4,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker + \node[below] at (4,0) {\footnotesize W1}; + \path[draw, line width=1pt, fill] (11,1) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker + \node[above] at (10.8,1) {\footnotesize W2}; + \path[draw, line width=1pt, fill] (13,0) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker + \node[above] at (13.2,0) {\footnotesize W3}; + + \draw[line width=1pt] (2,0) -- ++(0,-0.3) -- ++(0.5,0); + \draw[line width=1pt] (2.65,-0.3) circle (0.15cm); + \node[left] at (2,-0.3) {\footnotesize A}; + + \draw[line width=1pt] (7,0) -- ++(0,0.3) -- ++(-0.5,0); + \draw[line width=1pt] (6.35,0.3) circle (0.15cm); + \node[right] at (7,0.3) {\footnotesize P1}; + + \draw[line width=1pt] (7,1) -- ++(0,0.3) -- ++(-0.5,0); + \draw[line width=1pt] (6.35,1.3) circle (0.15cm); + \node[right] at (7,1.3) {\footnotesize P2}; + + \draw[line width=1pt] (10.5,1) -- ++(0,-0.3) -- ++(0.5,0); + \draw[line width=1pt] (11.15,0.7) circle (0.15cm); + \node[left] at (10.5,0.7) {\footnotesize N2}; + + \draw[line width=1pt] (12,0) -- ++(0,-0.3) -- ++(0.5,0); + \draw[line width=1pt] (12.65,-0.3) circle (0.15cm); + \node[left] at (12,-0.3) {\footnotesize N1}; + + \draw[line width=1pt] (15,0) -- ++(0,0.3) -- ++(-0.5,0); + \draw[line width=1pt] (14.35,0.3) circle (0.15cm); + \node[right] at (15,0.3) {\footnotesize F}; + + \node[fill=white] at (9,0) {1}; + \node[fill=white] at (9,1) {2}; + + \node at (-1,0) {links}; + \node at (18,0) {rechts}; +\end{scope} \ No newline at end of file diff --git a/figures/challenge3_setup1.pdf b/figures/challenge3_setup1.pdf new file mode 100644 index 0000000..49bc651 Binary files /dev/null and b/figures/challenge3_setup1.pdf differ diff --git a/figures/challenge3_setup1.tex b/figures/challenge3_setup1.tex new file mode 100644 index 0000000..b9d533e --- /dev/null +++ b/figures/challenge3_setup1.tex @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} +\usepackage[main=english,ngerman]{babel} +\usepackage{iflang} % needs babel +\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}} +\usepackage{lmodern,microtype,mathptmx,courier} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{challenge3_setup1.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/challenge3_setup1.tikz b/figures/challenge3_setup1.tikz index 8f21d0e..e55627f 100644 --- a/figures/challenge3_setup1.tikz +++ b/figures/challenge3_setup1.tikz @@ -1,17 +1,44 @@ %!TEX TS-program = pdflatexmk +%!TEX root = challenge3_setup1.tex % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. \begin{scope} \coordinate (base) at (0,0); - \path[draw, line width=2pt] ( 0,0) -- ++(19,0); - \path[draw, line width=2pt] ( 0,1) -- ++(1,0) -- ++(1,-1); - \path[draw, line width=1pt,fill] (2,0) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker - \path[draw, line width=2pt] (17,0) -- ++(1,1) -- ++(1,0); - \path[draw, line width=1pt,fill] (17,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker + \draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + \draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,1.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + + \draw ([shift={(base)}] 1,0) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 1,0) -- ++(0,-0.2) -- ++(0.5,0); + \draw[line width=1pt] ([shift={(base)}] 1.65,-0.2) circle (0.15cm); + + \draw ([shift={(base)}] 1,1) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 1,1) -- ++(0,-0.2) -- ++(0.5,0); + \draw[line width=1pt] ([shift={(base)}] 1.65,0.8) circle (0.15cm); + + \draw ([shift={(base)}] 2,0) -- ++(2,0) -- ++(0,0.5) -- ++(-1.5,1) -- ++(-0.5,0) -- cycle; + \node at ([shift={(base)}] 3,0.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + + \draw ([shift={(base)}] 4,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 5,0) rectangle ++(1,0.5); + \draw[|<->|,>=latex] ([shift={(base)}] 4,0.85) -- ++(3,0) node[midway,fill=white] {25}; + \draw ([shift={(base)}] 6,0) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 9,0) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle; + \node at ([shift={(base)}] 8,0.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + + \draw ([shift={(base)}] 9,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 9,1) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 10,1) rectangle ++(1,0.5); + \node at ( 0,2) {\Large A}; - \node at (19,2) {\Large B}; - \path[draw, line width=1pt, fill=white] (0,0) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \path[draw, line width=1pt, fill=white] (0,1) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + \node at (10,2) {\Large B}; \end{scope} \ No newline at end of file diff --git a/figures/challenge3_setup2.pdf b/figures/challenge3_setup2.pdf new file mode 100644 index 0000000..1388f34 Binary files /dev/null and b/figures/challenge3_setup2.pdf differ diff --git a/figures/challenge3_setup2.tex b/figures/challenge3_setup2.tex new file mode 100644 index 0000000..2244257 --- /dev/null +++ b/figures/challenge3_setup2.tex @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} +\usepackage[main=english,ngerman]{babel} +\usepackage{iflang} % needs babel +\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}} +\usepackage{lmodern,microtype,mathptmx,courier} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{challenge3_setup2.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/challenge3_setup2.tikz b/figures/challenge3_setup2.tikz index 04f13f4..08381e8 100644 --- a/figures/challenge3_setup2.tikz +++ b/figures/challenge3_setup2.tikz @@ -1,18 +1,78 @@ %!TEX TS-program = pdflatexmk +%!TEX root = challenge3_setup2.tex % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. \begin{scope} \coordinate (base) at (0,0); - \path[draw, line width=2pt] ( 0,0) -- ++(15,0); - \path[draw, line width=2pt] ( 4,0) -- ++(1,1) -- ++(8,0); - \path[draw, line width=2pt] (12,1) -- ++(1,-1); - \path[draw, line width=1pt, fill] (4,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker - \path[draw, line width=1pt, fill] (12,1) -- ++(0.4,-0.4) -- ++(0,0.4); % turnout marker - \path[draw, line width=1pt, fill] (13,0) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker - \path[draw, line width=1pt, fill=white] ( 0,0) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0, 0.4) -- ++( 2.6,0) -- cycle; % train - \path[draw, line width=1pt, fill=white] (15,0) -- ++( 0.2, 0.2) -- ++( 2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train - \node at (-1,0) {1}; - \node at (16,0) {2}; + \draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + \node at (0,0.25) {1}; + \draw[line width=1pt, fill=white] ([shift={(base)}] 22.1,0.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train + \node at (23,0.25) {2}; + + \draw ([shift={(base)}] 1,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 2,0) rectangle ++(1,0.5); + \draw[|<->|,>=latex] ([shift={(base)}] 1,0.85) -- ++(3,0) node[midway,fill=white] {25}; + \draw ([shift={(base)}] 3,0) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 4,0) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 4,0) -- ++(0,-0.2) -- ++(0.5,0); + \draw[line width=1pt] ([shift={(base)}] 4.65,-0.2) circle (0.15cm); + \draw ([shift={(base)}] 5,0) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 8,0) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle; + \node at ([shift={(base)}] 7,0.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + + \draw ([shift={(base)}] 8,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 8,1) rectangle ++(1,0.5); + \draw ([shift={(base)}] 9,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 9,1) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 10,0.5) -- ++(0,0.2) -- ++(-0.5,0); + \draw[line width=1pt] ([shift={(base)}] 9.35,0.7) circle (0.15cm); + \draw[line width=1pt] ([shift={(base)}] 10,1.5) -- ++(0,0.2) -- ++(-0.5,0); + \draw[line width=1pt] ([shift={(base)}] 9.35,1.7) circle (0.15cm); + + \draw ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 11,0) rectangle ++(3,0.5); + \draw[|<->|,>=latex] ([shift={(base)}] 10,-0.45) -- ++(5,0) node[midway,fill=white] {7}; + \draw ([shift={(base)}] 14,0) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 10,1) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 11,1) rectangle ++(1,0.5); + \draw[|<->|,>=latex] ([shift={(base)}] 10,1.95) -- ++(3,0) node[midway,fill=white] {4}; + \draw ([shift={(base)}] 12,1) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 15,1) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle; + \node at ([shift={(base)}] 14,1.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + \draw[line width=1pt] ([shift={(base)}] 13,1) -- ++(0,-0.2) -- ++(0.5,0); + \draw[line width=1pt] ([shift={(base)}] 13.65,0.8) circle (0.15cm); + + \draw ([shift={(base)}] 15,2) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 16,2) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 15,0) -- ++(2,0) -- ++(0,0.5) -- ++(-1.5,1) -- ++(-0.5,0) -- cycle; + \node at ([shift={(base)}] 16,0.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + \draw[line width=1pt] ([shift={(base)}] 15,0) -- ++(0,-0.2) -- ++(0.5,0); + \draw[line width=1pt] ([shift={(base)}] 15.65,-0.2) circle (0.15cm); + + \draw ([shift={(base)}] 17,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 18,0) rectangle ++(1,0.5); + + \draw[line width=1pt] ([shift={(base)}] 19,0.5) -- ++(0,0.2) -- ++(-0.5,0); + \draw[line width=1pt] ([shift={(base)}] 18.35,0.7) circle (0.15cm); + + \draw ([shift={(base)}] 19,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 20,0) rectangle ++(1,0.5); + \draw[|<->|,>=latex] ([shift={(base)}] 19,0.95) -- ++(3,0) node[midway,fill=white] {15}; + \draw ([shift={(base)}] 21,0) rectangle ++(1,0.5); \end{scope} \ No newline at end of file diff --git a/figures/challenge3_setup3.pdf b/figures/challenge3_setup3.pdf new file mode 100644 index 0000000..e6718c5 Binary files /dev/null and b/figures/challenge3_setup3.pdf differ diff --git a/figures/challenge3_setup3.tex b/figures/challenge3_setup3.tex new file mode 100644 index 0000000..cde0f73 --- /dev/null +++ b/figures/challenge3_setup3.tex @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} +\usepackage[main=english,ngerman]{babel} +\usepackage{iflang} % needs babel +\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}} +\usepackage{lmodern,microtype,mathptmx,courier} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{challenge3_setup3.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/challenge3_setup3.tikz b/figures/challenge3_setup3.tikz index 43356b2..80ee901 100644 --- a/figures/challenge3_setup3.tikz +++ b/figures/challenge3_setup3.tikz @@ -1,21 +1,68 @@ %!TEX TS-program = pdflatexmk +%!TEX root = challenge3_setup3.tex % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. \begin{scope} \coordinate (base) at (0,0); - \path[draw, line width=2pt] (-3,0) -- ++(18,0); - \path[draw, line width=2pt] (-3,2) -- ++(18,0); - \path[draw, line width=2pt] ( 6,0) -- ++(1,1) -- ++(8,0); - \path[draw, line width=2pt] ( 7,2) -- ++(1,-1); - \path[draw, line width=1pt, fill] (6,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker - \path[draw, line width=1pt, fill] (7,2) -- ++(0.4,-0.4) -- ++(0,0.4); % turnout marker - \path[draw, line width=1pt, fill] (8,1) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker - \path[draw, line width=1pt, fill=white] ( 1,0) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0, 0.4) -- ++( 2.6,0) -- cycle; % train - \path[draw, line width=1pt, fill=white] (10,1) -- ++( 0.2, 0.2) -- ++( 2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train - \path[draw, line width=1pt, fill=white] (10,2) -- ++( 0.2, 0.2) -- ++( 2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train - \node at ( 0,0) {3}; - \node at (11,1) {2}; - \node at (11,2) {1}; + + \draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + \node at ( 0,0.25) {3}; + \draw[line width=1pt, fill=white] ([shift={(base)}] 14.1,1.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train + \node at (15,1.25) {2}; + \draw[line width=1pt, fill=white] ([shift={(base)}] 12.1,3.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train + \node at (13,3.25) {1}; + + \draw ([shift={(base)}] 1,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 2,0) rectangle ++(1,0.5); + \draw[|<->|,>=latex] ([shift={(base)}] 1,0.85) -- ++(3,0) node[midway,fill=white] {20}; + \draw ([shift={(base)}] 3,0) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 4,0) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 4,0) -- ++(0,-0.2) -- ++(0.5,0); + \draw[line width=1pt] ([shift={(base)}] 4.65,-0.2) circle (0.15cm); + \draw ([shift={(base)}] 5,0) rectangle ++(1,0.5); + + \draw ([shift={(base)}] 8,0) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle; + \node at ([shift={(base)}] 7,0.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + \draw ([shift={(base)}] 8,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 9,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \draw ([shift={(base)}] 11,0) rectangle ++(1,0.5); + \draw[dotted] ([shift={(base)}] 12,0) rectangle ++(1,0.5); + \draw[->,>=latex,,shorten <=2,line width=1pt] (13,0.25) -- ++(0.75,0); + + + \draw ([shift={(base)}] 8,1) rectangle ++(1,0.5); + \draw ([shift={(base)}] 9,1) -- ++(2,0) -- ++(0,0.5) -- ++(-1.5,1) -- ++(-0.5,0) -- cycle; + \node at ([shift={(base)}] 10,1.5) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + \draw ([shift={(base)}] 11,1) rectangle ++(1,0.5); + \draw ([shift={(base)}] 12,1) rectangle ++(1,0.5); + \draw ([shift={(base)}] 13,1) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 13,1.5) -- ++(0,0.2) -- ++(-0.5,0); + \draw[line width=1pt] ([shift={(base)}] 12.35,1.7) circle (0.15cm); + + + \draw[->,>=latex,,shorten <=2,line width=1pt] (3,3.25) -- ++(-0.75,0); + \draw[dotted] ([shift={(base)}] 3,3) rectangle ++(1,0.5); + \draw ([shift={(base)}] 4,3) rectangle ++(1,0.5); + \draw ([shift={(base)}] 5,3) rectangle ++(1,0.5); + \draw ([shift={(base)}] 6,3) rectangle ++(1,0.5); + \draw ([shift={(base)}] 9,3.5) -- ++(-2,0) -- ++(0,-0.5) -- ++(1.5,-1) -- ++(0.5,0) -- cycle; + \node at ([shift={(base)}] 8,3) { + \IfLanguage{english}{turnout} + \IfLanguage{ngerman}{Weiche} + }; + \draw ([shift={(base)}] 9,3) rectangle ++(1,0.5); + \draw ([shift={(base)}] 10,3) rectangle ++(1,0.5); + \draw ([shift={(base)}] 11,3) rectangle ++(1,0.5); + \draw[line width=1pt] ([shift={(base)}] 11,3.5) -- ++(0,0.2) -- ++(-0.5,0); + \draw[line width=1pt] ([shift={(base)}] 10.35,3.7) circle (0.15cm); \end{scope} \ No newline at end of file diff --git a/handbook.pdf b/handbook.pdf index e0047b1..a92a7b2 100644 Binary files a/handbook.pdf and b/handbook.pdf differ diff --git a/handbook.tex b/handbook.tex index 2c827d0..0c97822 100644 --- a/handbook.tex +++ b/handbook.tex @@ -4,7 +4,7 @@ % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. \documentclass[ - % draft, + draft, paper=a4, version=3.25, pagesize=pdftex, diff --git a/mainmatter/challenges.tex b/mainmatter/challenges.tex index 11d45e6..8fd8d78 100644 --- a/mainmatter/challenges.tex +++ b/mainmatter/challenges.tex @@ -9,56 +9,36 @@ \part{\IfLanguage{english}{Challenges}\IfLanguage{ngerman}{Aufgaben}} \chapter{\IfLanguage{english}{First Stage}\IfLanguage{ngerman}{Erste Stufe}} \section{\IfLanguage{english}{Introduction to Driving Dynamics}\IfLanguage{ngerman}{Einführung Fahrdynamik}} \setup + \IfLanguage{english}{TODO} + \IfLanguage{ngerman}{Auf einem Gleis soll ein beliebiger Zug verkehren, mit:} \begin{itemize} \IfLanguage{english}{ - \item A single train, - \item Line with fields $-2$ to $39$, - \item Platform A at field $-2$ to $0$, - \item Platform B at field $13$ to $15$, - \item Platform C at field $37$ to $39$. + \item\todo{} + % \item A single train on field $0$ towards $39$. } \IfLanguage{ngerman}{ - \item ein Zug, - \item Strecke mit Feldern $-2$ bis $39$, - \item Bahnsteig A am Feld $-2$ bis $0$, - \item Bahnsteig B am Feld $13$ bis $15$, - \item Bahnsteig C am Feld $37$ bis $39$. + \item Infrastruktur wie unten abgebildet + \item der Zug steht auf Feld $0$ in Richtung $39$ } \end{itemize} + \tikzfigure{challenge1_setup.tikz} \task - \IfLanguage{english}{ The train (on field $0$ towards $39$) stands still and has its shift lever at \SI{0}{\kilo\metre\per\hour}.} - \IfLanguage{ngerman}{Der Zug (auf Feld $0$ in Richtung $39$) steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.} + \IfLanguage{english}{The train stands still and has its shift lever at \SI{0}{\kilo\metre\per\hour}.} + \IfLanguage{ngerman}{Der Zug steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.} \begin{enumerate}[label=\alph*)] \IfLanguage{english}{ \item If the train accelerates as much as possible, which field can it get to in \emph{nine} laps? \item How many laps are minimally needed, if the train stops at every station? + \item The train passes through the first station and has its shift lever on maximum speed. How many laps are needed if the train shall leave the track completely without stopping? } \IfLanguage{ngerman}{ \item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden? - \item Wie viele Runden benötigt man minimal, wenn der Zug in jedem Bahnhof halten soll? + \item Wie viele Runden benötigt man minimal, wenn der Zug an jedem Bahnsteig halten soll? + \item Der Zug fährt gerade am Bahnsteig A vorbei und hat seinen Schalthebel auf der maximalen Geschwindigkeit. Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll? } \end{enumerate} \IfLanguage{english}{Note the solution steps in a protocol!} \IfLanguage{ngerman}{Notiere die Lösungschritte in einem Protokoll!} - % \begin{center} - % \IfLanguage{english}{Example for a protocol:} - % \IfLanguage{ngerman}{Beispiel für ein Protokoll:} - % \\ - % \input{\ROOT/tables/example_protocol.tex} - % \end{center} - \task - \IfLanguage{english}{ The train (on field $0$ towards $39$) just passes through the first station and has its shift lever on maximum speed.} - \IfLanguage{ngerman}{Der Zug (auf Feld $0$ in Richtung $39$) fährt gerade durch den ersten Bahnhof durch und hat seinen Schalthebel auf der maximalen Geschwindigkeit.} - \begin{enumerate}[label=\alph*)] - \IfLanguage{english}{ - \item How many fields does the train need to come to a stop? - \item How many laps are needed if the train shall leave the track completely without stopping? - } - \IfLanguage{ngerman}{ - \item Wie viele Felder braucht der Zug, bis er zum Stehen gekommen ist? - \item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll? - } - \end{enumerate} \newpage @@ -83,38 +63,50 @@ \chapter{\IfLanguage{english}{First Stage}\IfLanguage{ngerman}{Erste Stufe}} \end{enumerate} \chapter{\IfLanguage{english}{Second Stage}\IfLanguage{ngerman}{Zweite Stufe}} - \section{\IfLanguage{english}{Block Segmentation}\IfLanguage{ngerman}{Blockteilung}} + \section{\IfLanguage{english}{Block Segmentation}\IfLanguage{ngerman}{Blockteilung}}\label{sec:Blockteilung} \setup - \IfLanguage{english}{One train and any length of line, with at least 3 complete blocks. - A block consists of: visual point, distant signal, main signal, signal clearing point and clearing distance.} - \IfLanguage{ngerman}{Ein Zug und eine beliebig lange Strecke, mit mindestens 3 vollständigen Blöcken. - Ein Block besteht aus: Sichtpunkt, Vorsignal, Hauptsignal, Signalzugschlussstelle und Räumweg.} + \IfLanguage{english}{TODO} + \IfLanguage{ngerman}{Auf einer Strecke sollen mit Blocklogik verschiedene Züge verkehren können! Dafür wird benötigt:} + \begin{itemize} + \IfLanguage{english}{ + \item\todo{} + } + \IfLanguage{ngerman}{ + \item eine beliebig lange Strecke + \item 3 vollständige Blöcke mit Vorsignal, Hauptsignal und Signalzugschlussstelle. + \item mindestens ein Zug + } + \end{itemize} \task \begin{enumerate}[label=\alph*)] \IfLanguage{english}{ + \item\todo{} \item Place the distant and main signals so that \SI{160}{\kilo\metre\per\hour} can be driven and bad visibility does not lead to impairment! \item How many laps is a block occupied with a train run minimally (complete blocking time)? } \IfLanguage{ngerman}{ - \item Platziere die Vor- und Hauptsignale mindestens so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt! - \item Wie viele Runden ist ein Block mit einer Zugfahrt minimal belegt (vollständige Sperrzeit)? + \item Platziere die Vorsignale, Hauptsignale und Signalzugschlussstelle so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt! + \item Wie viele Runden dauert die vollständige Sperrzeit für die Fahrt durch einen Block (Sichtzeit, Annährungszeit, Fahrzeit im Block, Räumzeit)? } \end{enumerate} \section{\IfLanguage{english}{Traffic Flow}\IfLanguage{ngerman}{Verkehrsfluss}} \setup + \IfLanguage{english}{TODO} + \IfLanguage{ngerman}{Auf einer Strecke sollen mit Blocklogik verschiedene Züge verkehren! Dafür wird benötigt:} \begin{itemize} \IfLanguage{english}{ + \item\todo{} \item Two different trains with different train dynamics. \item A track with at least 3 complete blocks. - \item Trains enter the system at the beginning of the track. At the end of the track trains exit the system. The infrastructure before and after the line is neglected. } \IfLanguage{ngerman}{ - \item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik. - \item Eine Strecke, mit mindestens 3 vollständigen Blöcken. - \item Am Anfang der Strecke brechen Züge ein. Am Ende der Strecke brechen Züge aus. Die Infrastruktur vor und nach der Strecke wird vernachlässigt. + \item zwei Züge mit verschiedener Fahrdynamik + \item die Strecke aus Abschnitt \ref{sec:Blockteilung} } \end{itemize} + \IfLanguage{english}{Trains enter the system at the beginning of the track; trains exit the system at the end of the track. The infrastructure before and after the line is neglected.} + \IfLanguage{ngerman}{Am Anfang der Strecke brechen Züge ein; am Ende der Strecke brechen Züge aus. Die Infrastruktur vor und nach der Strecke wird vernachlässigt.} \task \begin{enumerate}[label=\alph*)] \IfLanguage{english}{ @@ -131,63 +123,100 @@ \chapter{\IfLanguage{english}{Second Stage}\IfLanguage{ngerman}{Zweite Stufe}} \chapter{\IfLanguage{english}{Third Stage}\IfLanguage{ngerman}{Dritte Stufe}} \section{\IfLanguage{english}{Route Locking}\IfLanguage{ngerman}{Fahrstraßenverschluss und -festlegung}} \setup + \IfLanguage{english}{TODO} + \IfLanguage{ngerman}{Die Zugfolge zwischen zwei Bahnhöfen mit Weichen soll betrachtet werden! Dafür wird benötigt:} \begin{itemize} \IfLanguage{english}{ + \item\todo{} \item Two different trains with different vehicle dynamics. \item A line with at least two complete blocks. \item A station with routes at the beginning and end of the line. \item The trains start at the first station and are supposed to run to the second one. } \IfLanguage{ngerman}{ - \item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik. - \item Eine Strecke, mit mindestens 2 vollständigen Blöcken. - \item Je ein Bahnhof mit Fahrstraßen am Begin und Ende der Strecke. - \item Die Züge stehen zu Beginn im ersten Bahnhof und sollen in den zweiten Fahren. + \item Infrastruktur wie unten abgebildet mit mindestens \emph{zwei} vollständigen Blöcke + \item zwei Züge mit verschiedener Fahrdynamik im Bahnhof A } \end{itemize} + \begin{center} + \tikzfigure[0.7\textwidth]{challenge3_setup1.tikz} + \end{center} \IfLanguage{english}{The turnouts may only be passed at \SI{80}{\kilo\metre\per\hour} along the branching track. The speed in the straight track is not limited.} \IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang jeweils nur mit \SI{80}{\kilo\metre\per\hour} befahren werden. Im durchgehenden Strang ist die Geschwindigkeit nicht begrenzt.}\\[0.25cm] - \tikzfigure{challenge3_setup1.tikz} \task \begin{enumerate}[label=\alph*)] - \IfLanguage{english}{ + \IfLanguage{english}{ + \item\todo{} \item Pick a train to leave and explain why not the other one! \item How many laps does it take for the second train to depart? \item How many laps does it take for both trains (sum of the laps of train 1 and train 2) to arrive at the destination station? } \IfLanguage{ngerman}{ + \item Ergänze die Infrastruktur mit Vorsignalen, Blocksignalen, Fahrstraßensignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen! \item Wähle den Zug aus, der als erster abfahren soll und begründe! \item Wie viele Runden dauert es bis der zweite Zug abfahren kann? \item Wie viele Runden dauert es bis beide Züge (Summe der Runden von Zug 1 und Zug 2) im Zielbahnhof angekommen sind? } \end{enumerate} + \newpage + \section{\IfLanguage{english}{Overlap}\IfLanguage{ngerman}{Durchrutschweg}} \setup \IfLanguage{english}{TODO!} - \IfLanguage{ngerman}{In einem Bahnhof (zwei Gleise, drei Weichen gemäß Skizze) sollen sich zwei Züge kreuzen. Der Zug von links (Zug 1) ist etwa 25 Felder vom Einfahrsignal entfernt, fährt mit maximaler Geschwindigkeit und hat keinen Verkehrshalt im Bahnhof. Der Zug von rechts (Zug 2) befindet sich etwa 15 Felder vor dem Einfahrsignal, fährt ebenfalls mit maximaler Geschwindigkeit und hat einen Verkehrshalt (min. 2 Runden) im Bahnhof. Fahrstraßen sind keine eingestellt. Die Weichen können im abzweigenden Strang mit \SI{80}{\kilo\metre\per\hour} befahren werden.}\\[0.25cm] - \tikzfigure{challenge3_setup2.tikz} + \IfLanguage{ngerman}{In einem Bahnhof sollen sich zwei Züge kreuzen! Dafür wird benötigt:} + \begin{itemize} + \IfLanguage{english}{ + \item\todo{} + } + \IfLanguage{ngerman}{ + \item Infrastruktur wie unten abgebildet + \item zwei Züge mit verschiedener Fahrdynamik in Fahrt mit maximaler Geschwindigkeit + \item Zug 1 fährt ohne Halt durch; Zug 2 hat einen Verkehrshalt von 2 Runden im Bahnhof + } + \end{itemize} + \begin{center} + \tikzfigure{challenge3_setup2.tikz} + \end{center} + \IfLanguage{english}{The turnouts may be passed at \SI{80}{\kilo\metre\per\hour} at the branching track. The overlap requires 2 fields.} + \IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang mit \SI{80}{\kilo\metre\per\hour} befahren werden. Der Durchrutschweg beträgt 2 Felder.}\\[0.25cm] + \task \begin{enumerate}[label=\alph*)] \IfLanguage{english}{ - \item TODO! + \item\todo{}! } \IfLanguage{ngerman}{ + \item Ergänze die Infrastruktur mit Vorsignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen! \item Entscheide begründet welcher Zug auf welches Gleis fahren soll. Welche Probleme können auftreten? \item Nach wie viel Runden ist Zug 2 im Bahnhof zum stehen gekommen? \item Nach wie viel Runden hat Zug 1 den Bahnhof vollständig verlassen? + \item Fertige vom Bahnhof einen Verschlussplan an! } \end{enumerate} + \newpage + \section{\IfLanguage{english}{Dual protection points}\IfLanguage{ngerman}{Zwieschutzweiche}} \setup \IfLanguage{english}{TODO!} - \IfLanguage{ngerman}{Zwei Züge stehen im Startbahnhof (drei Gleise, drei Weichen mit Zwischutzweiche in der Mitte gemäß Skizze) vor den Ausfahrsignalen. Am Bahnhofskopf beginnt eine zweigleisige Strecke. Von der Strecke (ca. 20 Felder entfernt) nähert sich Zug 3. Zug 3 soll im Bahnhof einfahren. Die Züge 1 und 2 sollen vom Bahnhof auf die Strecke ausfahren (Rechtsfahrbetrieb).}\\[0.25cm] - \tikzfigure{challenge3_setup3.tikz} + \IfLanguage{ngerman}{In einem Bahnhof mit Zwieschutzweiche begegenen sich Züge. Dafür wird benötigt:}\\[0.25cm] + \begin{itemize} + \IfLanguage{english}{ + \item\todo{} + } + \IfLanguage{ngerman}{ + \item Infrastruktur wie unten abgebildet (Rechtsfahrbetrieb) + \item drei Züge: Zug 1 und 2 stehen; Zug 3 fährt mit maximaler Geschwindigkeit + } + \end{itemize} + \begin{center} + \tikzfigure{challenge3_setup3.tikz} + \end{center} \task \begin{enumerate}[label=\alph*)] \IfLanguage{english}{ - \item TODO! + \item\todo{}! } \IfLanguage{ngerman}{ \item Sichere die Ausfahrstraße für Zug 1! diff --git a/mainmatter/manual.tex b/mainmatter/manual.tex index b1fa87f..5e636ef 100644 --- a/mainmatter/manual.tex +++ b/mainmatter/manual.tex @@ -6,74 +6,79 @@ \part{\IfLanguage{english}{Manual}\IfLanguage{ngerman}{Anleitung}} -\chapter{\IfLanguage{english}{Setup of a Line}\IfLanguage{ngerman}{Aufbau der Strecke}} - \noindent - \IfLanguage{english}{The line consists of any number of spaces. Signals or platforms can be arranged along the line.} - \IfLanguage{ngerman}{Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.} - \\[0.5cm] - \tikzfigure{composition.tikz} - -\chapter{\IfLanguage{english}{Signal Aspects}\IfLanguage{ngerman}{Signalbegriffe}} - \noindent - \IfLanguage{english}{The main signal may only show the proceed aspect if there is no train in the following block section (from track vacancy detector to track vacancy detector). - The distant signal is located in front of the main signal in braking distance and reflects the signal aspect of the main signal.} - \IfLanguage{ngerman}{Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist. - Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal.} - \begin{center} - \input{\ROOT/tables/signal_aspects.tex} - \end{center} - -\chapter{\IfLanguage{english}{Simulation of Driving Dynamics}\IfLanguage{ngerman}{Simulation der Fahrdynamik}}\label{sec:Simulation_Driving_Dynamics} - \noindent - \IfLanguage{english}{The simulation is based on laps.\\ Each round consists of at least two consecutive steps:} - \IfLanguage{ngerman}{Die Simulation erfolgt Rundenbasiert.\\ Jede Runde besteht aus mindestens zwei aufeinanderfolgenden Schritten:} - \begin{enumerate} - \IfLanguage{english}{ - \item The train makes the movement set in the previous round. - \item All signals are set according to the track occupancy. - \item (optional) A new shift lever position can be chosen. - } - \IfLanguage{ngerman}{ - \item Der Zug macht die Bewegung, die in der vorhergehenden Runde gesetzt wurde. - \item Alle Signale werden entsprechend der Gleisbelegung eingestellt. - \item (optional) Eine neue Schalthebelposition kann gewählt werden. - } - \end{enumerate} - \IfLanguage{english}{At the start of the game, the train stands still. Shift lever positions start at the ``$0$'' field. - The different train dynamics are depicted by different possible movements of the shift lever.} - \IfLanguage{ngerman}{Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''. - Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet.} - -\chapter{\IfLanguage{english}{Example}\IfLanguage{ngerman}{Beispiel}} - \IfLanguage{english}{The shift lever is moved along the green arrows. Shift lever positions for a passenger train:} - \IfLanguage{ngerman}{Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug:} - \begin{center} - \tikzfigure[0.8\textwidth]{control_lever.tikz} - \end{center} - \vspace*{0.5cm} - \IfLanguage{english}{A train is supposed to accelerate on the following track:} - \IfLanguage{ngerman}{Ein Zug soll auf folgender Strecke beschleunigen:} - \\ - \tikzfigure{initial_setup.tikz} - \\[0.5cm] - \IfLanguage{english}{ For the course of the learning game, we start with the first round and follow the process from the previous section \emph{\nameref{sec:Simulation_Driving_Dynamics}}. - In the first round, the train from the initial condition stands still. In the example there are no signals that can be set. - We can move the shift lever by one position to \SI{40}{\kilo\metre\per\hour} forward. The round is over.} - \IfLanguage{ngerman}{Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{\nameref{sec:Simulation_Driving_Dynamics}}. - In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können. - Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet.} - - \IfLanguage{english}{ The second round begins with the execution of the movement one field to the right. - The shift lever can be moved on and the round is over. - The third round begins with the execution of the movement by \emph{two} fields to the right. - The shift lever can be moved on again and the round is over. - Continue until the position of \SI{120}{\kilo\metre\per\hour} is reached and the train moves evenly with three fields per round.} - \IfLanguage{ngerman}{Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts. - Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet. - Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts. - Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet. - Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.} - \\[0.5cm] - \input{\ROOT/tables/example_movement.tex} - - +\chapter{\IfLanguage{english}{Simulation}\IfLanguage{ngerman}{Simulation}}\label{sec:Simulation} + + \section{\IfLanguage{english}{Line setup}\IfLanguage{ngerman}{Aufbau der Strecke}} + \IfLanguage{english}{The line consists of any number of spaces. Signals or platforms can be arranged along the line.} + \IfLanguage{ngerman}{Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.} + \\[0.5cm] + \tikzfigure{composition.tikz} + + \section{\IfLanguage{english}{Trains}\IfLanguage{ngerman}{Züge}} + \todo{} (nur Zugfahrten, keine Rangierfahrten) + + \section{\IfLanguage{english}{Round sequence}\IfLanguage{ngerman}{Rundenablauf}} + \IfLanguage{english}{The simulation is based on rounds. Each round consists of at least two consecutive steps:} + \IfLanguage{ngerman}{Die Simulation erfolgt Rundenbasiert. Jede Runde besteht aus aufeinanderfolgenden Schritten:} + + \input{\ROOT/src/game_procedure.tex} + + \IfLanguage{english}{At the start of the game, the train stands still. Shift lever positions start at the ``$0$'' field. + The different train dynamics are depicted by different possible movements of the shift lever.} + \IfLanguage{ngerman}{Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''. + Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet.} + + \section{\IfLanguage{english}{Example of a simulated train movements}\IfLanguage{ngerman}{Beispiel einer simulierten Zugbewegung}} + \IfLanguage{english}{The shift lever is moved along the green arrows. Shift lever positions for a passenger train:} + \IfLanguage{ngerman}{Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug:} + \begin{center} + \tikzfigure[0.8\textwidth]{control_lever.tikz} + \end{center} + \vspace*{0.5cm} + \IfLanguage{english}{A train is supposed to accelerate on the following track:} + \IfLanguage{ngerman}{Ein Zug soll auf folgender Strecke beschleunigen:} + \\ + \tikzfigure{initial_setup.tikz} + \\[0.5cm] + \IfLanguage{english}{ For the course of the learning game, we start with the first round and follow the process from the previous section \emph{\nameref{sec:Simulation}}. + In the first round, the train from the initial condition stands still. In the example there are no signals that can be set. + We can move the shift lever by one position to \SI{40}{\kilo\metre\per\hour} forward. The round is over.} + \IfLanguage{ngerman}{Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{\nameref{sec:Simulation}}. + In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können. + Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet.} + + \IfLanguage{english}{ The second round begins with the execution of the movement one field to the right. + The shift lever can be moved on and the round is over. + The third round begins with the execution of the movement by \emph{two} fields to the right. + The shift lever can be moved on again and the round is over. + Continue until the position of \SI{120}{\kilo\metre\per\hour} is reached and the train moves evenly with three fields per round.} + \IfLanguage{ngerman}{Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts. + Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet. + Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts. + Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet. + Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.} + \\[0.5cm] + \input{\ROOT/tables/example_movement.tex} + +\chapter{\IfLanguage{english}{Block section}\IfLanguage{ngerman}{Blockteilung}} + + \section{\IfLanguage{english}{Block section setup}\IfLanguage{ngerman}{Anordnung von Blocken}} + \IfLanguage{english}{The main signal may only show the proceed aspect if there is no train in the following block section (from track vacancy detector to track vacancy detector). + The distant signal is located in front of the main signal in braking distance and reflects the signal aspect of the main signal.} + \IfLanguage{ngerman}{Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist. + Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal.} + \begin{center} + \input{\ROOT/tables/signal_aspects.tex} + \end{center} + + \section{\IfLanguage{english}{Example of a train running through a block}\IfLanguage{ngerman}{Beispiel einer Zugfahrt durch einen Block}} + \todo{} + + +\chapter{\IfLanguage{english}{routes}\IfLanguage{ngerman}{Fahrstraßen}} + + \section{\IfLanguage{english}{route setup}\IfLanguage{ngerman}{Anordnung von Fahrstraßen}} + \todo{} + + \section{\IfLanguage{english}{Example of a train using a route}\IfLanguage{ngerman}{Beispiel einer Zugfahrt durch eine Fahrstraße}} + \todo{} diff --git a/material/block_signals.pdf b/material/block_signals.pdf index ed71678..70f1560 100644 Binary files a/material/block_signals.pdf and b/material/block_signals.pdf differ diff --git a/material/fast_train.pdf b/material/fast_train.pdf index 236ca59..a91e164 100644 Binary files a/material/fast_train.pdf and b/material/fast_train.pdf differ diff --git a/material/fast_train.tex b/material/fast_train.tex index fd8b234..26886b0 100644 --- a/material/fast_train.tex +++ b/material/fast_train.tex @@ -13,7 +13,7 @@ \input{\ROOT/src/material_header.tex} \input{\ROOT/src/colors.tex} -\input{\ROOT/src/signals.tikz} +\input{\ROOT/src/signal_aspects.tikz} \newlength{\trainlength}\setlength{\trainlength}{20cm} \newlength{\trainheight}\setlength{\trainheight}{3cm} diff --git a/material/freight_train.pdf b/material/freight_train.pdf index 3752590..1614e6a 100644 Binary files a/material/freight_train.pdf and b/material/freight_train.pdf differ diff --git a/material/freight_train.tex b/material/freight_train.tex index 7c5e1b0..f45092f 100644 --- a/material/freight_train.tex +++ b/material/freight_train.tex @@ -13,7 +13,7 @@ \input{\ROOT/src/material_header.tex} \input{\ROOT/src/colors.tex} -\input{\ROOT/src/signals.tikz} +\input{\ROOT/src/signal_aspects.tikz} \newlength{\trainlength}\setlength{\trainlength}{20cm} \newlength{\trainheight}\setlength{\trainheight}{3cm} @@ -33,8 +33,12 @@ \draw[<-,>=latex,line width=1.5pt,green] (10.5,2) .. controls (11,2.5) and (12,2.5) .. (12.5,2); \draw[<-,>=latex,line width=1.5pt,green] (13.5,2) .. controls (14,2.5) and (15,2.5) .. (15.5,2); % lever positiions - \foreach \x in {0,3,6,9,12,15} + \foreach \x in {0,6,12,15} \draw [fill=white] (\x,0) rectangle ++(2,2); + \foreach \x in {3,9} { + \draw [fill=white] (\x,1.1) rectangle ++(2,0.9); + \draw [fill=white] (\x,0 ) rectangle ++(2,0.9); + }; % labels \node[align=center] at ( 1,1.6) {\si{\kilo\metre\per\hour}}; \node[align=center] at ( 1,1 ) {\Huge $0$}; @@ -42,20 +46,28 @@ \IfLanguage{english}{fields} \IfLanguage{ngerman}{Felder} }; - \node[align=center] at ( 4,1) {\Large \color{blue} - \IfLanguage{english}{\Large \color{blue} suspend\\\Large \color{blue} a\\\Large \color{blue} round} - \IfLanguage{ngerman}{\Large \color{blue} eine\\\Large \color{blue} Runde\\\Large \color{blue} aussetzen} + \node[align=center] at ( 4,0.5) {\Large \color{blue} $0$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + }; + \node[align=center] at ( 4,1.5) {\Large \color{blue} $1$ + \IfLanguage{english}{field} + \IfLanguage{ngerman}{Feld} }; \node[align=center] at ( 7,1.6) {\si{\kilo\metre\per\hour}}; \node[align=center] at ( 7,1 ) {\Huge $40$}; \node[align=center] at ( 7,0.3) {\Large \color{blue} $1$ + \IfLanguage{english}{field} + \IfLanguage{ngerman}{Feld} + }; + \node[align=center] at (10,0.5) {\Large \color{blue} $1$ + \IfLanguage{english}{field} + \IfLanguage{ngerman}{Feld} + }; + \node[align=center] at (10,1.5) {\Large \color{blue} $2$ \IfLanguage{english}{fields} \IfLanguage{ngerman}{Felder} }; - \node[align=center] at (10,1) {\Large \color{blue} - \IfLanguage{english}{\Large \color{blue} suspend\\\Large \color{blue} a\\\Large \color{blue} round} - \IfLanguage{ngerman}{\Large \color{blue} eine\\\Large \color{blue} Runde\\\Large \color{blue} aussetzen} - }; \node[align=center] at (13,1.6) {\si{\kilo\metre\per\hour}}; \node[align=center] at (13,1 ) {\Huge $80$}; \node[align=center] at (13,0.3) {\Large \color{blue} $2$ diff --git a/material/local_train.pdf b/material/local_train.pdf index f18e744..0a9070c 100644 Binary files a/material/local_train.pdf and b/material/local_train.pdf differ diff --git a/material/local_train.tex b/material/local_train.tex index f260ea2..7c8f541 100644 --- a/material/local_train.tex +++ b/material/local_train.tex @@ -13,9 +13,9 @@ \input{\ROOT/src/material_header.tex} \input{\ROOT/src/colors.tex} -\input{\ROOT/src/signals.tikz} +\input{\ROOT/src/signal_aspects.tikz} -\newlength{\trainlength}\setlength{\trainlength}{20cm} +\newlength{\trainlength}\setlength{\trainlength}{12cm} \newlength{\trainheight}\setlength{\trainheight}{3cm} \newlength{\trainwidth}\setlength{\trainwidth}{4cm} diff --git a/material/protocol.pdf b/material/protocol.pdf index 16d95ab..d34bdc1 100644 Binary files a/material/protocol.pdf and b/material/protocol.pdf differ diff --git a/material/protocol.tex b/material/protocol.tex index bab8140..9355ff1 100644 --- a/material/protocol.tex +++ b/material/protocol.tex @@ -5,28 +5,34 @@ \documentclass[ % draft, - paper=a4, - version=3.25, - pagesize=pdftex, - twoside=false, - DIV=12, - headinclude=true, - footinclude=false, - toc=listof, + paper=a4 ]{scrartcl} +\usepackage{fullpage} + \def\ROOT{./..} \input{\ROOT/src/handbook_header.tex} \begin{document} \selectlanguage{ngerman} % currently supported: english, ngerman - \thispagestyle{empty} + \pagestyle{empty} + \begin{center} \IfLanguage{english}{\Large protocol} \IfLanguage{ngerman}{\Large Protokoll} \\ \vfil\normalsize \input{\ROOT/tables/protocol.tex} + \vfil + + \newpage + + \IfLanguage{english}{\Large protocol} + \IfLanguage{ngerman}{\Large Protokoll} + \\ + \vfil\normalsize + \input{\ROOT/tables/protocol.tex} + \vfil \end{center} \end{document} \ No newline at end of file diff --git a/material/route_locking_matrix.pdf b/material/route_locking_matrix.pdf new file mode 100644 index 0000000..6bc80e3 Binary files /dev/null and b/material/route_locking_matrix.pdf differ diff --git a/material/route_locking_matrix.tex b/material/route_locking_matrix.tex new file mode 100644 index 0000000..4029555 --- /dev/null +++ b/material/route_locking_matrix.tex @@ -0,0 +1,31 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[ + % draft, + paper=a4, + landscape, +]{scrartcl} + +\usepackage{fullpage} + +\def\ROOT{./..} +\input{\ROOT/src/handbook_header.tex} + +\begin{document} + \selectlanguage{ngerman} % currently supported: english, ngerman + + \pagestyle{empty} + + \begin{center} + \IfLanguage{english}{\Large route locking matrix} + \IfLanguage{ngerman}{\Large Verschlussplan} + \\\normalsize + \tikzfigure[0.8\linewidth]{challenge3_layout2.tikz} + \vfil + \input{\ROOT/tables/route_locking_matrix.tex} + Legende: R -- Rechtslage, L -- Linkslage, X -- Verschlossen. + \end{center} +\end{document} \ No newline at end of file diff --git a/material/route_signal_token.pdf b/material/route_signal_token.pdf new file mode 100644 index 0000000..bd464e1 Binary files /dev/null and b/material/route_signal_token.pdf differ diff --git a/material/route_signal_token.tex b/material/route_signal_token.tex new file mode 100644 index 0000000..d421827 --- /dev/null +++ b/material/route_signal_token.tex @@ -0,0 +1,51 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass{beamer} +\usepackage[ + size=a4, +]{beamerposter} +\beamertemplatenavigationsymbolsempty + +\def\ROOT{./..} +\input{\ROOT/src/material_header.tex} +\input{\ROOT/src/colors.tex} +% \input{\ROOT/src/hyperref.tex} + +\newlength{\tokenradius}\setlength{\tokenradius}{1cm} % default 1cm +\newlength{\tokenheight}\setlength{\tokenheight}{2cm} % default 2cm + +\tikzset{ + pics/route_signal_go_token/.style args={#1}{ + code={ + % signal aspect + \draw[fill=#1] (0,0) circle [radius=\tokenradius]; % signal aspect + \draw[double] (-\tokenradius,0) -- ++(2\tokenradius,0); % signal aspect + + % corpus + \draw[fill=base1!50] (\tokenradius,1.5\tokenradius) rectangle ++(6.283186\tokenradius,\tokenheight); + % adhesive edge + \tikzset{every path/.style={thin,base1}} + \draw (\tokenradius,1.5\tokenradius) -- ++(-0.5\tokenheight,0.25\tokenheight) -- ++(0,0.5\tokenheight) -- ++(0.5\tokenheight,0.25\tokenheight); + \draw (\tokenradius,1.5\tokenradius) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight) -- ++(0.241661\tokenradius,-0.5\tokenheight) -- ++(0.241661\tokenradius,0.5\tokenheight); + + } + }, + pics/route_signal_go_token/.default=signalgreen, +} + +\begin{document} + \selectlanguage{english} % currently supported: english, ngerman + \tikzset{every path/.style={ultra thick}} + \begin{frame} + \vfill + \begin{tikzpicture}[font=\sffamily] + \foreach \x in {0,9.5,19} + \foreach \y in {0,5,10,15} + \pic at (\x,\y) {route_signal_go_token}; + \end{tikzpicture} + \vfil + \end{frame} +\end{document} \ No newline at end of file diff --git a/material/set_list.tex b/material/set_list.tex new file mode 100644 index 0000000..f8fc951 --- /dev/null +++ b/material/set_list.tex @@ -0,0 +1,52 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[ + % draft, + paper=a4, + version=3.25, + pagesize=pdftex, + twoside=false, + DIV=12, + headinclude=true, + footinclude=false, + toc=listof, +]{scrartcl} + +\def\ROOT{./..} +\input{\ROOT/src/handbook_header.tex} + +\begin{document} + \selectlanguage{ngerman} % currently supported: english, ngerman + + \thispagestyle{empty} + \begin{center} + \IfLanguage{english}{\Large Set List} + \IfLanguage{ngerman}{\Large Liste für ein Set} + \\ + handbook - 16/8 sheets of normal paper + protocol - hand-full of normal paper + predefined track with plattforms - 4 sheets of WHITE thick paper (appr. 200g/sqm) + plain track - 3 sheets of WHITE thick paper (appr. 200g/sqm) + plattforms - 1 sheets of WHITE thick paper (appr. 200g/sqm) + distant signals - 1 sheets of WHITE thick paper (appr. 200g/sqm) + block signals - 1 sheets of WHITE thick paper (appr. 200g/sqm) + route signals - 1 sheets of WHITE thick paper (appr. 200g/sqm) + clearing points - 1 sheets of WHITE thick paper (appr. 200g/sqm) + + turnout base - 3 sheets of WHITE thick paper (appr. 200g/sqm) + turnout point - 3 sheets of WHITE thick paper (appr. 200g/sqm) + - 3 brass fastener + turnout token - 1 sheets of WHITE thick paper (appr. 200g/sqm) + + + local train - 2 sheets of YELLOW thick paper (appr. 200g/sqm) + fast train - 2 sheets of RED thick paper (appr. 200g/sqm) + freight train - 3 sheets of BLUE thick paper (appr. 200g/sqm) + - 2 double tally counters (if you find only single tally counters, thats ok) + + \vfil\normalsize + \end{center} +\end{document} \ No newline at end of file diff --git a/material/sketch.pdf b/material/sketch.pdf new file mode 100644 index 0000000..f0c1927 Binary files /dev/null and b/material/sketch.pdf differ diff --git a/material/sketch.tex b/material/sketch.tex new file mode 100644 index 0000000..4b79fc1 --- /dev/null +++ b/material/sketch.tex @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} +\usepackage[main=english,ngerman]{babel} +\usepackage{iflang} % needs babel +\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}} +\usepackage{lmodern,microtype,mathptmx,courier} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{sketch.tikz} + \end{tikzpicture} +\end{document} diff --git a/material/sketch.tikz b/material/sketch.tikz new file mode 100644 index 0000000..cef247a --- /dev/null +++ b/material/sketch.tikz @@ -0,0 +1,91 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = sketch.tex + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +% dimensons for signal construction +\def\length{2.0} +\def\height{1.5} +\def\thick{0.4} +\def\gap{0.05} +\def\depth{2.0} + +\tikzset{ + block_signal/.pic={ + % frame + \draw [thick] ( -1.5,-2.0) -- ( 1.5,-2.0) -- (1.5,-4.0) -- (-1.5,-4.0) --cycle; + }; +} +\tikzset{ + block_signal_cross_section/.pic={ + % lever + \draw [thick] (0,0) -- ++( 0,\height) -- ++(\thick,0) -- ++(0,-\height) + -- ++(\length,0) -- ++(0,-\thick) -- ++(-\length,0) -- ++(-\thick,0) -- ++(-\length,0) + -- ++(0,\thick,0) -- cycle; + % frame + \draw [thick] (-\gap,\gap) -- ++(-\length,0) + -- ++(0,-\gap) -- ++(0,-\thick) -- ++(0,-\gap) % inner height + -- ++(\gap,0) -- ++(\length,0) -- ++(\length,0) -- ++(\length,0) -- ++(\gap,0) % inner bottom + -- ++(0,\gap) -- ++(0,\thick) -- ++(0,\gap) % inner height + -- ++(-\length,0) + -- ++(0,\thick) + -- ++(\length,0) -- ++(\thick,0) + -- ++(0,-\thick) -- ++(0,-\gap) -- ++(0,-\thick) -- ++(0,-\gap) -- ++(0,-\thick) % outer height + -- ++(-\thick,0) -- ++(-\gap,0) -- ++(-\length,0) -- ++(-\length,0) -- ++(-\length,0) -- ++(-\gap,0) -- ++(-\thick,0) % outer bottom + -- ++(0,\thick) -- ++(0,\gap) -- ++(0,\thick) -- ++(0,\gap) -- ++(0,\thick) % outer height + -- ++(\length,0) -- ++(\thick,0) + -- cycle; + }; +} +\tikzset{ + block_signal_top_view/.pic={ + % lever + \draw [thick] (0,0) rectangle ++(\thick,\depth); + % frame + \draw [thick] (-\gap,0) -- ++(-\length,0) -- ++(-\thick,0) + -- ++(0,\depth) + -- ++(\length,0) -- ++(\thick,0) + -- cycle; + \draw [thick] (\length,0) -- ++(\length,0) -- ++(\thick,0) + -- ++(0,\depth) + -- ++(-\length,0) -- ++(-\thick,0) + -- cycle; + }; +} +\tikzset{ + track_straight/.pic={ + % rails + \filldraw [base1!60] (0, 1.0) rectangle ++ (14.5, 0.5); + \filldraw [base1!60] (0,-1.0) rectangle ++ (14.5,-0.5); + % frame + \draw [thick] ( 0.0,-2.0) -- ( 0.0,-0.3) -- + ( 0.7,-0.3) arc[start angle=36.6, end angle=323.4, radius=-0.5] -- + ( 0.0,0.3) -- ( 0.0,2.0) -- + (14.5,2.0) -- (14.5,0.3) -- + (15.2,0.3) arc[start angle=323.4, end angle=36.6, radius=-0.5] -- + (14.5,-0.3) -- (14.5,-2.0) -- cycle; + }; +} +\tikzset{ + track_curved/.pic={ + % % rails + % \filldraw [base1!60] (0,3.0) rectangle ++ (14.5,0.5); + % \filldraw [base1!60] (0,0.5) rectangle ++ (14.5,0.5); + % % frame: radius (center) 20,5 cm + % \draw [thick] ( 0.0,0.0) -- ( 0.0,1.7) -- + % ( 0.7,1.7) arc[start angle=36.6, end angle=323.4, radius=-0.5] -- + % ( 0.0,2.3) -- ( 0.0,4.0) -- + % (14.5,4.0) -- (14.5,2.3) -- + % (15.2,2.3) arc[start angle=323.4, end angle=36.6, radius=-0.5] -- + % (14.5,1.7) -- (14.5,0.0) -- cycle; + }; +} + +\begin{tikzpicture} + % \pic at ( 0.0,0) {track_straight}; + % \pic at (14.5,0) {track_straight}; + % \pic at (14.5,0) {block_signal}; + \pic at (14.5,4) {block_signal_cross_section}; + \pic at (14.5,0) {block_signal_top_view}; +\end{tikzpicture} diff --git a/material/turnout_tokens.pdf b/material/turnout_tokens.pdf index b59ef50..4701685 100644 Binary files a/material/turnout_tokens.pdf and b/material/turnout_tokens.pdf differ diff --git a/material/turnout_tokens.tex b/material/turnout_tokens.tex index 4eae463..1a79896 100644 --- a/material/turnout_tokens.tex +++ b/material/turnout_tokens.tex @@ -13,9 +13,11 @@ \input{\ROOT/src/material_header.tex} \input{\ROOT/src/colors.tex} -\newlength{\spacewidth}\setlength{\spacewidth}{4.2cm} -\newlength{\spacelength}\setlength{\spacelength}{8cm} -\newlength{\corpuslength}\setlength{\corpuslength}{4cm} +\newlength{\routelockerlength}\setlength{\routelockerlength}{4.3cm} % default 4cm +\newlength{\routelockerwidth}\setlength{\routelockerwidth}{2.3cm} % default 2cm +\newlength{\overlaplockerlength}\setlength{\overlaplockerlength}{3.9cm} % default 4cm +\newlength{\overlaplockerwidth}\setlength{\overlaplockerwidth}{1.9cm} % default 2cm +\newlength{\clockradius} \tikzset{ pics/key/.style args={#1}{ @@ -27,20 +29,61 @@ \filldraw[#1] ( 0.6 ,-0.1) rectangle (0.7,-0.3); } }, - pics/key/.default=black, + pics/key/.default=black!30, } \tikzset{ pics/flank_protection_symbol/.style = { code={ - \draw[<-> ,>=latex] (-0.65,-0.1) -- (0.65,-0.1); + \draw[fill] (-0.65,-0.1) circle (0.04); + \draw[fill] ( 0.65,-0.1) circle (0.04); + \draw[-> ,>=latex] (-0.65,-0.1) -- (0.65,-0.1); \draw[->|,>=latex,red] ( 0 , 0.4) -- (0 ,0 ); } }, } \tikzset{ - pics/flank_marker/.style = { + pics/route_protection_symbol/.style = { + code={ + \draw[fill] (-0.65,-0.1) circle (0.04); + \draw[fill] ( 0.65,-0.1) circle (0.04); + \draw[-> ,>=latex,red] (-0.65,-0.1) -- (0.65,-0.1); + } + }, +} + +\tikzset{ + pics/overlap_protection_symbol/.style = { + code={ + \draw[-> ,>=latex] (-0.65,-0.1) -- (0,-0.1); + \draw[-| ,red] (0,-0.1) -- (0.65,-0.1); + \filldraw[red] ( 0,-0.1) circle (0.04); + } + }, +} + +\tikzset{ + pics/clock/.style args={#1}{ + code={ + \setlength{\clockradius}{#1} + + \draw[fill=white] (0,0) circle [radius=\clockradius]; + \foreach \angle [count=\x] in {60,30,0,...,-270} { + \draw[line width=0.05\clockradius] (\angle:0.92\clockradius) -- (\angle:\clockradius); + % \node[inner sep=0,anchor=\angle] at (\angle:0.89\radius) {\tiny \textbf{\x}}; + } + % draw hands on clock + \draw[color=black,line width=0.027\clockradius] (0,0) -- (90:0.8\clockradius); + \draw[color=red,line width=0.02\clockradius] (0,0) -- (-45:0.85\clockradius); + \filldraw[color=red] (0,0) circle [radius=0.05\clockradius]; + } + }, + pics/clock/.default={2cm}, +} + +\tikzset{ + pics/flank_locker/.style = { code={ % drawing \draw (0,0) rectangle ( 2, 2); @@ -49,7 +92,9 @@ \draw (2,2) rectangle ( 4, 0); \draw (0,0) rectangle (-2, 2); % + \pic[scale=0.75,rotate=180] at (1, 3.15) {key}; \pic at (1,1) {flank_protection_symbol}; + \pic[scale=0.75] at (1,-0.95) {key}; % adhesive edge \tikzset{every path/.style={thin,base1}} \draw (0,0) -- ++(-1,-0.5) -- ++(0,-1) -- (0,-2); @@ -61,24 +106,51 @@ } \tikzset{ - pics/key_locker/.style = { + pics/route_locker/.style = { code={ % drawing - \draw (0,0) rectangle ( 4, 2); + \draw (0,0) rectangle ++(\routelockerlength, \routelockerwidth); % \draw (0,2) rectangle ( 4, 4); - \draw (0,2) -- (4,2) -- (4,4) -- (3.5,4) -- (3,3.5) -- (1,3.5) -- (0.5,4) -- (0,4) -- cycle; + \draw (0.25\routelockerlength,1.75\routelockerwidth) -- ++(-0.125\routelockerlength,0.25\routelockerwidth) -- ++(-0.125\routelockerlength,0) -- ++(0,-\routelockerwidth) -- ++(\routelockerlength,0) -- ++(0,\routelockerwidth) -- ++(-0.125\routelockerlength,0) -- ++(-0.125\routelockerlength,-0.25\routelockerwidth) -- cycle; % \draw (0,0) rectangle ( 4,-2); - \draw (0,0) -- (4,0) -- (4,-2) -- (3.5,-2) -- (3,-1.5) -- (1,-1.5) -- (0.5,-2) -- (0,-2) -- cycle; - \draw (4,2) rectangle ( 6, 0); - \draw (0,0) rectangle (-2, 2); + \draw (0.25\routelockerlength,-0.75\routelockerwidth) -- ++(-0.125\routelockerlength,-0.25\routelockerwidth) -- ++(-0.125\routelockerlength,0) -- ++(0,\routelockerwidth) -- ++(\routelockerlength,0) -- ++(0,-\routelockerwidth) -- ++(-0.125\routelockerlength,0) -- ++(-0.125\routelockerlength,0.25\routelockerwidth) -- cycle; + \draw (\routelockerlength,0) rectangle ++(\routelockerwidth,\routelockerwidth); + \draw (0,0) rectangle ++(-\routelockerwidth, \routelockerwidth); % - \pic at (2,1) {key}; + \pic[scale=0.75,rotate=180] at (2, 2.85) {key}; + \pic[scale=1.75] at (2,1) {route_protection_symbol}; + \pic[scale=0.75] at (2,-0.85) {key}; % adhesive edge \tikzset{every path/.style={thin,base1}} - \draw (0,0) -- ++(-1,-0.5) -- ++(0,-1) -- (0,-2); - \draw (4,0) -- ++( 1,-0.5) -- ++(0,-1) -- (4,-2); - \draw (0,2) -- ++(-1, 0.5) -- ++(0, 1) -- (0, 4); - \draw (4,2) -- ++( 1, 0.5) -- ++(0, 1) -- (4, 4); + \draw (0,0) -- ++(-0.5\routelockerwidth,-0.25\routelockerwidth) -- ++(0,-0.5\routelockerwidth) -- (0,-\routelockerwidth); + \draw (\routelockerlength,0) -- ++(0.5\routelockerwidth,-0.25\routelockerwidth) -- ++(0,-0.5\routelockerwidth) -- (\routelockerlength,-\routelockerwidth); + \draw (0,\routelockerwidth) -- ++(-0.5\routelockerwidth,0.25\routelockerwidth) -- ++(0,0.5\routelockerwidth) -- ++(0.5\routelockerwidth,0.25\routelockerwidth); + \draw (\routelockerlength,\routelockerwidth) -- ++(0.5\routelockerwidth,0.25\routelockerwidth) -- ++(0,0.5\routelockerwidth) -- (\routelockerlength,2\routelockerwidth); + } + }, +} + +\tikzset{ + pics/overlap_locker/.style = { + code={ + \draw (0,0) rectangle ++(\overlaplockerlength, \overlaplockerwidth); + % \draw (0,2) rectangle ( 4, 4); + \draw (0.25\overlaplockerlength,1.75\overlaplockerwidth) -- ++(-0.125\overlaplockerlength,0.25\overlaplockerwidth) -- ++(-0.125\overlaplockerlength,0) -- ++(0,-\overlaplockerwidth) -- ++(\overlaplockerlength,0) -- ++(0,\overlaplockerwidth) -- ++(-0.125\overlaplockerlength,0) -- ++(-0.125\overlaplockerlength,-0.25\overlaplockerwidth) -- cycle; + % \draw (0,0) rectangle ( 4,-2); + \draw (0.25\overlaplockerlength,-0.75\overlaplockerwidth) -- ++(-0.125\overlaplockerlength,-0.25\overlaplockerwidth) -- ++(-0.125\overlaplockerlength,0) -- ++(0,\overlaplockerwidth) -- ++(\overlaplockerlength,0) -- ++(0,-\overlaplockerwidth) -- ++(-0.125\overlaplockerlength,0) -- ++(-0.125\overlaplockerlength,0.25\overlaplockerwidth) -- cycle; + \draw (\overlaplockerlength,0) rectangle ++(\overlaplockerwidth,\overlaplockerwidth); + \draw (0,0) rectangle ++(-\overlaplockerwidth, \overlaplockerwidth); + % + \pic[scale=0.75,rotate=180] at (2, 2.8) {key}; + \pic at (2.5, 1.2) {clock=0.5cm}; + \pic[scale=1.75] at (2,0.5) {overlap_protection_symbol}; + \pic[scale=0.75] at (2,-0.85) {key}; + % adhesive edge + \tikzset{every path/.style={thin,base1}} + \draw (0,0) -- ++(-0.5\overlaplockerwidth,-0.25\overlaplockerwidth) -- ++(0,-0.5\overlaplockerwidth) -- (0,-\overlaplockerwidth); + \draw (\overlaplockerlength,0) -- ++(0.5\overlaplockerwidth,-0.25\overlaplockerwidth) -- ++(0,-0.5\overlaplockerwidth) -- (\overlaplockerlength,-\overlaplockerwidth); + \draw (0,\overlaplockerwidth) -- ++(-0.5\overlaplockerwidth,0.25\overlaplockerwidth) -- ++(0,0.5\overlaplockerwidth) -- ++(0.5\overlaplockerwidth,0.25\overlaplockerwidth); + \draw (\overlaplockerlength,\overlaplockerwidth) -- ++(0.5\overlaplockerwidth,0.25\overlaplockerwidth) -- ++(0,0.5\overlaplockerwidth) -- (\overlaplockerlength,2\overlaplockerwidth); } }, } @@ -90,12 +162,17 @@ \begin{tikzpicture}[remember picture,overlay,font=\sffamily] \path (current page.north west) rectangle (current page.south west); % rectangle for background to unify orientation \begin{scope}[shift={(1.5,-12)}] - \foreach \x in {0,6.2} + \foreach \x in {0} \foreach \y in {2.5,9,15.5} - \pic at (\x,\y) {flank_marker}; - \foreach \x in {12.4,20.6} + \pic at (\x,\y) {flank_locker}; + \foreach \x in {6.5} \foreach \y in {2.5,9,15.5} - \pic at (\x,\y) {key_locker}; + \pic at (\x,\y) {overlap_locker}; + \foreach \x in {17.3,24.5} + \foreach \y in {3,13} + \pic[rotate=90,transform shape] at (\x,\y) {route_locker}; + % \pic at (15,6) {route_locker}; + % \pic at (23,2) {flank_locker}; \end{scope} \end{tikzpicture} \end{frame} diff --git a/src/game_procedure.tex b/src/game_procedure.tex index 1e3408a..8cccfc8 100644 --- a/src/game_procedure.tex +++ b/src/game_procedure.tex @@ -3,9 +3,23 @@ % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. -Spiel Ablauf: +\IfLanguage{english}{Sequence per round: \begin{enumerate} - \item Den Zug entsprechend der in der letzten Runde gewählten Schalthebelposition auf dem Spielfeld bewegen!\\ (Bei “0” kein Feld). - \item Blocklogik und Infrastrukur einstellen - \item Eine neue Schalthebelposition \emph{kann} gewählt werden. + \item calling of routes (optional) + \item Set signals to CLEAR (optional) + \item Select control lever position (optional) + \item \emph{move all trains according to the control lever position!} + \item \emph{Execute stop case for signals!} + \item release of routes (optional) \end{enumerate} +} +\IfLanguage{ngerman}{Ablauf pro Runde: +\begin{enumerate} + \item Fahrstraßen bilden (optional) + \item Signale auf Fahrt stellen (optional) + \item Schalthebelposition wählen (optional) + \item \emph{alle Züge entsprechend der Schalthebelposition bewegen!} + \item \emph{Haltfall von Signalen ausführen!} + \item Fahrstraßen auflösen (optional) +\end{enumerate} +} \ No newline at end of file diff --git a/src/handbook_header.tex b/src/handbook_header.tex index 632a36a..2b7058a 100644 --- a/src/handbook_header.tex +++ b/src/handbook_header.tex @@ -1,5 +1,5 @@ %!TEX TS-program = pdflatexmk -%!TEX root = handbook.tex +%!TEX root = ../handbook.tex % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. @@ -77,11 +77,11 @@ \newcommand{\REWRITE}[1]{\todo[linecolor=magenta,backgroundcolor=magenta!20,bordercolor=magenta,noline]{\textcolor{magenta}{Rewrite:~}#1}} \newcommand{\ADDFIGURE}[1]{\missingfigure[figcolor=white]{#1}} -\newcounter{task} -\DeclareRobustCommand{\task}{\stepcounter{task}\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Task~}\IfLanguage{ngerman}{Aufgabe~}\arabic{task}}\medskip\par\noindent} +\newcounter{task}[chapter] % reset couter <> with each new chapter +\DeclareRobustCommand{\task}{\stepcounter{task}\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Task~}\IfLanguage{ngerman}{Aufgabe~}\arabic{chapter}.\arabic{task}}\medskip\par\noindent} \DeclareRobustCommand{\setup}{\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Setup}\IfLanguage{ngerman}{Ausgangssituation}}\medskip\par\noindent} -\DeclareRobustCommand{\tikzfigure}[2][\textwidth]{ +\DeclareRobustCommand{\tikzfigure}[2][0.995\textwidth]{ \begin{adjustbox}{width=#1} \begin{tikzpicture}[font=\sffamily] \input{\ROOT/figures/#2} diff --git a/tables/example_movement.tex b/tables/example_movement.tex index 396e5bb..5eeaad7 100644 --- a/tables/example_movement.tex +++ b/tables/example_movement.tex @@ -4,49 +4,32 @@ % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. -\begin{tabularx}{0.95\textwidth}{rcccX} +\begin{tabularx}{0.95\textwidth}{rccX} \toprule \IfLanguage{english}{ - Round & current & 1.Step & 2.Step & \\ - & speed & Move & shift lever & \\ - & & & on & \\ + Round & current & & \\ + & speed & Move & \\ } \IfLanguage{ngerman}{ - Runde & aktuelle & 1.Schritt & 2.Schritt & \\ - & Geschwin- & Bewegen & Schalthebel & \\ - & digkeit & um & auf & \\ + Runde & aktuelle & Bewegen & \\ + & Geschwindigkeit & um & \\ } \hline - $1$ & \SI{0}{\kilo\metre\per\hour} & - $0$ - \IfLanguage{english}{fields} - \IfLanguage{ngerman}{Felder} - & \SI{40}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example1.tikz} - \\ - $2$ & \SI{40}{\kilo\metre\per\hour} & - $1$ - \IfLanguage{english}{field} - \IfLanguage{ngerman}{Feld} - & \SI{80}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example2.tikz} - \\ - $3$ & \SI{80}{\kilo\metre\per\hour} & - $2$ - \IfLanguage{english}{fields} - \IfLanguage{ngerman}{Felder} - & \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example3.tikz} - \\ + $0$ & \SI{0}{\kilo\metre\per\hour} & + $0$ \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} & \tikzfigure[\linewidth]{movement_example1.tikz} \\ + $1$ & \SI{40}{\kilo\metre\per\hour} & + $1$ \IfLanguage{english}{field} + \IfLanguage{ngerman}{Feld} & \tikzfigure[\linewidth]{movement_example2.tikz} \\ + $2$ & \SI{80}{\kilo\metre\per\hour} & + $2$ \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} & \tikzfigure[\linewidth]{movement_example3.tikz} \\ + $3$ & \SI{120}{\kilo\metre\per\hour} & + $3$ \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} & \tikzfigure[\linewidth]{movement_example4.tikz} \\ $4$ & \SI{120}{\kilo\metre\per\hour} & - $3$ - \IfLanguage{english}{fields} - \IfLanguage{ngerman}{Felder} - & \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example4.tikz} - \\ - $5$ & \SI{120}{\kilo\metre\per\hour} & - $3$ - \IfLanguage{english}{fields} - \IfLanguage{ngerman}{Felder} - & \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example5.tikz} - \\ - etc. & & & & \\ + $3$ \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} & \tikzfigure[\linewidth]{movement_example5.tikz} \\ + etc. & & & \\ \bottomrule \end{tabularx} diff --git a/tables/protocol.tex b/tables/protocol.tex index 29b2138..7351f85 100644 --- a/tables/protocol.tex +++ b/tables/protocol.tex @@ -4,97 +4,107 @@ % Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) % You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. -\begin{tabularx}{0.99\textwidth}{c||X|X|X||X} +\begin{tabularx}{0.99\textwidth}{c||X|X|X|X} \toprule \IfLanguage{english}{ - Round & curent & (1. Step) & current position & (2. Step) \\ - & speed & Move by & head of train & shift lever at \\ + Round & set/resolve & curent & & current position \\ + & signal/route & speed & move by & head of train \\ } \IfLanguage{ngerman}{ - Runde & aktuelle & (1. Schritt)& aktuelle & (2. Schritt) \\ - & Geschwindigkeit & Bewegen um & Position Zugspitze& Schalthebel auf \\ + Runde & Signal/Fahrstraße & aktuelle & & aktuelle \\ + & einstellen/auflösen? & Geschwindigkeit & Bewegen um & Position Zugspitze \\ } \hline \IfLanguage{english}{ - $1$ & \SI{0}{\kilo\metre\per\hour}& $0$ fields & field $0$ & \\ + $0$ & & \SI{0}{\kilo\metre\per\hour}& $0$ fields & field $0$ \\ } \IfLanguage{ngerman}{ - $1$ & \SI{0}{\kilo\metre\per\hour}& $0$ Felder & Feld $0$ & \\ + $0$ & & \SI{0}{\kilo\metre\per\hour}& $0$ Felder & Feld $0$ \\ } \hline - $2$ & & & & \\ + $1$ & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ \hline - & & & & \\ + & & & & \\ + \hline + & & & & \\ + \hline + & & & & \\ + \hline + & & & & \\ + \hline + & & & & \\ + \hline + & & & & \\ \bottomrule \end{tabularx} diff --git a/tables/route_locking_matrix.tex b/tables/route_locking_matrix.tex new file mode 100644 index 0000000..2c59067 --- /dev/null +++ b/tables/route_locking_matrix.tex @@ -0,0 +1,38 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../material/route_locking_matrix.tex + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\begin{tabularx}{0.99\textwidth}{|r|*{15}{X|}} + \hline + \IfLanguage{english}{ + \todo{}!\\ + } + \IfLanguage{ngerman}{ + & \multicolumn{2}{c|}{Fahrstraße} & \multicolumn{3}{c|}{befahrene} & \multicolumn{3}{c|}{Weiche im} & \multicolumn{4}{c|}{Signal im} & \multicolumn{3}{c|}{Weiche} \\ + & \multicolumn{2}{c|}{ } & \multicolumn{3}{c|}{Weiche} & \multicolumn{3}{c|}{Flankenschutz} & \multicolumn{4}{c|}{Flankenschutz} & \multicolumn{3}{c|}{im D-Weg} \\ + Nr & von & nach & W1 & W2 & W3 & W1 & W2 & W3 & P1 & P2 & N1 & N2 & W1 & W2 & W3 \\ + } + \hline + $1$ & A & N1 & R & & & & & & & X & & & & & L \\[0.3cm] + \hline + $2$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $3$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $4$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $5$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $6$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $7$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $8$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $9$ & & & & & & & & & & & & & & & \\[0.3cm] + \hline + $10$& & & & & & & & & & & & & & & \\[0.3cm] + \hline +\end{tabularx}