Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:start [26.10.2023 05:27] – [Das Spielfeld als zweidimensionales Array] Frank Schiebel | faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:start [01.10.2024 06:01] (aktuell) – [Aufgaben] Svenja Müller | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Mehrdimensionale Arrays: Schiffe versenken ====== | ====== Mehrdimensionale Arrays: Schiffe versenken ====== | ||
- | + | ((Dieses Beispiel ist eng an die Vorlage aus dem ZUM Wiki unter https:// | |
- | Ein nettes | + | Ein Beispiel für den Einsatz eines zweidimensionales |
===== Das Spielfeld als zweidimensionales Array ===== | ===== Das Spielfeld als zweidimensionales Array ===== | ||
Zeile 14: | Zeile 14: | ||
- | {{ : | + | {{ : |
- | Die Klasse | + | Die Klassen |
- | {{ : | + | {{ : |
- | Das **Spielfeld** hat im Wesentlichen die Aufgabe, die Gebiete zu verwalten. Daher bekommt es nur eine Eigenschaft: | + | Das **Spielfeld** hat im Wesentlichen die Aufgabe, die Gebiete zu verwalten. Daher bekommt es nur eine Eigenschaft: |
<code java> | <code java> | ||
Zeile 44: | Zeile 44: | ||
</ | </ | ||
- | Das Anlegen eines zweidimensionalen Arrays geschieht ähnlich wie das eines eindimensionalen. | + | |
+ | <callout title=" | ||
+ | |||
+ | Das Anlegen eines zweidimensionalen Arrays geschieht ähnlich wie das eines eindimensionalen. | ||
+ | |||
+ | Um das Array sinnvoll zu initialisieren | ||
Dann wird wird beispielhaft ein 3er Schiff gesetzt. Dazu müssen 3 Felder einzeln angesprochen werden. | Dann wird wird beispielhaft ein 3er Schiff gesetzt. Dazu müssen 3 Felder einzeln angesprochen werden. | ||
+ | </ | ||
- | Übung | + | ===== Aufgaben ===== |
- | Analysieren Sie auf Grundlage der beiden UML-Klassendiagramme und auf Grundlageder Kenntnisse über das Schiffeversenken-Spiel die Klassen Gebiet und Spielfeld. Schätzen Sie ein, was die einzelnen Methoden bewirken, ohne dass Sie den folgenden Quelltext anschauen. Vergleichen Sie anschließend mit dem Quelltext. | ||
- | Nennen Sie weitere Beispiele aus dem Alltag, bei denen man Zwei- oder Mehrdimensionale Arrays benutzen könnte. | ||
- | Analysieren Sie die Methode schieße(int x, int y) und gibSpielfeldAufKonsoleAus() | ||
- | Wiederholung: | ||
- | Entwerfen Sie die Methoden setzeSenkrechtesSchiff() und setzeWaagerechtesSchiff(), | ||
- | Schreiben Sie eine Methode prüfeObGewonnen(), | ||
+ | * Analysiere auf Grundlage der beiden UML-Klassendiagramme und auf Grundlage deiner Kenntnisse über das Schiffeversenken-Spiel die Klassen '' | ||
+ | * Nenne weitere Beispiele aus dem Alltag, bei denen man Zwei- oder Mehrdimensionale Arrays benutzen könnte. | ||
+ | * Analysiere die Methoden '' | ||
+ | * Warum kann Spielfeld nicht direkt die Eigenschaften von Gebiet verwenden? | ||
+ | * Implementiere die Methoden '' | ||
+ | * Schreibe Methode '' | ||
- | Quelltexte | ||
+ | ===== Quelltexte ===== | ||
+ | |||
+ | <code java> | ||
public class Gebiet | public class Gebiet | ||
{ | { | ||
Zeile 100: | Zeile 108: | ||
| | ||
} // Ende der Klasse | } // Ende der Klasse | ||
+ | </ | ||
+ | <code java> | ||
public class Spielfeld | public class Spielfeld | ||
{ | { | ||
Zeile 110: | Zeile 120: | ||
{ | { | ||
feld = new Gebiet[10][10]; | feld = new Gebiet[10][10]; | ||
- | // Anfangswerte setzen | + | // Anfangswerte setzen |
for (int i=0; | for (int i=0; | ||
for (int j=0; | for (int j=0; | ||
Zeile 143: | Zeile 153: | ||
} // Ende der Klasse | } // Ende der Klasse | ||
+ | </ | ||