Jetzt lerne ich Java 6

Mehrdimensionale Arrays

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Am Beispiel eines Spielbretts für das Spiel 'Schiffe versenken' demonstriert der Autor in diesem Film den praktischen Einsatz mehrdimensionaler Arrays. Der Umgang damit bringt keine neuen Operatoren oder Methoden - verlangt aber etwas mehr Aufmerksamkeit von Ihnen.
08:53

Transkript

Haben Sie eigentlich Spass am Knobeln, dann könne Sie mit mir jetzt ein kleines Experiment machen. Wir werden mit Hilfe von Arrays ein kleines Schiffe-Versenken Spiel bauen Kleins mir große graphische oberflächen auch die Explosion müssen Sie sich im Moment noch denken. Es gibt mir darum ihnen zu zeigen für was Arrays in Praxsis gut sein können und dabei bittet sich an ihnen auch noch die mehrdimensionalen Arrays Trek vorzustellen Wir werden ein kleines Schiffe-Versenken machen. Unser Spielplan wird 5 mal 5 Kästchen groß sein. Das heist Sie können sich auf ein rechner Platt einfach mal ein kleines Quadrat aufzeichen mit 5 mal 5 Kästchen Jedes Kästchen bekommt eine X Position und eine Y Position normalerweise im Schiffe versenken wäre das A, B, C, D, für die Spalten und dann natürlich Zahlen für die Zeilen also zum Beispiel A 3 ,4 müssen wir hier Arrays verwenden und Arrays haben eben nur eine Index Nummer innerhalb von Java daher werdem wir einfach sagen X ist 3 und Y ist 2, nun gut. das reicht und jetzt haben Sie eine schon gesehen, warum man mehrdimensional Arrays braucht Mit einem Array können wir Probleme uns eine Zeile abbilden aber nicht ein Quadrat und da helfen uns die mehrdimensionalen Arrays witer Auf den Plan wir müssen relativ einfach halten ein Schiff hat immer nur genau ein Kästchen nicht mehrere Kästchen und wir haben noch keine verschiedene Schiff tuppen das heißt von Prinzipiell der Ganze Spiel ist erstmal leer und wenn Sie ein Schiff in die hinsetzen, machen wir da hinein Kreuzchenen Später wird geziehlt Beispiel auf den 3 und wenn wird geguckt ist dann Kreuzen, dann haben wir Treffer, ist kein Kreuzen kein Treffer um das Spiel ergänzt abzubilden, nehmen wir ein zweite dimensionals Array und da bittet sich den Datentyp boolean an, der entweder an der Stelle ist kein Schiff, dann es ist false oder an der Stelle ist ein Schiff, dann es ist true. Wie liegt man nun ein zwei dimensionales Array an ganz einfach genauso wie ein mehrdimensionales nutzt man einfach eins anhängt wir legen zur ersten die Datentyp boolean fest, setzten dann die eckigen Klammern dahinter, dann hätten wir ein boolean Array und setzten noch einmal eckige Klammern dahinten und schon dann mal zwei dimensionale booleans Array, dann nennen wir das Ganze Plan oder Spielfeld wie Sie das wollen und instanzieren das Ganze aus boolean und jetzt müssen wir natürlich die Dimensionen rein schreiben, unser Feld bekommt 5 mal 5 Kästchen so einfach bekommen wir einen Spielplan für unser Schiff-Versenken Wir denken aber jetzt wird dran da wird 5 Plätze reserviert haben, das Ganze bei Null anfing zuzählen, heißen die Positionen jetzt auf ihrem Rechnenplatt in der X Position von 0 bis 4 und die Y Position ebenfalls von 0 bis 4 nun gut, jetzt müssen wir ein Schiff setzen auch das ist recht einfach wir adressieren dafür die Zähle, Plan aber jetzt immer zwei mal, an die Position 3, 2 möchte ich kein ein Schiff haben und dahin müssen wir also boolean mit Schuh setzen dann sitzte ein Schiff, mal das Ganze so aufregend war, ich setzte mir dringend noch eins an die Position 0, zur besseren Kontrolle was ich jetzt hole, wenn wir uns mal den Spielplan ausgeben lassen würden wenn sie in der vorherigen Lektion gesehen haben, dann wissen Sie noch dass in Java util Arrays in dieser Classe eine to String Variante ist und die wollen wir jetzt nutzen dazu müssen wir zur erste Mal diese Classe impotieren, das war hier jetzt schon in package und meine Classendefinition hier also import java. otil. Arrays; nicht vergessen und nun wollen wir die Ausgabe machen der erste Gedanke wäre ergätzt viellleich ist hier to String recht intelligent Also, schreiben wir mal hin gib mal inm Plane aus Arrays.toString und daran geben wir jetzt einfach mal kurz ans unseren Plan Na ja das Ergebniss ist noch nicht so ganz was hier brauchen, wir bekommen wirklich die Ausgabe eines Arrays, das ist schon korrekt, aber da drinen befinden sich so seltsame Eingabe hier das sind Referenzen und zwar in einem mehrdimensionalen Array liegen hier auch wieder Arrays und das sind auch wieder Objekte das heißt liegt die lediglich die Referenz auf ein weiteres Objekt und das sind in einen dimensional Arrays, also damit kommen wir nicht richtig weiter aber, wir haben hier die for each Schleife kennen gelernt von Prinzipiell kann to String aus Arrays immer nur ein Dimensional Arrays auslesen Jetzt könne wir folgendes machen, wir können mit einer for each Schleife jede einzelne Zeile unserer Spielplatz ablaufen und jewals die Zeile ausgeben und dafür können wir to String wunderbar verwenden also ändern wir das hier noch Zeile und müssen jetzt nur noch eine for each Schleife aus nach umbauen for (Zeile:plan) das heißt der holt in jeder Durchgang einer Zeile welchen Datentyp hat den neuen Zeile haben Sie es gewusst, den Datentyp boolean Array können Sie sich ein dimensionales Array geben aus, und dann können wir dann man block aus herumsetzten das mal gucken und mal kurz schauen, dann holt in jedem Durchgang eine Zeile liegt das in das boolean Array Zeile und das gibt der hier mit ToString entsprechend aus testen wir das und das ist das Ergebnis wir bekommen alle 5 Zeilen ausgegeben und wir bekommen die Werte innerhalb diese Zeile ausgegeben wir sehen jentzt unsere zwei Schiffe einmal an der Position 0;0 hier oben und eimmal an der Position 3;2 hier unten 3;2 Sie denken noch, 0,1,2,3 und 0,1,2 wunderbar, das heißt damit wissen wir, also, wie die Plan aussieht den nächste Schritt, die wir jetzt machen müssen, ist wie müssen einen Tipp eingeben, klar, später machen Sie das über eine Eingabe zum Beispiel bei der Konsole Eingabe, das haben sie schon bereits gelernt oder Sie können natürlich auch nach gerade ich oberflächlich machen und die Ganze wie die minesweeper zum Beispiel in denen Sie auch ein Knochen drücken, was eben die Position übergibt an ihr Programm das dann entsprechend ermittelt, aber in unserem Fall bleibt bericht einfaches schließen Einstage, die vor die Tipp und kontrolle des Tipps, wir geben das Ganze so ein, wir geben ein int vor unserer X Position und die Y Position unseres Tipps später wie gesagt von außen, wir kontrollieren das nun nun, von Prinzipiell können wir das mit if Frage machen, denn wir müssen eigentlich nur das passende Kästchen jetzt adressieren, wie adressieren wir, genauso wie wir hier die Werte hineingelegt haben können wir natürlich noch adressieren und wenn das true ist, dann liegt da ein Schiff kann mit Treffer es ist false haben wir kein Treffer also if Klammer auf plan zu einzelnes Array jetzt setzten wir die Index Nummer ein, hier tippen auf xpos und ypos das wir oben eingegeben haben und wenn das true ist, das es ist ganz hier true damit if ausgefüllt, also, Ausgabe Treffer geniall wir haben getroffen oder trauriges Ende else wir haben nicht getroffen vorbei wir tippen auf 3; 2 ein Schiff liegt auf 3; 2, das bedeuted wir müssen jetzt eilig ein Treffer bekommen sehen wir auch hier Treffer ist da, jetzt schiesen wir vollig vorbei auf 3;3 zum Beispiel und wir bekommmen ein vorbei hier mal gesehen von Prinzipiell haben Sier also schon ein kleines Schiff-Versenken Spiel gemacht ich denke soll der Klage worden sein, wie man mit mehrdimensional Arrays arbeitet und für die Ganzen gunt sein können MehrDimensional Arrays natürlich nicht von zwei Dimension begrenzt Sie können auch viel mehr Dimensionen machen es wird manchmal dann ein bischen unversichtig beim darüber Nachdenken aber es funktioniert und Sie haben auch gesehen, dass Sie gerade beim Spielen und ähnlichen Dingen wirklich sich damit einiges an Arbeit erleichten können eine Sache die das Ganze noch voraussetzt möchte ich noch hier erwähnen, wenn wir ein Array anliegen und wir müssen es hier direkt dimensionieren den liegen aotomatisch an allen Stellen an die for true normalerweise ist das 0 aber bei einem boolean ist es false daher brauchen wir uns nicht darum zu kummern, das unser Plan gefüllt wird mit false wird, falls wir in etwas anderes dort haben wollen, da müssen wir das entsprechend über fill Methoden machen und dann müssen wir das gegebenes files eine schleife machen die dann das Ganze mit Hilfe von fill Methoden aus Java utill Arrays befüllt

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!