Memory-Spiel

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo!
Meine Facharbeit besteht darin, dass ich ein Memory-Spiel mit Java programmieren soll. Ich verlange jetzt nicht von euch, dass ihr mir einen fertigen Code schickt, sondern, dass ihr mir vielleicht theoretisch erklären könntet, wie man das Spiel programmieren kann. Ich habe mir das so überlegt, dass ich eine Menüleiste habe, wo dann z.B. drinne steht, dass ich das Spiel starten möchte oder dass die Karten neu gemischt werden sollen. Bis jetzt bin ich nur soweit gekommen, dass ich ein Spielfeld (5x5) erstellen konnte, wo man die Karten im zugedeckten Zustand sehen kann, also noch ziemlich am Anfang. Wie könnte ich jetzt weiter vorgehen?
 

Jango

Gesperrter Benutzer
Bitte Boardsuche verwenden - zu Memory's gibts schon einige Beiträge. :wink:
 
G

Gast

Gast
Das Problem ist nur, dass in den meisten Beiträgen nur Code vorhanden ist und ich will ja das Programm auch verstehen. Bei dem Code blicke ich nämlich nicht so schnell durch. Aber durch die Beiträge habe ich jetzt rausgefunden, dass man wohl am besten JToggleButtons für jede Memory-Karte benutzt und auf diese dann ein Bild drauflegt. Jetzt ist es denke ich mal am besten, wenn man jedem Button eine Nummer bzw. einen Schlüssel zuweist, der mit einem Bild verbunden ist. Nur wie kann ich einem Button einen Schlüssel zuweisen?
 

Quickbeam2k1

Aktives Mitglied
Also ich würde mal zwischen GUI und eigentlichem Programm trennen, schau dir da mal das Model-View-Control (MVC) Design-Pattern an. http://de.wikipedia.org/wiki/Model_View_Controller

Du programmierst dazu quasi dein Memory spiel, erstmal ohne grafische oberfläche.
Du musst dann deine Karten erstellen und irgendwie zufälig auf dem Feld (nimm lieber 6x6, das macht dann eine Gerade Anzahl an Karten).
Dann brauchst du eine Klasse die die Operationen auf dem Feld zur Verfügung stellt also an sich ja nur anschauen, und was als nächstes tun etc.
Diese Klasse könnte dann z.B die Control-klasse sein.
Diese gibt dann die Informationen der Karten an die GUI weiter.

Der Vorteil hier dran ist, dass so jeder der das Grundgerüst deines Spiels hat, sich eine eigene GUI draufbasteln kann.

Und naja, spiel einmal eine Runde Memory, und überleg dir was genau diese Controlklasse sein kann.
Sie könnte ja auch den Spielern direkt Punkte zu weisen.

Du solltest das denke ich ohne GUI mit höchstens 5 Klassen gut implementieren können.

Hoffe ich konnte dir nen bischen helfen
 
G

Gast

Gast
OK, danke erstmal für die Tipps. Eine Frage aber noch: Wie kann ich das machen, dass beim Drücken eines Buttons irgendeine ID mitüberliefert wird, wodurch eindeutig bestimmt werden kann, zu welchem Bild dieser Button gehört? Ich habe mir schon überlegt, ob ich die Funktion aufklappen() so implementiere, dass eine Zahl mitüberliefert wird, sodass die Funktion dann aufklappen(int position) heißt. Das ist allerdings vielleicht nicht so elegant, wenn ich bei jeden der 36 Buttons immer aufklappen(1), aufklappen(2), usw. ausführe. Oder gibt es eine andere Möglichkeit, um rauszufinden welcher Button gedrückt wurde?
 
M

Michael...

Gast
Hallo,

ich benutze bei solchen Sachen gerne eine eigene Klasse die z.B von JButton erbt und zusätzlich noch ein Feld ID besitzt. Dann noch eine Methode getID(). In dem Fall könnte man evtl. auch die ID gleich durch das entsprechende Bild ersetzen.

Auswerten kann man dann das ganze wenn man getSorce() des ActionEvents auf die eigene ButtonKlasse castet.
 
G

Gast

Gast
So ich bin jetzt wieder ein Stück weitergekommen und frage einfach mal munter weiter :)
Ich habe mir das ja so vorgestellt, dass ich pro Memory-Karte einen JToggleButton erstellen wollte. Jetzt habe ich mir also eine Klasse erstellt, die die JToggleButton-Klasse erweitert. Dort habe ich folgenden Konstruktor reingeschrieben:
Code:
public Karte(JToggleButton name, int ID, int x, int y, int breite, int hoehe) {
    name = new JToggleButton();
    name.setBounds(x, y, breite, hoehe);
    add(name);
    name.addActionListener(name);
    this.ID = ID;
}
So würde durch einmaliges Aufrufen des Konstruktors ein Button erstellt, wobei die ID gespeichert wird und ich sogar die Position angeben kann. Nun soll der Button aber auch einen ActionListener haben, sodass er auf Klicks reagieren kann. Die Zeile "name.addActionListener(name)" verursacht aber nur Fehler und ich weiß nicht, wie man sonst den ActionListener dort einbinden sollte. Der Fehler heißt:
Karte.java:11:9: addActionListener(java.awt.event.ActionListener) in javax.swing.AbstractButton cannot be applied to (javax.swing.JToggleButton)
Was ist falsch?
 

FelixB

Bekanntes Mitglied
das steht doch da. Die Methode "addActionListener()" erwartet einen ActionListener als Argument...
 
G

Gast

Gast
Das hat mir zwar nicht viel geholfen, aber ich bin trotzdem weitergekommen.
Jetzt aber zu meinem Hauptproblem. Ich habe mir jetzt den Code zusammengeschrieben für den Code einer Memory-Karte. Der steht jetzt in einem Konstruktor drinne, der vom Hauptprogramm aufgerufen wird, sodass eine Karte gezeichnet wird. Es gibt keine Fehler, aber ein Bild wird nicht gezeichnet. Nur was ist an diesem Code falsch?
Code:
public class Memory extends JFrame {
  // Anfang Variablen
  Icon icon = new ImageIcon(getClass().getResource("img/memory.jpg"));
  JToggleButton b1;
  // Ende Variablen

  public Memory(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 300;
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
    Karte karte = new Karte(b1, icon, 1, 10, 10, 90, 90);                 //einzig wesentlich veränderte Stelle bei der Vorlage
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }
Code:
public class Karte extends JToggleButton {
  public static int ID;
  public JToggleButton name;
  private MyActionListener myActionListener = new MyActionListener();

  public Karte(JToggleButton name, Icon hintergrund, int ID, int x, int y, int breite, int hoehe) {
    name = new JToggleButton(hintergrund);
    name.setBounds(x, y, breite, hoehe);
    add(name);
    name.addActionListener(myActionListener);
    this.ID = ID;
    this.name = name;
  }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Memory Spiel Java Basics - Anfänger-Themen 29
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
Olis Erste Schritte Simples Memory Spiel möglich? Java Basics - Anfänger-Themen 1
pinar memory spiel Java Basics - Anfänger-Themen 10
P NullPointerException in Memory-Spiel Java Basics - Anfänger-Themen 5
I Memory-Spiel Feld nur einmal mischen Java Basics - Anfänger-Themen 2
K Memory-Spiel stecke Fest Java Basics - Anfänger-Themen 2
K Ein Memory Spiel ! Java Basics - Anfänger-Themen 6
K Memory-Spiel alle verdeckte karten aufdecken. Java Basics - Anfänger-Themen 26
I Memory-Spiel Java Basics - Anfänger-Themen 2
B Image Matching in Memory Minigame Java Basics - Anfänger-Themen 7
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
P Layout Manager - Welches Layout für Memory? Java Basics - Anfänger-Themen 7
A Java memory leakage Java Basics - Anfänger-Themen 9
T Out of Memory (Java Heap Space) Java Basics - Anfänger-Themen 9
S Datentypen Memory Problem Java Basics - Anfänger-Themen 12
O Memory Thread.sleep() Java Basics - Anfänger-Themen 5
T Memory Leak und der Garbage Collector Java Basics - Anfänger-Themen 21
A Memory Probleme beim Laden von thumbnails Java Basics - Anfänger-Themen 3
S memory heap problem Java Basics - Anfänger-Themen 9
J Memory Footprint von Objekten Java Basics - Anfänger-Themen 2
W Servlet - out of memory Java Basics - Anfänger-Themen 7
B Memory - Zufällige Anordnung von Buchstabenpaaren Java Basics - Anfänger-Themen 8
J Memory Java Basics - Anfänger-Themen 2
G Memory Projekt, Fragen über Fragen Java Basics - Anfänger-Themen 6
B Memory in Java Java Basics - Anfänger-Themen 16
T Out of Memory Error Java Basics - Anfänger-Themen 7
E Heapspace out of Memory Java Basics - Anfänger-Themen 8
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
I Threads Spiel gol Java Basics - Anfänger-Themen 6
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
enesss tictactoe spiel Java Basics - Anfänger-Themen 5
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
Kennewick Basketball Spiel Ergebnisse Java Basics - Anfänger-Themen 11
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
I Simples Risiko-Spiel Java Basics - Anfänger-Themen 5
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
C Java Spiel Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
Kamy Ein einfaches "Vier Gewinnt" Spiel für Anfängerin Java Basics - Anfänger-Themen 51
A Breakout-Spiel , Ball mit Platten abprallen lassen Java Basics - Anfänger-Themen 1
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
M Spiel programmieren Java Basics - Anfänger-Themen 16
Spencer Reid Feedback zu kleinem Spiel Java Basics - Anfänger-Themen 4
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2
I Spiel Java Basics - Anfänger-Themen 34
H ein einfaches Tic Tac Toe Spiel Java Basics - Anfänger-Themen 1
I Spiel programmieren. Java Basics - Anfänger-Themen 16
B Hilfe bei Escape - Spiel Java Basics - Anfänger-Themen 6
S Java-Spiel Java Basics - Anfänger-Themen 2
M Nim-Spiel geht in den negativen Bereich Java Basics - Anfänger-Themen 1
K Klassen Registrierungsseite für ein Spiel Java Basics - Anfänger-Themen 6
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
M Brauche Tipps für ein Spiel Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
Mxxxt Mosaik Spiel - Steuerpanel wird nicht angezeigt Java Basics - Anfänger-Themen 5
M Erste Schritte Zufallszahl Spiel Problem Java Basics - Anfänger-Themen 7
Z Erste Schritte Kleines 2D. Spiel Objekt Bewegung funktioniert nicht Java Basics - Anfänger-Themen 2
H Spiel Kniffel: Gesamtes Array untersuchen. Java Basics - Anfänger-Themen 15
Tacofan Hangman als fertiges Spiel Java Basics - Anfänger-Themen 7
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
K Kleines Spiel auf Java programmieren Java Basics - Anfänger-Themen 2
W Tic Tac Toe Spiel ohne Arrays Java Basics - Anfänger-Themen 7
S Im objektorientiertem "Spiel" kämpfen Java Basics - Anfänger-Themen 3
I Klassen Umsetzungsfrage zu Spiel "Zuul" Java Basics - Anfänger-Themen 3
F Mastermind Spiel Java Basics - Anfänger-Themen 9
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
F Game-Engine für textbasierendes Spiel: Architektur? Java Basics - Anfänger-Themen 9
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
J Java Spiel Zufallsauswahl für Zugbeginn Java Basics - Anfänger-Themen 3
J Frage Antwort Spiel - Wie Zeitcountdown realisieren? Java Basics - Anfänger-Themen 2
L Erste Schritte Spiel: Glückliches Sieben Java Basics - Anfänger-Themen 3
T Hangman spiel Java Basics - Anfänger-Themen 5
J 2 Pc's - Spiel gegeneinander ?! Java Basics - Anfänger-Themen 3
V Spiel Programmieren Java Basics - Anfänger-Themen 9
P 2D-Spiel und Bildschirmgröße Java Basics - Anfänger-Themen 2
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben