Ein Satz zu Größeneinschränkung
[L-seed.git] / doc / GPN-Intro / Intro.tex
1 \documentclass[compress]{beamer}
2
3 \usetheme[footline=authortitle,compress]{GPN}
4 \usecolortheme{GPN}
5 \usepackage[german]{babel}
6 \usepackage[latin1]{inputenc}
7 \usepackage{tikz}
8 \usepackage{pgflibraryarrows}
9 \usepackage{colortbl}
10 \usepackage{listings}
11 \usepackage{pifont}
12 \usepackage{url}
13 \usepackage{hyperref}
14 \usepackage{wasysym}
15 \usepackage{amsmath}
16 \usepackage{textcomp}
17
18
19 % Listing-Definition
20 \lstset{language=Java,
21         basicstyle=\footnotesize,
22         breaklines,breakatwhitespace,prebreak=\Pisymbol{psy}{191},
23         texcl,
24         commentstyle=\color{blue},
25         stringstyle=\color{gray},
26         extendedchars=true,
27 }
28
29 \newcommand{\comp}{\leftmoon\!\!}
30
31 % \pause mit verstecken
32 \newcommand{\hide}{\onslide+<+(1)->}
33
34 \title{L-seed}
35 \author[Joachim Breitner]{Joachim Breitner}
36 \institute{\url{http://entropia.de/wiki/L-seed}}
37 %\titlegraphic{\includegraphics[width=45pt]{img/Logo}}
38 \date{26. Juni 2006}
39
40 \begin{document}
41
42 \frame[plain]{\titlepage}
43
44 %\frame{\frametitle{Unser Programm heute} \tableofcontents}
45
46 \section{Die Idee}
47 \subsection*{}
48
49 \begin{frame}
50 \frametitle{Vorbemerkung}
51 Vortragsfolien entstanden vorher, daher nicht besonders schick\dots
52 \end{frame}
53
54 \begin{frame}
55 \frametitle{Das Spiel}
56 \begin{itemize}
57 \item Dieses Jahr werden Pflanzen simuliert
58 \item Man programmiert in einer einfachen, \textit{nicht-turingmächtigen} Programmiersprache
59 \item Pflanzen können während dem Wachstum nicht beeinflusst werden
60 \item Das ganze soll chillig aussehen und sein
61 \item Es sollte schick anzusehen sein
62 \end{itemize}
63 \end{frame}
64
65 \begin{frame}
66 \frametitle{Verwendung}
67 \begin{itemize}
68 \item Auf \url{http://lseed.gpn8.entropia.de} registrieren
69 \item Dort munter Code schreiben
70 \item Integrierter Syntaxchecker!
71 \item Integrierte Vorschau!
72 \item Wenn zufrieden $\to$ als aktiv markieren
73 \item Zuschauen
74 \end{itemize}
75 \end{frame}
76
77 \begin{frame}
78 \frametitle{Die Regeln}
79 \begin{itemize}
80 \item Eine Pflanze besteht aus Zweigen, an deren Ende andere Zweige abstehen, und Blüten.
81 \item Wenn eine Pflanze gerade nicht wächst, wird \textbf{für jeden Zweig} gleichzeitig geschaut, welche Regel anwendbar ist
82 \item Regeln können abhängen von der Zweiglänge, der Größe des Teilbaums, der Richtung und des Usertags
83 \item Usertags sind Strings, die man an einen Branch hängen kann und auch ändern kann
84 \item Von allen anwendbaren Regen werden nur die mit höchster Prioriät betrachtet
85 \item Bei mehreren anwendbaren Regeln wird zufällig und ggf. gewichtet gewählt
86 \end{itemize}
87 \end{frame}
88
89 \begin{frame}
90 \frametitle{Die Regelaktionen}
91 Eine Regel gibt eine von drei Aktionen an:
92 \begin{itemize}
93 \item Wachsen
94 \begin{itemize}
95 \item mit absolut angegebener Zielgröße, absolutem Zuwachs und relativem Zuwachs
96 \end{itemize}
97 \item Abzweigen
98 \begin{itemize}
99 \item am Ende oder in der Mitte des Zweigs
100 \item ggf. mehrfach
101 \item in eine Richtung, relativ zum aktuellen Zweig
102 \item mit einer Länge für den neuen Zweig
103 \end{itemize}
104 \item Blühen, um Samen zu werfen
105 \end{itemize}
106 \end{frame}
107
108 \begin{frame}
109 \frametitle{Saisons}
110 \begin{itemize}
111 \item Eine Runde (Saison) dauert $n$ Tage à $m$ Minuten
112 \item Am Anfang werden alle (aktiven, gültigen) Genome geladen
113 \item Neue Pflanzen bekommen ggf. aktualisierten Code
114 \item Am Ende wird die Biomasse gezählt
115 \end{itemize}
116 \end{frame}
117
118
119 \begin{frame}
120 \frametitle{Licht}
121 \begin{itemize}
122 \item Zum Wachsen braucht man Licht
123 \item Licht wird von den Zweigen eingefangen
124 \item Im Schatten gibt es weniger Licht
125 \item Je mehr Licht, desto schneller das Wachstum
126 \item Je größer die Pflanze, desto langsamer das Wachstum (wird ggf. noch angepasst)
127 \item Alles aktuelles Wachstum findet gleichzeitig statt und wird gleichzeitig beendet
128 \end{itemize}
129 \end{frame}
130
131
132 \section{Beispiele}
133 \subsection*{}
134
135 \begin{frame}[fragile]
136 \frametitle{Die triviale Pflanze}
137 \begin{lstlisting}
138 // This is the trivial plant, which just grows and grows
139 RULE "Very simple Rule"
140 GROW BY 1
141 \end{lstlisting}
142 \pause
143 Man sieht:
144 \begin{itemize}
145 \item Java-Style-Kommentare
146 \item Whitespace ist unsignifikant
147 \item Strings in Anführungszeichen oder einfach ein Wort
148 \end{itemize}
149 \end{frame}
150
151 \begin{frame}[fragile]
152 \frametitle{Branching}
153 \begin{lstlisting}
154 Rule "Growing"
155 Grow by 2
156 Weight 2
157
158 Rule "Right"
159 Branch At 50% Angle = 45°, Length = 1
160 Weight 1
161
162 Rule "Left"
163 Branch At 100% Angle = -45°, Length = 1
164 Weight 1
165 \end{lstlisting}
166 \pause
167 Man sieht:
168 \begin{itemize}
169 \item Verwendung von Gewichten
170 \end{itemize}
171 \end{frame}
172
173 \begin{frame}[fragile]
174 \frametitle{Regel-Bedingungen}
175 \begin{lstlisting}
176 Rule "Start"
177 WHEN Length <= 0
178 BRANCH AT 100% ANGLE = 30°, LENGTH = 0.5
179                ANGLE = -30°, LENGTH = 0.5
180 RULE "Links"
181 WHEN Direction > 0 AND Direction < 140°
182 BRANCH AT 100% ANGLE = 30°, LENGTH = 0.5
183 RULE "Zurück"
184 WHEN Direction >= 140°
185 BRANCH AT 100% ANGLE = -120°, LENGTH = 0.5
186 RULE "Rechts"
187 WHEN Direction < 0 AND Direction > -140°
188 BRANCH AT 100% ANGLE = -30°, LENGTH = 0.5
189 RULE "Zurück"
190 WHEN Direction <= -140°
191 BRANCH AT 100% ANGLE = 120°, LENGTH = 0.5
192 \end{lstlisting}
193 \end{frame}
194
195 \begin{frame}[fragile]
196 \frametitle{Usertags}
197 \begin{lstlisting}
198 RULE "Start" WHEN Length <= 0
199 GROW BY 1 SET TAG = "Root1"
200
201 RULE "Story 1" WHEN TAG = "Root1"
202 BRANCH ANGLE = 70°, LENGTH = 2, Tag = ""
203        ANGLE = -70°, LENGTH = 2, Tag = ""
204        ANGLE = 0°, LENGTH = 1, TAG = "Root2"
205 SET TAG = ""
206 RULE "Story 2" WHEN TAG = "Root2"
207 BRANCH AT 100% ANGLE = 70°, LENGTH = 1.5, Tag = ""
208                ANGLE = -70°, LENGTH = 1.5, Tag = ""
209                ANGLE = 0°, LENGTH = 1, TAG = "Root3"
210 SET TAG = ""
211 RULE "Story 3" WHEN TAG = "Root3"
212 BRANCH AT 100% ANGLE = 70°, LENGTH = 1, Tag = ""
213                ANGLE = -70°, LENGTH = 1, Tag = ""
214                ANGLE = 0°, LENGTH = 1, TAG = "Tip"
215 SET TAG = ""
216 RULE "Star" WHEN TAG = "Tip" Blossom
217 \end{lstlisting}
218 \end{frame}
219
220 \begin{frame}
221 \frametitle{Usertags}
222 Man sah:
223 \begin{itemize}
224 \item Verwendung von Usertags
225 \item Zeilenumbrüche nicht relevant
226 \item Fortpflanzung
227 \end{itemize}
228 \end{frame}
229
230 \section{Und nun?}
231 \subsection*{}
232
233 \begin{frame}
234 \frametitle{Und nun?}
235 \begin{itemize}
236 \item Pflanzen wachsen lassen, die möglichst groß werden.
237 \item Pflanzen wachsen lassen, die möglichst schön sind.
238 \pause
239 \item Coden!
240 \begin{itemize}
241 \item Schönere Graphik (Haskell, Cairo, ggf. OpenGL)
242 \item Web-Frontend debuggen und aufmöbeln (etwa mehrere Pflanzen gleichzeitig bearbeiten)
243 (PHP, Javascript, ExtJs)
244 \item Sonstiges features
245 \end{itemize}
246 \item \url{http://git.nomeata.de/} bzw. \url{http://lseed.gpn8.entropia.de/git}
247 \end{itemize}
248 \end{frame}
249
250 \begin{frame}
251 \begin{center}
252 Fragen?
253 \end{center}
254 \end{frame}
255
256
257 \section*{\ } % hack to make my navi work
258 \setbeamercolor{normal text}{bg=black}
259 \frame[plain]{
260 \begin{center}  \includegraphics[height=\textheight]{Endbild}\end{center}
261 }
262
263 \end{document}