Java "Memory" erstellen?
Hallo liebe Community
Ich muss in der Schule ein Memory mit Java erstellen/programmieren.
Dabei sollte ich 64 Kärtchen, 32 Paare haben.
Ich habe mir das so vorgestellt: Man sieht die 64 Kärtchen umgekehrt "rumliegen" und wenn man auf eines drückt kehrt es sich um und zeigt eine Nummer an. Falls das zweite Kärtchen dieselbe Nummer hat erhält man einen Punkt und die beiden Kärtchen verschwinden.
Hat jemand eine Idee wie ich das machen könnte?
Liebe Grüsse und vielen Dank!
3 Antworten
Das ist eine ziemlich umfangreiche Frage.
Als erstes solltest du dir eine IDE (BlueJ, NetBeans, Eclipse, etc.) heraussuchen, dann eine Grafikbibliothek (AWT, JavaFX (NetBeans und SceneBuilder), LibGDX, etc.) und dann zu guter letzt eine Methode, wie du das umsetzt (Knöpfe mit sich ändernder Beschriftung bzw. sich ändernden Bildchen; Canvas mit Reaktion auf Maus-Events; etc.).
Da sich die Umsetzung je nach IDE und Java-Bibliothek ändert, freue ich mich auf eine Diskusion in den Kommentaren.
Bau dir zunächst Model und die dazugehörige Logik. Überlege, aus welchen Elementen das Memoryspiel besteht und designe diese mittels Klassen und Objekten.
Die Karten müssen in ihrem Zustand beschreibbar sein. Da können zwei schon ausreichen (offen / verdeckt) oder drei (offen / verdeckt / ausgeblendet). Die jeweils erste Päärchenwahl des Nutzers musst du zwischenspeichern, die zweite Wahl kombinierst du dann mit dieser. Je nach Ergebnis wird der Status der Karten geändert.
Bau dir für den wesentlichen Programmfluss eine Schleife, die so lange läuft, bis das Spiel beendet wurde. Je Schleifendurchlauf lässt du alle Karten zeichnen.
Wenn das Spiel mit einer grafischen Oberfläche ausgestattet werden soll, binde dir entweder ein Tool wie Processing ein (die für einen Anfänger bevorzugte Variante) oder verwende Swing / SWT / JavaFX. In diesem Fall benötigst du allerdings keine eigene Schleife mehr, die Datenkommunikation wird via Events oder Bindings vorgenommen.
Wenn du keine grafische Oberfläche benötigst, bleibe bei einem Konsolenprogramm und gib die Spielfläche immer neu via System.out aus.
Brauchst du dafür denn eine GUI? Wenn ja, hast du schon mal Grafikprogrammierung gemacht? oO