Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:start [26.10.2023 06:52] – [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 |
---|
====== Mehrdimensionale Arrays: Schiffe versenken ====== | ====== Mehrdimensionale Arrays: Schiffe versenken ====== |
| ((Dieses Beispiel ist eng an die Vorlage aus dem ZUM Wiki unter https://unterrichten.zum.de/wiki/Java/Schiffeversenken angelehnt)) |
Ein nettes Beispiel für ein zweidimensionales Array ist das Spiel Schiffe versenken. Um das Spielfeld zu modellieren, kann man ein mehrdimensionales Array einsetzen. Dabei werden die Elemente, ähnlich wie beim Koordinatensystem in Mathe die x- und y-Koordinate, durch zwei Indizes angesprochen. | Ein Beispiel für den Einsatz eines zweidimensionales Arrays ist das Spiel Schiffe versenken. Um das Spielfeld zu modellieren, kann man ein mehrdimensionales Array einsetzen. Dabei werden die Elemente, ähnlich wie beim Koordinatensystem in Mathe die x- und y-Koordinate, durch zwei Indizes angesprochen. |
| |
===== Das Spielfeld als zweidimensionales Array ===== | ===== Das Spielfeld als zweidimensionales Array ===== |
| |
| |
{{ :faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:300px-schiffeversenken-1.png |}} | {{ :faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:sv.png?350 |}} |
| |
Die Klasse Gebiet ist folgendermaßen angelegt: | Die Klassen Gebiet und Spielfeld sind dabei folgendermaßen angelegt: |
| |
{{ :faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:klassen_sv.png |}} | {{ :faecher:informatik:oberstufe:java:algorithmen:arrays:mehrdimensional:klassen_sv.png |}} |
* Nenne weitere Beispiele aus dem Alltag, bei denen man Zwei- oder Mehrdimensionale Arrays benutzen könnte. | * Nenne weitere Beispiele aus dem Alltag, bei denen man Zwei- oder Mehrdimensionale Arrays benutzen könnte. |
* Analysiere die Methoden ''schieße(int x, int y)'' und ''gibSpielfeldAufKonsoleAus()'' | * Analysiere die Methoden ''schieße(int x, int y)'' und ''gibSpielfeldAufKonsoleAus()'' |
* Warum kann Spielfeld nicht direkt die Eigenschaften von Gebietver wenden? | * Warum kann Spielfeld nicht direkt die Eigenschaften von Gebiet verwenden? |
* Implementiere die Methoden ''setzeSenkrechtesSchiff()'' und ''setzeWaagerechtesSchiff()'', die ein Schiff auf das Spielfeld eintragen. Überlege zunächst, welche Übergabeparameter benötigt werden. Entwerfe einen Plan, wie man vermeiden kann, dass der Spielfeldrand überschritten wird. | * Implementiere die Methoden ''setzeSenkrechtesSchiff()'' und ''setzeWaagerechtesSchiff()'', die ein Schiff auf das Spielfeld eintragen. Überlege zunächst, welche Übergabeparameter benötigt werden. Entwerfe einen Plan, wie man vermeiden kann, dass der Spielfeldrand überschritten wird. |
* Schreibe Methode ''pruefeObGewonnen()'', die dann ''true'' zurückgibt, wenn auf dem gesamten Spielfeld kein Schiff mehr steht. | * Schreibe Methode ''pruefeObGewonnen()'', die dann ''true'' zurückgibt, wenn auf dem gesamten Spielfeld kein Schiff mehr steht. |