diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-02-08 14:28:24 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-02-08 14:28:24 +0100 |
| commit | f4bfe8178474ec7ec1a980dbdd505d4ddef20c7c (patch) | |
| tree | f9fa703c42d81acd2ade4d41eb346c3423ec1457 /Info/10 | |
| parent | fa9cc4890ce08831a6e49d18926527eb6b15562b (diff) | |
| download | unterricht-f4bfe8178474ec7ec1a980dbdd505d4ddef20c7c.tar.gz unterricht-f4bfe8178474ec7ec1a980dbdd505d4ddef20c7c.zip | |
add my last 10B Info lesson
Diffstat (limited to 'Info/10')
| -rw-r--r-- | Info/10/2/Spielautomat/Felder/slides.md | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/Info/10/2/Spielautomat/Felder/slides.md b/Info/10/2/Spielautomat/Felder/slides.md new file mode 100644 index 00000000..294d4f3f --- /dev/null +++ b/Info/10/2/Spielautomat/Felder/slides.md @@ -0,0 +1,106 @@ +--- +author: Florian Fischer +theme: metropolis +aspectratio: 169 +header-includes: | + \makeatletter + \beamer@ignorenonframefalse + \makeatother +--- + +<!-- ## Zusammengesetze Objekte --> + +<!-- {.center} --> + +## Spielautomat vereinfacht - objektorientiertes Modell + +\begin{center} +\begin{tikzpicture}[ +class/.style={ +draw, +rectangle, +minimum width={width("SPIELAUTOMAT")}, +font=\small}] + +\node[class] (sa) at (0,0) {SPIELAUTOMAT}; + +\node[class] (sw) at (7, 0) {SPIELWALZE}; + +\draw (sa.east) edge[above, align=center] node {\small 1 ~~~~~ > enthält ~~~~~ 3} (sw.west); +\end{tikzpicture} +\end{center} + +\large +\vspace{1cm} +### \Large Referenzattribute +\pause + +Ein \boldred{Referenzattribut} speichert ein Objekt einer Klasse (**komplexer Datentyp**). + +## Wiederholung Referenzattribute +\large + +* Was war nochmal der Datentyp eines Referenzattributes? +* Wie hat man eine Referenzattribut **initialisiert**? + +\pause +>- Der Name der Klasse (**Bsp.**: `SPIELWALZE`) +>- `new KONSTRUKTOR(...)`{.java} (**Bsp.**: new `SPIELWALZE()`{.java}) + +## \faIcon{desktop} Spielautomat - 20 min +\large + +* Bearbeite alle Stellen in `SPIELWALZE`, die mit `//TODO: ...`{.java} markiert sind + + * \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. + +## Spielautomat vereinfacht - objektorientiertes Modell + +\begin{center} +\begin{tikzpicture}[ +class/.style={ +draw, +rectangle, +minimum width={width("SPIELAUTOMAT")}, +font=\small}] + +\node[class] (sa) at (0,0) {SPIELAUTOMAT}; + +\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 + +* 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}) + +\pause + +### \faIcon{pencil-alt} Felder von komplexen Datentypen + * **Datentyp**: `KLASSENNAME[]` + * **Deklaration**: `KLASSENNAME[] feldname;`{.java} + * **Initialisierung**: `feldname = new KLASSENNAME[laenge];`{.java} + +## \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 + **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. |
