From feaf01491f1fa9c21eb880c5e089b784e2f710b8 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Tue, 6 Jan 2026 11:10:35 +0100 Subject: 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 --- Info/10/2/Spielautomat/Felder/slides.md | 75 +++++++------ Info/10/2/Spielautomat/Gewinn/slides.md | 60 +++++----- Info/10/2/Spielautomat/Referenzen/handout.tex | 33 +++--- Info/10/2/Spielautomat/Referenzen/slides.md | 121 +++++++++++++++------ .../10/2/Spielautomat/Repository Spielautomat.json | 6 + 5 files changed, 187 insertions(+), 108 deletions(-) create mode 100644 Info/10/2/Spielautomat/Repository Spielautomat.json 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 --- - +## - +![](../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 -- cgit v1.2.3