aboutsummaryrefslogtreecommitdiff
path: root/Info
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-01-06 11:10:35 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2026-01-06 11:23:01 +0100
commitfeaf01491f1fa9c21eb880c5e089b784e2f710b8 (patch)
treea8f741ed761e601ade67e0cf3df81439f5be1f9d /Info
parent6bfa9e0d3bf7f2fa4794fcf61c0ddeabdd74d28e (diff)
downloadunterricht-feaf01491f1fa9c21eb880c5e089b784e2f710b8.tar.gz
unterricht-feaf01491f1fa9c21eb880c5e089b784e2f710b8.zip
improve my slot machine series and port to Online-IDE
* Align handout and slides * Port from GraphicAndGames to Online-IDE * Use regular naming convetion * Remove Zeichnen() method TODO: adapt the project to the Gewinn slides
Diffstat (limited to 'Info')
-rw-r--r--Info/10/2/Spielautomat/Felder/slides.md75
-rw-r--r--Info/10/2/Spielautomat/Gewinn/slides.md60
-rw-r--r--Info/10/2/Spielautomat/Referenzen/handout.tex33
-rw-r--r--Info/10/2/Spielautomat/Referenzen/slides.md121
-rw-r--r--Info/10/2/Spielautomat/Repository Spielautomat.json6
5 files changed, 187 insertions, 108 deletions
diff --git a/Info/10/2/Spielautomat/Felder/slides.md b/Info/10/2/Spielautomat/Felder/slides.md
index 84d9b29b..c88622a5 100644
--- a/Info/10/2/Spielautomat/Felder/slides.md
+++ b/Info/10/2/Spielautomat/Felder/slides.md
@@ -2,11 +2,13 @@
author: Florian Fischer
theme: metropolis
aspectratio: 169
+header-includes:
+ \let\tightlist\relax
---
-<!-- ## Zusammengesetze Objekte -->
+##
-<!-- ![](../img/explosionszeichnung.png){.center} -->
+![](../img/explosionszeichnung.png){.center}
## Spielautomat vereinfacht - objektorientiertes Modell
@@ -15,12 +17,12 @@ aspectratio: 169
class/.style={
draw,
rectangle,
-minimum width={width("SPIELAUTOMAT")},
+minimum width={width("Spielautomat")},
font=\small}]
-\node[class] (sa) at (0,0) {SPIELAUTOMAT};
+\node[class] (sa) at (0,0) {Spielautomat};
-\node[class] (sw) at (7, 0) {SPIELWALZE};
+\node[class] (sw) at (7, 0) {Spielwalze};
\draw (sa.east) edge[above, align=center] node {\small 1 ~~~~~ > enthält ~~~~~ 3} (sw.west);
\end{tikzpicture}
@@ -33,28 +35,29 @@ font=\small}]
Ein \boldred{Referenzattribut} speichert ein Objekt einer Klasse (**komplexer Datentyp**).
-## Wiederholung Referenzattribute
+## \faIcon{chalkboard-teacher} Wiederholung: Referenzattribute
\large
+### Fragen ???
+
* Was war nochmal der Datentyp eines Referenzattributes?
* Wie hat man eine Referenzattribut **initialisiert**?
+### Antworten !!!
\pause
->- Der Name der Klasse (**Bsp.**: `SPIELWALZE`)
->- `new KONSTRUKTOR(...)`{.java} (**Bsp.**: new `SPIELWALZE()`{.java})
+>- Der Name der Klasse (**Bsp.**: `Spielwalze`)
+>- `bezeichner = new Konstruktor(...)`{.java} (**Bsp.**: new `Spielwalze()`{.java})
-## \faIcon{desktop} Spielautomat - 20 min
+## \faIcon{desktop} Arbeitsauftrag: Spielautomat \hfill 20 min
\large
-* Bearbeite alle Stellen in `SPIELWALZE`, die mit `//TODO: ...`{.java} markiert sind
+* Bearbeite alle Stellen in `Spielwalze`, die mit `//TODO n: ...`{.java} markiert sind
- * \large Deklariere und initialisiere den `hintergrund` und den `farbkreis` in `SPIELWALZE`.
+ 1. \large Deklariere und initialisiere den `hintergrund` und den `farbkreis` in `Spielwalze`.
**Achte** auf Konstruktoraufrufe mit der korrekten Position und Größe!
- * \large Setze die Position aller Referenzattribute.
- * \large Zeichne alle Referenzattribute.
- * \large Vervollständige die Methode `SPIELWALZE.Drehen()`
-* Vervollständige die Klasse `SPIELAUTOMAT`.
-* **Für Schnelle:** Ergänze den Spielautomat, um eine Möglichkeit zu gewinnen.
+ 2. \large Vervollständige die Methode `Spielwalze.Drehen()`
+* Vervollständige die Klasse `Spielautomat`.
+* \faIcon{earlybirds} **Für Schnelle:** Ergänze den Spielautomat, um eine Möglichkeit zu gewinnen.
## Spielautomat vereinfacht - objektorientiertes Modell
@@ -63,40 +66,46 @@ Ein \boldred{Referenzattribut} speichert ein Objekt einer Klasse (**komplexer Da
class/.style={
draw,
rectangle,
-minimum width={width("SPIELAUTOMAT")},
+minimum width={width("Spielautomat")},
font=\small}]
-\node[class] (sa) at (0,0) {SPIELAUTOMAT};
+\node[class] (sa) at (0,0) {Spielautomat};
-\node[class] (sw) at (7, 0) {SPIELWALZE};
+\node[class] (sw) at (7, 0) {Spielwalze};
\draw (sa.east) edge[above, align=center] node {\small 1 ~~~~~ > enthält ~~~~~ \only<1>{3}\only<2->{\boldred{n}}} (sw.west);
\end{tikzpicture}
\end{center}
## Felder von komplexen Datentypen
-\large
+### Fragen ???
* Was könnte der Datentyp eines Feldes von komplexen Datentypen sein?
* Wie hat man ein Element des Feldes initialisiert?
->- Der Name der Klasse gefolgt von eckigen Klammern (`SPIELWALZE[]`)
->- `feldname[i] = new KONSTRUKTOR(...)`{.java} (`walzen[i] = new SPIELWALZE()`{.java})
+### Antworten !!!
+>- Der Name der Klasse gefolgt von eckigen Klammern (`Spielwalze[]`)
+>- `feldname[i] = new Konstruktor(...)`{.java} (`walzen[i] = new Spielwalze()`{.java})
\pause
-### \faIcon{pencil-alt} Felder von komplexen Datentypen
- * **Datentyp**: `KLASSENNAME[]`
- * **Deklaration**: `KLASSENNAME[] feldname;`{.java}
- * **Initialisierung**: `feldname = new KLASSENNAME[laenge];`{.java}
+```\begin{merke}```{=latex}
+
+\textbf{\large \faIcon{pencil-alt} Felder von komplexen Datentypen}
+
+ * **Datentyp**: `Klassennname[]`
+ * **Deklaration**: `Klassennname[] feldname;`{.java}
+ * **Initialisierung**: `feldname = new Klassennname[laenge];`{.java}
+
+```\end{merke}```{=latex}
-## \faIcon{desktop} Arbeitsauftrag – Mehr Walzen
+## \faIcon{desktop} Arbeitsauftrag: Mehr Walzen
\large
-1. Ersetze die Referenzattribute der Klasse `SPIELWALZE` im `SPIELAUTOMAT` durch ein Feld
-2. Ergänze den Konstruktor des `SPIELAUTOMATS` um die Anzahl der Spielwalzen.
-3. Initialisiere das Feld und alle Elemente
+1. Ersetze die Referenzattribute der Klasse `Spielwalze` im `Spielautomat` durch ein Feld.
+2. Ergänze den Konstruktor des `Spielautomat` um die Anzahl der Spielwalzen.
+3. Initialisiere das Feld und alle Elemente.
**Achte** darauf die Position der Spielwalzen korrekt anzupassen.
-4. Implementiere die Methoden `SPIELAUTOMAT.AlleDrehen()`, sowie die Methode `SPIELAUTOMAT.Zeichnen()` durch geeignete `for`{.java}-Schleifen
-5. Teste deine Implementierung in BlueJ.
-6. **Für Schnelle**: Ersetze die Farben der Spielwalze durch ein Feld und passe die Funktion `SPIELWALZE.Drehen()` entsprechend an.
+4. Implementiere die Methoden `Spielautomat.AlleDrehen()` mit einer `for`{.java}-Schleife
+5. Teste deine Implementierung.
+6. \faIcon{earlybirds} **Für Schnelle:** Ersetze die Farben der Spielwalze durch ein Feld und passe die Funktion `Spielwalze.Drehen()` entsprechend an.
diff --git a/Info/10/2/Spielautomat/Gewinn/slides.md b/Info/10/2/Spielautomat/Gewinn/slides.md
index 62dc844c..5a685e40 100644
--- a/Info/10/2/Spielautomat/Gewinn/slides.md
+++ b/Info/10/2/Spielautomat/Gewinn/slides.md
@@ -2,6 +2,8 @@
author: Florian Fischer
theme: metropolis
aspectratio: 169
+header-includes: |
+ \let\tightlist\relax
---
## Spielautomat
@@ -15,12 +17,12 @@ aspectratio: 169
class/.style={
draw,
rectangle,
-minimum width={width("SPIELAUTOMAT")},
+minimum width={width("Spielautomat")},
font=\small}]
-\node[class] (sa) at (0,0) {SPIELAUTOMAT};
+\node[class] (sa) at (0,0) {Spielautomat};
-\node[class] (sw) at (7, 0) {SPIELWALZE};
+\node[class] (sw) at (7, 0) {Spielwalze};
\draw (sa.east) edge[above, align=center] node {\small 1 ~~~~~ > enthält ~~~~~ \only<1>{3}\only<2->{\boldred{n}}} (sw.west);
\end{tikzpicture}
@@ -33,31 +35,33 @@ font=\small}]
::: columns
:::: {.column width=70%}
```java
-class SPIELAUTOMAT {
- SPIELWALZEN[] walzen;
+class Spielautomat {
+ Spielwalze[] walzen;
- SPIELAUTOMAT(int n) {
- walzen = SPIELWALZE[n];
+ Spielautomat(int n) {
+ walzen = Spielwalze[n];
}
}
```
::::
:::
-## Wdh. Felder
+## \faIcon{chalkboard-teacher} Wiederholung: Felder
\large
* Wie bildet man den Datentyp eines Feldes?
* Wie initialisiert man eine Feld?
* Wie initialisiert man ein Element des Feldes?
+\vspace{0.3cm}
+\hrule
\pause
>- Datentyp eines Elements gefolgt von eckigen Klammern (`int[]`{.java})
>- `feldname = new datentyp[laenge]`{.java}
>- `feldname[i] = ...`{.java}
-## Mögliche Indizes eines Feldes
+## \faIcon{chalkboard-teacher} Mögliche Indizes eines Feldes
\begin{center}
\scalebox{1.5}{
@@ -99,21 +103,19 @@ class SPIELAUTOMAT {
}
-## \faIcon{desktop} Arbeitsauftrag – Mehr Farben - 15 min
+## \faIcon{desktop} Arbeitsauftrag: Mehr Farben \hfill 15 min
\large
-\begin{enumerate}
-\item Kopiere die neue BlueJ-Projektvorlage (\textbf{Spielautomat2}).
-\item Ergänze alle \texttt{TODOs} in der Klasse \texttt{SPIELWALZE}
- \begin{enumerate}
- \item Deklariere und initialisiere ein neues Feld mit allen Farbergebnissen
- \item Vervollständige die Methode \texttt{Drehen()}: \\
- Bestimme eine als Index geeignete Zufallszahl. \\
- Setze die neue zufällig bestimmte Farbe.
- \end{enumerate}
-\end{enumerate}
+Öffne das **Spielautomat** Projekt.
-## Wie erkennen wir ein gewonnenes Spiel?
+
+1. Ergänze alle `TODOs` in der Klasse `Spielwalze`
+ 1. Deklariere und initialisiere ein neues Feld mit allen Farbergebnissen
+ 2. Vervollständige die Methode `Drehen()`:
+ Bestimme eine als Index geeignete Zufallszahl.
+ Setze die neue zufällig bestimmte Farbe.
+
+## \faIcon{comments} Wie erkennen wir ein gewonnenes Spiel?
::: columns
:::: {.column width=24%}
@@ -130,19 +132,19 @@ class SPIELAUTOMAT {
:::
-## \faIcon{desktop} Arbeitsauftrag – Gewinn - 30 min
+## \faIcon{desktop} Arbeitsauftrag: Gewinn \hfill 30 min
\large
-1. Vervollständige die Methode `SPIELAUTOMAT.GibGewinn()`
- 1. Ergänze die geeignete Länge des Feldes `ergebnisse`
- 2. Zahle die Farbergebnisse aller Spielwalzen
- 3. Überprüfe ob das Spiel gewonnen wurde und gib den Gewinn zurück
+1. Vervollständige die Methode `Spielautomat.GibGewinn()`
+ 1. Ergänze die geeignete Länge des Feldes `ergebnisse`
+ 2. Zahle die Farbergebnisse aller Spielwalzen
+ 3. Überprüfe ob das Spiel gewonnen wurde und gib den Gewinn zurück
-## \faIcon{desktop} Arbeitsauftrag – Spielen - 10 min
+## \faIcon{desktop} Arbeitsauftrag: Spielen \hfill 10 min
\large
-1. Vervollständige die Methode `SPIELAUTOMAT.Spielen()`
-2. **Fuer Schnelle**: Verbessere den Spielautomat
+1. Vervollständige die Methode `Spielautomat.Spielen()`
+2. \faIcon{earlybirds} **Fuer Schnelle**: Verbessere den Spielautomat
Anregungen:
* Ergänze eine weitere Reihe an Walzen (Du kannst Felder von Feldern nutzen `int[][]`{.java})
* Ergänze die Walzen um ein Symbol zusätzlich zu ihrer Farbe
diff --git a/Info/10/2/Spielautomat/Referenzen/handout.tex b/Info/10/2/Spielautomat/Referenzen/handout.tex
index 3700d9f2..d43e1bb2 100644
--- a/Info/10/2/Spielautomat/Referenzen/handout.tex
+++ b/Info/10/2/Spielautomat/Referenzen/handout.tex
@@ -13,24 +13,29 @@
\large
\vspace{1cm}
-Datentypen, die aus mehreren Datentypen, die aus mehreren Elementen zusammengesetzt sind, werden als \gap{\Huge komplexe Datentypen} bezeichnet. \\[0.1cm]
+\begin{merke}
+Datentypen, die aus mehreren Elementen zusammengesetzt sind, werden als \gap{\Huge komplexe Datentypen} bezeichnet. \\[0.1cm]
+\end{merke}
So kann z.B. jede selbstdefinierte Klasse als Datentyp verwendet werden.
\begin{center}
- \textbf{Beispiel.:} Attribut vom Typ \texttt{SPIELWALZE} in der Klasse \texttt{SPIELAUTOMAT}
+ \textbf{Beispiel.:} Attribut vom Typ \texttt{Spielwalze} in der Klasse \texttt{Spielautomat}
\end{center}
+\begin{merke}
Da der Wert eines solchen Attributs ein \gap{\Huge Objekt} der zugewiesenen Klasse ist, muss zur
Initialisierung der \gap{\Huge Konstruktor} dieser Klasse aufgerufen werden. \\
Hierzu wird der Operator \mintinline{java}{new} verwendet. \\[0.3cm]
+\end{merke}
\textbf{Beispiel:} \\
+\vspace{-0.1cm}
\begin{center}
\begin{minipage}{0.8\textwidth}
\begin{minted}[baselinestretch=1.4, escapeinside=$$]{java}
-SPIELWALZE walze; // $\gap{Deklaration~~~~~~~~~~~~~~~~~~~~~~~~~}$
-walze = new SPIELWALZE(...); // $\gap{Initialisierung~~~~~~~~~~}$
+Spielwalze walze; // $\gap{Deklaration~~~~~~~~~~~~~~~~~~~~~~~~~}$
+walze = new Spielwalze(...); // $\gap{Initialisierung~~~~~~~~~~}$
\end{minted}
\end{minipage}
\end{center}
@@ -46,27 +51,27 @@ rounded corners=3pt,
minimum height=1.2cm,
minimum width=7cm}]
-\begin{class}[text width=4cm]{SPIELAUTOMAT}{0,4}
- \attribute{SPIELWALZE walze}
+\begin{class}[text width=4cm]{Spielautomat}{0,4}
+ \attribute{Spielwalze walze}
\attribute{...}
- \operation{SPIELAUTOMAT()}
+ \operation{Spielautomat()}
\operation{...}
\end{class}
-\node[object] (sa) at (12, 4) {\solution{\Huge SPIELAUTOMAT}};
+\node[object] (sa) at (12, 4) {\solution{\Huge Spielautomat}};
-\node[object] (sw) at (12, 1) {\solution{\Huge SPIELWALZE~~~~}};
+\node[object] (sw) at (12, 1) {\solution{\Huge Spielwalze~~~~}};
\draw (sa.south) -- (sw.north);
\end{tikzpicture}
\end{center}
-\subsection*{Arbeitsauftrag – BlueJ-Projekt Spielautomat}
+\subsection*{\faIcon{desktop} Arbeitsauftrag: Projekt Spielautomat}
-\begin{enumerate}
-\item Ergänze die fehldenden Referenzattribute in der Klasse \texttt{SPIELAUTOMAT}.
-\item Initialisiere die fehldenden Referenzattribute im Konstruktor der Klasse \texttt{SPIELAUTOMAT}.
-\end{enumerate}
+\begin{itemize}
+\item Ergänze die fehlenden Referenzattribute in der Klasse \texttt{Spielautomat}.
+\item Initialisiere die fehlenden Referenzattribute im Konstruktor der Klasse \texttt{Spielautomat}.
+\end{itemize}
\textit{Tipp: Achte immer auf eindeutige Attribut- bzw. Variablenbezeichner!}
\end{document}
diff --git a/Info/10/2/Spielautomat/Referenzen/slides.md b/Info/10/2/Spielautomat/Referenzen/slides.md
index 24120faa..b51c4e5b 100644
--- a/Info/10/2/Spielautomat/Referenzen/slides.md
+++ b/Info/10/2/Spielautomat/Referenzen/slides.md
@@ -2,28 +2,33 @@
author: Florian Fischer
theme: metropolis
aspectratio: 169
+header-includes:
+ \let\tightlist\relax
---
-
## Zusammengesetze Objekte
![](../img/explosionszeichnung.png){.center}
## Spielautomat vereinfacht - objektorientiertes Modell
-**Welche unterschiedlichen Objekte sind am Spielautomat beteiligt? Welchen Klassen gehören sie an?**
-
![](../img/spielautomat.png){.center}
+\pause
+**Welche unterschiedlichen Objekte sind am Spielautomat beteiligt?
+Welchen Klassen gehören sie an?**
+
## Spielautomat - Steuerung
**Wie können die Walzen des Automaten zufällig gedreht werden?**
\pause
-$\rightarrow$ Eine Klasse `SPIELAUTOMAT`, die die Walzen nach festen Wahrscheinlichkeiten dreht.
+\vspace{0.3cm}
+$\rightarrow$ Eine Klasse `Spielautomat`, die die Walzen nach festen Wahrscheinlichkeiten dreht.
\pause
-**Wie stehen die Klassen `SPIELAUTOMAT` und `SPIELWALZE` miteinander in Beziehung?**
+\vspace{0.3cm}
+**Wie stehen die Klassen `Spielautomat` und `Spielwalze` miteinander in Beziehung?**
## Objektbeziehungen
@@ -32,12 +37,12 @@ $\rightarrow$ Eine Klasse `SPIELAUTOMAT`, die die Walzen nach festen Wahrscheinl
class/.style={
draw,
rectangle,
-minimum width={width("SPIELAUTOMAT")},
+minimum width={width("Spielautomat")},
font=\small}]
-\node[class] (sa) at (0,0) {SPIELAUTOMAT};
+\node[class] (sa) at (0,0) {Spielautomat};
-\node[class] (sw) at (7, 0) {SPIELWALZE};
+\node[class] (sw) at (7, 0) {Spielwalze};
\draw (sa.east) edge[above, align=center] node {\small 1 ~~~~~ > enthält ~~~~~ 3} (sw.west);
\end{tikzpicture}
@@ -53,37 +58,41 @@ Es wird ein \boldred{Referenzattribut} erstellt, das auf das in der Beziehung st
## Komplexe Datentypen
+### Ein Komplexer Datentyp:
+
* Besteht aus mehreren Elementen
* Eine Klasse als Datentyp
* Kann wie ein primitiver Datentyp eingesetzt werden
+\vspace{0.2cm}
\pause
### Beispiel:
Der Spielautomat steuert die Bewegung der Walzen.
- Der Klasse `SPIELAUTOMAT` wird ein \boldred{Referenzattribut} `walze` vom Typ `SPIELWALZE` hinzugefügt
+ Der Klasse `Spielautomat` wird ein \boldred{Referenzattribut} `walze` vom Typ `Spielwalze` hinzugefügt
-## \faIcon{pencil-alt} Arbeitsblatt – 1. Referenzattribute
+## \faIcon{pencil-alt} Arbeitsblatt: 1. Referenzattribute
Datentypen, die aus mehreren Elementen zusammengesetzt sind, werden als \boldred{„komplexe Datentypen“} bezeichnet.
So kann z.B. jede selbstdefinierte Klasse als Datentyp verwendet werden.
+\vspace{0.3cm}
\pause
### Besipiel:
-Attribut vom Typ `SPIELWALZE` in der Klasse `SPIELAUTOMAT`
+Attribut vom Typ `Spielwalze` in der Klasse `Spielautomat`
-## \faIcon{pencil-alt} Arbeitsblatt – 1. Referenzattribute
+## \faIcon{pencil-alt} Arbeitsblatt: 1. Referenzattribute
-Da der Wert eines solchen Attributs ein \boldred{Objekt} der zugewiesenen Klasse ist, muss zur Initialisierung der \boldred{Konstruktor} dieser Klasse aufgerufen werden.
+Da der Wert eines solchen Attributs ein \boldred{Objekt} der zugewiesenen Klasse ist, muss zur Initialisierung der \beamerpsolution{3}{\boldred{Konstruktor}} dieser Klasse aufgerufen werden.
Hierzu wird der Operator `new`{.java} verwendet.
### Beispiel:
```java
-SPIELWALZE walze; // Deklaration von walze
-walze = new SPIELWALZE(...); // Initialisierung von walze
+Spielwalze walze; // Deklaration von walze
+walze = new Spielwalze(...); // Initialisierung von walze
// Uebergabeparameter --^
```
-## \faIcon{pencil-alt} Arbeitsblatt – 1. Referenzattribute
+## \faIcon{pencil-alt} Arbeitsblatt: 1. Referenzattribute
Indem in einer Klasse ein sogenanntes \boldred{Referenzattribut} vom Typ einer (anderen) Klasse angelegt wird, treten die beiden Objekte in Beziehung zueinander, hier:
@@ -98,9 +107,9 @@ rectangle,
rounded corners=3pt,
font=\small}]
-\node[object] (sa) at (0,0) {SPIELAUTOMAT};
+\node[object] (sa) at (0,0) {Spielautomat};
-\node[object] (sw) at (0, -2) {SPIELWALZE};
+\node[object] (sw) at (0, -2) {Spielwalze};
\draw (sa.south) -- (sw.north);
\end{tikzpicture}
@@ -121,33 +130,81 @@ rectangle,
rounded corners=3pt,
font=\small}]
-\node[object] (sw) at (0,0) {SPIELWALZE};
+\node[object] (sw) at (0,0) {Spielwalze};
-\node[object] (h) at (-2, -2) {HINTEGRUND};
+\node[object] (h) at (-2, -2) {Hintegrund};
-\node[object] (fk) at (2, -2) {FARBKREIS};
+\node[object] (fk) at (2, -2) {Farbkreis};
\draw (sw.south) -- (h.north);
\draw (sw.south) -- (fk.north);
\end{tikzpicture}
\end{center}
+## \faIcon{desktop} Arbeitsauftrag: Referenzattribute \hfill 15 min
+
+Öffne das Spielautomat Projekt.
+1. Öffne die Klassen `Farbkreis` und `Kasten` und sieh dir ihre Methoden an.
+2. Ergänze die Klasse `Spielwalze` um die fehlenden Attribute.
+3. Initialisiere die neu ergänzten Attribute im Konstruktor der Klasse `Spielwalze`.
+4. Implementiere die Methode `Spielwalze.SetzePosition(...)`.
+5. Teste deine Implementierung.
-## \faIcon{desktop} Arbeitsauftrag – Referenzattribute
-1. Kopiere und öffne das BlueJ-Projekt Spielautomat aus dem Ablage Laufwerk
-2. Öffne die Klassen `FARBKREIS` und `KASTEN` und sieh dir ihre Methoden an
-3. Ergänze die Klasse `SPIELWALZE` um die fehlenden Attribute
-4. Initialisiere die neu ergänzten Attribute im Konstruktor der Klasse `SPIELWALZE`
-5. Implementiere die Methode `SPIELWALZE.SetzePosition(...)` sowie die Methode `SPIELWALZE.Zeichnen()`
-6. Teste deine Implementierung in BlueJ.
+## \faIcon{desktop} Arbeitsauftrag: Referenzattribute \hfill 15 min
+Jetzt können wir bereits eine Walze zeichnen.
+
+\begin{enumerate}
+\setcounter{enumi}{5}
+\item Ergänze die Methode \texttt{Spielwalze.Drehen()}.
+\item Teste deine Implementierung.
+\item \faIcon{earlybirds} \textbf{Fuer Schnelle}: Verändere die Wahrscheinlichkeiten der \texttt{Drehen()} Methode oder ergänze zusätzliche Farben.
+\end{enumerate}
-## \faIcon{desktop} Arbeitsauftrag – Referenzattribute
+## \faIcon{desktop} Arbeitsauftrag: Referenzattribute \hfill 15 min
Jetzt können wir bereits eine Walze zeichnen.
-1. Ergänze die Methode `SPIELWALZE.Drehen()`
-2. Teste deine Implementierung
-3. **Fuer Schnelle**: Verändere die Wahrscheinlichkeiten der `Drehen()` Methode oder ergänze zusätzliche Farben
+\begin{enumerate}
+\setcounter{enumi}{5}
+\item Ergänze die Methode \texttt{Spielwalze.Drehen()}.
+\item Teste deine Implementierung.
+\item \faIcon{earlybirds} \textbf{Fuer Schnelle}: Verändere die Wahrscheinlichkeiten der \texttt{Drehen()} Methode oder ergänze zusätzliche Farben.
+\end{enumerate}
+
+## \faIcon{desktop} Arbeitsauftrag: Spielautomat \hfill 15 min
+
+::: {.columns align=center}
+:::: {.column width=45%}
+\begin{tikzpicture}[
+object/.style={
+draw,
+rectangle,
+rounded corners=3pt,
+font=\small}]
+
+\node[object] (sa) at (0,0) {Spielautomat};
+
+\node[object] (sw) at (0, -2) {Spielwalze};
+\node[object] (sw2) at (-2, -2) {Spielwalze};
+\node[object] (sw3) at (2, -2) {Spielwalze};
+
+\draw (sa.south) -- (sw.north);
+\draw (sa.south) -- (sw2.north);
+\draw (sa.south) -- (sw3.north);
+\end{tikzpicture}
+::::
+
+:::: {.column width=55%}
+\begin{enumerate}
+\setcounter{enumi}{5}
+\item Ergänze drei Spielwalzen als Attribute der Klasse \texttt{Spielautomat}.
+\item Initialisiere die Spielwalzen Attribute im \texttt{Spielautomat} Konstruktor
+\item \faIcon{earlybirds} \textbf{Fuer Schnelle}: Implementiere eine Methode, die prüft ob der Automat gerade einen Gewinn anzeigt.
+\end{enumerate}
+::::
+:::
+
+
diff --git a/Info/10/2/Spielautomat/Repository Spielautomat.json b/Info/10/2/Spielautomat/Repository Spielautomat.json
new file mode 100644
index 00000000..fc53bf92
--- /dev/null
+++ b/Info/10/2/Spielautomat/Repository Spielautomat.json
@@ -0,0 +1,6 @@
+{
+ "name": "Spielautomat",
+ "files": "[{\"id\":2641426,\"version\":3,\"filename\":\"Spiewalze\",\"path\":[],\"text\":\"class Spielwalze {\\n\\n int xPos;\\n int yPos;\\n // TODO 2: Deklariere die fehlenden Bestandteile einer Walze\\n\\n\\n Spielwalze(int xPosNeu, int yPosNeu) {\\n xPos \\u003d xPosNeu;\\n yPos \\u003d yPosNeu;\\n\\n // TODO 3: Initialisiere die fehlenden Bestandteile einer Walze\\n }\\n\\n void SetzePosition(int xPosNeu, int yPosNeu) {\\n xPos \\u003d xPosNeu;\\n yPos \\u003d yPosNeu;\\n\\n // TODO 4: Setze die neue Position der Walzenbestandteile\\n }\\n\\n void FarbeSetzen(String neueFarbe) {\\n /* FIXME 2: farbsymbol.FarbeSetzen(neueFarbe); */\\n }\\n\\n void Drehen() {\\n // Dreht die Spielwalze und setzt sie auf eine beliebige Farbe.\\n Random zufallsgenerator;\\n zufallsgenerator \\u003d new Random();\\n int zufallszahl;\\n // Generiert eine neue Zufallszahl, die kleiner als 5 ist. \\n // Also: 0, 1, ..., 5\\n zufallszahl \\u003d zufallsgenerator.nextInt(5);\\n\\n // Die Walze soll eine Farbe nach der folgenden Zuweisung anzeigen:\\n // 0 \\u003d rot (red)\\n // 1 \\u003d blau (blue)\\n // 2 \\u003d magenta (magenta)\\n // 3 \\u003d gelb (yellow)\\n // 4 \\u003d gruen (green)\\n if(zufallszahl \\u003d\\u003d 0) {\\n FarbeSetzen(\\\"red\\\");\\n } else if(zufallszahl \\u003d\\u003d 1) {\\n // TODO 6: Setze die Farbe auf blau.\\n }\\n // TODO 6: Ergaenze die Anweisungen fuer die restlichen Farben.\\n }\\n}\\n\"},{\"id\":2641427,\"version\":3,\"filename\":\"Spielautomat\",\"path\":[],\"text\":\"public class Spielautomat extends Actor\\n{\\n // TODO: Ergaenze die Attribute des Spielautomats\\n \\n Spielautomat() {\\n // TODO: Initialisiere die Attribute des Spielautomats\\n }\\n\\n void AlleDrehen() {\\n // TODO: Drehe alle Walzen\\n }\\n\\n void onKeyDown(String key) {\\n if(key \\u003d\\u003d Key.Space) {\\n AlleDrehen();\\n }\\n }\\n}\\n\\nSpielautomat a \\u003d new Spielautomat();\\n\"},{\"id\":2641428,\"version\":1,\"filename\":\"Farbkreis\",\"path\":[],\"text\":\"public class Farbkreis extends Circle\\n{\\n String farbe;\\n\\n public Farbkreis(int xPosNeu, int yPosNeu, int radiusNeu) {\\n super(xPosNeu, yPosNeu, radiusNeu);\\n this.FarbeSetzen(\\\"red\\\");\\n }\\n\\n public void FarbeSetzen(String neueFarbe) {\\n farbe \\u003d neueFarbe;\\n this.setFillColor(farbe);\\n }\\n\\n public String GibFarbe() {\\n return farbe;\\n }\\n\\n public void SetzePosition(int xPosNeu, int yPosNeu) {\\n this.moveTo(xPosNeu, yPosNeu);\\n } \\n}\\n\"},{\"id\":2641429,\"version\":1,\"filename\":\"Kasten\",\"path\":[],\"text\":\"/**\\n * Dies ist die Klasse Kasten\\n */\\nclass Kasten extends Rectangle\\n{ \\n Kasten(int xPosNeu, int yPosNeu, int breiteNeu, int hoeheNeu) {\\n super(xPosNeu, yPosNeu, breiteNeu, hoeheNeu);\\n this.setFillColor(\\\"gray\\\");\\n }\\n \\n Kasten() {\\n this(100, 100, 100, 100);\\n }\\n \\n void SetzePosition(int xPosNeu, int yPosNeu) {\\n this.moveTo(xPosNeu, yPosNeu);\\n }\\n \\n void SetzeMittelpunkt(int xPosNeu, int yPosNeu) {\\n this.move(xPosNeu - getWidth() / 2, yPosNeu - getHeight() / 2);\\n }\\n}\"}]",
+ "history": "[{\"timestamp\":\"Wed Dec 10 22:06:15 CET 2025\",\"version\":1,\"userId\":58291,\"username\":\"Florian.Fischer\",\"name\":\"Florian Fischer\",\"comment\":\"Initialer Commit\",\"isIntermediateEntry\":false,\"historyFiles\":[{\"id\":2641426,\"version\":1,\"type\":\"create\",\"filename\":\"Spiewalze\",\"path\":[],\"content\":\"class Spielwalze {\\n Kasten hintergrund;\\n Farbkreis farbsymbol;\\n int xPos;\\n int yPos;\\n\\n static String[] ergebnisse \\u003d { \\\"red\\\", \\\"blue\\\", \\\"magenta\\\", \\\"yellow\\\", \\\"green\\\" };\\n\\n Spielwalze(int xPosNeu, int yPosNeu) {\\n xPos \\u003d xPosNeu;\\n yPos \\u003d yPosNeu;\\n\\n hintergrund \\u003d new Kasten(xPos, yPos, 100, 100);\\n farbsymbol \\u003d new Farbkreis(xPos + 50, yPos + 50, 50);\\n }\\n\\n void SetzePosition(int xPosNeu, int yPosNeu) {\\n xPos \\u003d xPosNeu;\\n yPos \\u003d yPosNeu;\\n\\n hintergrund.SetzePosition(xPos, yPos);\\n farbsymbol.SetzePosition(xPos, yPos); \\n }\\n\\n void FarbeSetzen(String neueFarbe) {\\n farbsymbol.FarbeSetzen(neueFarbe);\\n }\\n\\n String GibFarbe() {\\n return farbsymbol.GibFarbe();\\n }\\n\\n void Drehen() {\\n // Dreht die Spielwalze und setzt sie auf eine beliebige Farbe.\\n Random zufallsgenerator;\\n zufallsgenerator \\u003d new Random();\\n int zufallszahl;\\n // Generiert eine neue Zufallszahl, die kleiner als die Anzahl an moeglichen\\n // Ergebnissen ist. \\n // Also: 0, 1, ..., ergebnisse.length -1;.\\n zufallszahl \\u003d zufallsgenerator.nextInt(ergebnisse.length);\\n\\n String neueFarbe \\u003d ergebnisse[zufallszahl];\\n FarbeSetzen(neueFarbe);\\n }\\n}\\n\",\"changeSet\":\"\"},{\"id\":2641427,\"version\":1,\"type\":\"create\",\"filename\":\"Spielautomat\",\"path\":[],\"content\":\"public class Spielautomat extends Actor\\n{\\n int betrag;\\n Spielwalze[] walzen;\\n \\n Spielautomat(int anzahlWalzen) {\\n int xOffset \\u003d 250;\\n betrag \\u003d 10;\\n walzen \\u003d new Spielwalze[anzahlWalzen];\\n for (int i \\u003d 0; i \\u003c walzen.length; i++) {\\n walzen[i] \\u003d new Spielwalze(i * 100 + xOffset, 100);\\n }\\n }\\n\\n void AlleDrehen() {\\n for (int i \\u003d 0; i \\u003c walzen.length; i++) {\\n walzen[i].Drehen();\\n }\\n }\\n\\n int GibGewinn() {\\n int[] ergebnisse \\u003d new int[Spielwalze.ergebnisse.length];\\n for (int i \\u003d 0; i \\u003c walzen.length; i++) {\\n String farbe \\u003d walzen[i].GibFarbe();\\n\\n for (int y \\u003d 0; y \\u003c ergebnisse.length; y++) {\\n if(Spielwalze.ergebnisse[y] \\u003d\\u003d farbe) {\\n ergebnisse[y]++;\\n break;\\n }\\n }\\n }\\n\\n for (int i \\u003d 0; i \\u003c ergebnisse.length; i++) {\\n if(ergebnisse[i] \\u003d\\u003d walzen.length) {\\n System.out.println(\\\"Hauptgewinn!\\\");\\n return 5;\\n } else if(ergebnisse[i] \\u003d\\u003d walzen.length - 1) {\\n System.out.println(\\\"Trostpreis!\\\");\\n return 1;\\n }\\n }\\n return 0;\\n }\\n\\n void onKeyDown(String key) {\\n if(key \\u003d\\u003d Key.Space) {\\n Spielen();\\n }\\n }\\n \\n void Spielen() {\\n if(betrag \\u003e 0) {\\n betrag--;\\n System.out.println(\\\"Neues Spiel! Restbetrag: \\\" + betrag);\\n AlleDrehen();\\n\\n betrag +\\u003d GibGewinn();\\n println();\\n }\\n }\\n}\\n\\nSpielautomat a \\u003d new Spielautomat(3);\\n\",\"changeSet\":\"\"},{\"id\":2641428,\"version\":1,\"type\":\"create\",\"filename\":\"Farbkreis\",\"path\":[],\"content\":\"public class Farbkreis extends Circle\\n{\\n String farbe;\\n\\n public Farbkreis(int xPosNeu, int yPosNeu, int radiusNeu) {\\n super(xPosNeu, yPosNeu, radiusNeu);\\n this.FarbeSetzen(\\\"red\\\");\\n }\\n\\n public void FarbeSetzen(String neueFarbe) {\\n farbe \\u003d neueFarbe;\\n this.setFillColor(farbe);\\n }\\n\\n public String GibFarbe() {\\n return farbe;\\n }\\n\\n public void SetzePosition(int xPosNeu, int yPosNeu) {\\n this.moveTo(xPosNeu, yPosNeu);\\n } \\n}\\n\",\"changeSet\":\"\"},{\"id\":2641429,\"version\":1,\"type\":\"create\",\"filename\":\"Kasten\",\"path\":[],\"content\":\"/**\\n * Dies ist die Klasse Kasten\\n */\\nclass Kasten extends Rectangle\\n{ \\n Kasten(int xPosNeu, int yPosNeu, int breiteNeu, int hoeheNeu) {\\n super(xPosNeu, yPosNeu, breiteNeu, hoeheNeu);\\n this.setFillColor(\\\"gray\\\");\\n }\\n \\n Kasten() {\\n this(100, 100, 100, 100);\\n }\\n \\n void SetzePosition(int xPosNeu, int yPosNeu) {\\n this.moveTo(xPosNeu, yPosNeu);\\n }\\n \\n void SetzeMittelpunkt(int xPosNeu, int yPosNeu) {\\n this.move(xPosNeu - getWidth() / 2, yPosNeu - getHeight() / 2);\\n }\\n}\",\"changeSet\":\"\"}]},\n{\"timestamp\":\"14.12.2025, 09:34\",\"version\":2,\"userId\":58291,\"username\":\"Florian.Fischer\",\"name\":\"Florian Fischer\",\"comment\":\"version without arrays\",\"isIntermediateEntry\":false,\"historyFiles\":[{\"id\":2641426,\"version\":2,\"type\":\"change\",\"content\":\"[{\\\"diffs\\\":[[0,\\\"s;\\\\n\\\\n\\\"],[-1,\\\" static String[] ergebnisse \\u003d { \\\\\\\"red\\\\\\\", \\\\\\\"blue\\\\\\\", \\\\\\\"magenta\\\\\\\", \\\\\\\"yellow\\\\\\\", \\\\\\\"green\\\\\\\" };\\\\n\\\\n\\\"],[0,\\\" S\\\"]],\\\"start1\\\":90,\\\"start2\\\":90,\\\"length1\\\":90,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\" }\\\\n\\\\n\\\"],[-1,\\\" String GibFarbe() {\\\\n return farbsymbol.GibFarbe();\\\\n }\\\\n\\\\n\\\"],[0,\\\" v\\\"]],\\\"start1\\\":575,\\\"start2\\\":575,\\\"length1\\\":73,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\".., \\\"],[-1,\\\"ergebnisse.length -1;.\\\"],[1,\\\"5\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":901,\\\"start2\\\":901,\\\"length1\\\":30,\\\"length2\\\":9},{\\\"diffs\\\":[[0,\\\"Int(\\\"],[-1,\\\"ergebnisse.length);\\\\n\\\\n String neueFarbe \\u003d ergebnisse[zufallszahl];\\\\n FarbeSetzen(neueFarbe);\\\"],[1,\\\"5);\\\\n\\\\n // 0 \\u003d rot (red)\\\\n // 1 \\u003d blau (blue)\\\\n // 2 \\u003d magenta (magenta)\\\\n // 3 \\u003d gelb (yellow)\\\\n // 4 \\u003d gruen (green)\\\\n if(zufallszahl \\u003d\\u003d 0) {\\\\n FarbeSetzen(\\\\\\\"red\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 1) {\\\\n FarbeSetzen(\\\\\\\"blue\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 2) {\\\\n FarbeSetzen(\\\\\\\"magenta\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 3) {\\\\n FarbeSetzen(\\\\\\\"yellow\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 4) {\\\\n FarbeSetzen(\\\\\\\"green\\\\\\\");\\\\n }\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":948,\\\"start2\\\":948,\\\"length1\\\":108,\\\"length2\\\":486}]\"},{\"id\":2641427,\"version\":2,\"type\":\"change\",\"content\":\"[{\\\"diffs\\\":[[0,\\\"r\\\\n{\\\\n\\\"],[-1,\\\" int betrag;\\\\n\\\"],[0,\\\" S\\\"]],\\\"start1\\\":38,\\\"start2\\\":38,\\\"length1\\\":23,\\\"length2\\\":8},{\\\"diffs\\\":[[0,\\\"alze\\\"],[-1,\\\"[]\\\"],[0,\\\" walze\\\"],[-1,\\\"n;\\\\n \\\"],[1,\\\"1;\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":51,\\\"start2\\\":51,\\\"length1\\\":23,\\\"length2\\\":16},{\\\"diffs\\\":[[0,\\\"piel\\\"],[-1,\\\"automat(int anzahlWalzen) {\\\\n int xOffset \\u003d 250;\\\\n betrag \\u003d 10;\\\\n walzen \\u003d new\\\"],[1,\\\"walze walze2;\\\\n \\\"],[0,\\\" Spi\\\"]],\\\"start1\\\":68,\\\"start2\\\":68,\\\"length1\\\":98,\\\"length2\\\":24},{\\\"diffs\\\":[[0,\\\"alze\\\"],[-1,\\\"[anzahlW\\\"],[1,\\\" w\\\"],[0,\\\"alze\\\"],[-1,\\\"n]\\\"],[1,\\\"3\\\"],[0,\\\";\\\\n \\\"],[1,\\\"\\\\n\\\"],[0,\\\" \\\"],[-1,\\\"for (int i \\u003d 0; i \\u003c walzen.length; i++\\\"],[1,\\\" Spielautomat(\\\"],[0,\\\") {\\\\n\\\"]],\\\"start1\\\":95,\\\"start2\\\":95,\\\"length1\\\":68,\\\"length2\\\":38},{\\\"diffs\\\":[[0,\\\"{\\\\n \\\"],[-1,\\\" \\\"],[0,\\\"walze\\\"],[-1,\\\"n[i]\\\"],[1,\\\"1\\\"],[0,\\\" \\u003d new S\\\"]],\\\"start1\\\":131,\\\"start2\\\":131,\\\"length1\\\":28,\\\"length2\\\":22},{\\\"diffs\\\":[[0,\\\"lze(\\\"],[-1,\\\"i * 100 + xOffset, 100);\\\\n }\\\\n }\\\\n\\\\n void AlleDrehen() {\\\\n for (int i \\u003d 0; i \\u003c walzen.length; i++) {\\\\n walzen[i].Drehen();\\\\n }\\\\n }\\\\n\\\\n int GibGewinn() {\\\\n int[] ergebnisse\\\"],[1,\\\"250, 100);\\\\n walze2\\\"],[0,\\\" \\u003d new \\\"],[-1,\\\"int[\\\"],[0,\\\"Spie\\\"]],\\\"start1\\\":159,\\\"start2\\\":159,\\\"length1\\\":215,\\\"length2\\\":38},{\\\"diffs\\\":[[0,\\\"alze\\\"],[-1,\\\".ergebnisse.length];\\\\n for (int i \\u003d 0; i \\u003c walzen.length; i++) {\\\\n String farbe \\u003d walzen[i].GibFarbe();\\\\n\\\\n for (int y \\u003d 0; y \\u003c ergebnisse.length; y++) {\\\\n if(Spielwalze.ergebnisse[y] \\u003d\\u003d farbe) {\\\\n ergebnisse[y]++;\\\\n break;\\\\n }\\\\n }\\\\n }\\\\n\\\\n for (int i \\u003d 0; i \\u003c ergebnisse.length; i++) {\\\\n if(ergebnisse[i] \\u003d\\u003d walzen.length) {\\\\n System.out.println(\\\\\\\"Hauptgewinn!\\\\\\\");\\\\n return 5;\\\\n } else if(ergebnisse[i] \\u003d\\u003d walzen.length - 1) {\\\\n System.out.println(\\\\\\\"Trostpreis!\\\\\\\");\\\\n return 1;\\\\n }\\\\n }\\\\n return 0;\\\\n }\\\\n\\\\n void onKeyDown(String key) {\\\\n if(key \\u003d\\u003d Key.Space) {\\\\n Spielen();\\\\n }\\\\n }\\\\n \\\\n void Spielen() {\\\\n if(betrag \\u003e 0) {\\\\n betrag--;\\\\n System.out.println(\\\\\\\"Neues Spiel! Restbetrag: \\\\\\\" + betrag);\\\\n AlleDrehen();\\\\n\\\\n betrag +\\u003d GibGewinn();\\\\n printl\\\"],[1,\\\"(350, 100);\\\\n walze3 \\u003d new Spielwalze(450, 100);\\\\n }\\\\n\\\\n void AlleDrehen() {\\\\n walze1.Drehen();\\\\n walze2.Drehen();\\\\n walze3.Drehen();\\\\n }\\\\n\\\\n void onKeyDown(String key) {\\\\n if(key \\u003d\\u003d Key.Space) {\\\\n AlleDrehe\\\"],[0,\\\"n();\\\"]],\\\"start1\\\":199,\\\"start2\\\":199,\\\"length1\\\":952,\\\"length2\\\":244},{\\\"diffs\\\":[[0,\\\"automat(\\\"],[-1,\\\"3\\\"],[0,\\\");\\\\n\\\"]],\\\"start1\\\":486,\\\"start2\\\":486,\\\"length1\\\":12,\\\"length2\\\":11}]\"}]},\n{\"timestamp\":\"14.12.2025, 10:04\",\"version\":3,\"userId\":58291,\"username\":\"Florian.Fischer\",\"name\":\"Florian Fischer\",\"comment\":\"Simple version with exercises\",\"isIntermediateEntry\":false,\"historyFiles\":[{\"id\":2641426,\"version\":3,\"type\":\"change\",\"content\":\"[{\\\"diffs\\\":[[0,\\\"e {\\\\n\\\"],[1,\\\"\\\\n\\\"],[0,\\\" \\\"],[-1,\\\"Kasten hintergrund;\\\\n Farbkreis farbsymbol\\\"],[1,\\\"int xPos\\\"],[0,\\\";\\\\n \\\"]],\\\"start1\\\":15,\\\"start2\\\":15,\\\"length1\\\":54,\\\"length2\\\":20},{\\\"diffs\\\":[[0,\\\"int \\\"],[-1,\\\"x\\\"],[1,\\\"y\\\"],[0,\\\"Pos;\\\\n \\\"],[-1,\\\"int yPos;\\\"],[1,\\\"// TODO 2: Deklariere die fehlenden Bestandteile einer Walze\\\\n\\\"],[0,\\\"\\\\n\\\\n \\\"]],\\\"start1\\\":36,\\\"start2\\\":36,\\\"length1\\\":26,\\\"length2\\\":78},{\\\"diffs\\\":[[0,\\\" \\\"],[-1,\\\"hintergrund \\u003d new Kasten(xPos, yPos, 100, 100);\\\\n farbsymbol \\u003d new Farbkreis(xPos + 50, yPos + 50, 50);\\\\n\\\"],[1,\\\"// TODO 3: Initialisiere die fehlenden Bestandteile einer Walze\\\\n \\\"],[0,\\\" }\\\"]],\\\"start1\\\":201,\\\"start2\\\":201,\\\"length1\\\":116,\\\"length2\\\":75},{\\\"diffs\\\":[[0,\\\" \\\"],[-1,\\\"hintergrund.SetzePosition(xPos, yPos);\\\\n farbsymbol.SetzePosition(xPos, yPos); \\\"],[1,\\\"// TODO 4: Setze die neue Position der Walzenbestandteile\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":375,\\\"start2\\\":375,\\\"length1\\\":91,\\\"length2\\\":65},{\\\"diffs\\\":[[0,\\\" {\\\\n \\\"],[1,\\\" /* FIXME 2:\\\"],[0,\\\" farbsym\\\"]],\\\"start1\\\":480,\\\"start2\\\":480,\\\"length1\\\":16,\\\"length2\\\":28},{\\\"diffs\\\":[[0,\\\"eFarbe);\\\"],[1,\\\" */\\\"],[0,\\\"\\\\n }\\\\n\\\\n \\\"]],\\\"start1\\\":527,\\\"start2\\\":527,\\\"length1\\\":16,\\\"length2\\\":19},{\\\"diffs\\\":[[0,\\\"als \\\"],[-1,\\\"die Anzahl an moeglichen\\\\n // Ergebnissen\\\"],[1,\\\"5\\\"],[0,\\\" ist\\\"]],\\\"start1\\\":785,\\\"start2\\\":785,\\\"length1\\\":55,\\\"length2\\\":9},{\\\"diffs\\\":[[0,\\\"nt(5);\\\\n\\\\n\\\"],[1,\\\" // Die Walze soll eine Farbe nach der folgenden Zuweisung anzeigen:\\\\n\\\"],[0,\\\" //\\\"]],\\\"start1\\\":869,\\\"start2\\\":869,\\\"length1\\\":16,\\\"length2\\\":90},{\\\"diffs\\\":[[0,\\\" \\\"],[-1,\\\"FarbeSetzen(\\\\\\\"blue\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 2) {\\\\n FarbeSetzen(\\\\\\\"magenta\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 3) {\\\\n FarbeSetzen(\\\\\\\"yellow\\\\\\\");\\\\n } else if(zufallszahl \\u003d\\u003d 4) {\\\\n FarbeSetzen(\\\\\\\"green\\\\\\\");\\\\n }\\\"],[1,\\\"// TODO 6: Setze die Farbe auf blau.\\\\n }\\\\n // TODO 6: Ergaenze die Anweisungen fuer die restlichen Farben.\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":1188,\\\"start2\\\":1188,\\\"length1\\\":240,\\\"length2\\\":122}]\"},{\"id\":2641427,\"version\":3,\"type\":\"change\",\"content\":\"[{\\\"diffs\\\":[[0,\\\"\\\\n \\\"],[-1,\\\"Spielwalze walze1;\\\\n Spielwalze walze2;\\\\n Spielwalze walze3;\\\\n \\\\n Spielautomat() {\\\\n walze1 \\u003d new Spielwalze(250, 100);\\\\n walze2 \\u003d new Spielwalze(350, 100);\\\\n walze3 \\u003d new Spielwalze(450, 100);\\\\n }\\\\n\\\\n void AlleDrehen() {\\\\n walze1.Drehen();\\\\n walze2.Drehen();\\\\n walze3.Drehen();\\\"],[1,\\\" // TODO: Ergaenze die Attribute des Spielautomats\\\\n \\\\n Spielautomat() {\\\\n // TODO: Initialisiere die Attribute des Spielautomats\\\\n }\\\\n\\\\n void AlleDrehen() {\\\\n // TODO: Drehe alle Walzen\\\"],[0,\\\"\\\\n \\\"]],\\\"start1\\\":41,\\\"start2\\\":41,\\\"length1\\\":316,\\\"length2\\\":206}]\"}]}",
+ "description": "Didaktisches Projekt, um Referenzattribute, Felder und Datenkapselugn zu erlernen."
+} \ No newline at end of file