problem beim Memory Logik

Status
Nicht offen für weitere Antworten.

boss1986

Mitglied
hallo zusammen...ich programmiere zur zeit ein Memory Spiel für ein Schulprojekt und hänge momentan beim Logik des Spiels. Die nötigen Oberflächen, Zeit-Programm und andere Kleinigkeiten sind soweit in Ordnung.
Mein Problem ist dass ich eine Klasse mit Spiellogik erstellen will welche danach mit GUI-Klasse verbunden wird da es sich hier um ein OOP-Projekt handelt.
In meiner GUISpielfeld werden die Buttons durch ein Array erstellt und in der GUIEinstellung werden die Anzahl der Karten(Buttons) je nach Schwierigkeitsgrad erstellt. Mir fällt eben nur noch die Spiellogik...

soweit bin ich gekommen:

public class Spiellogik {

private GUISpielfeld dieGUI;

public void setGUI(GUISpielfeld dasObjekt) {
dieGUI = dasObjekt;
}
}


würde mir jemand dabei helfen? wäre sehr nett....

dankeschön
 

Marco13

Top Contributor
So als Ansatz ist das ein bißchen wenig. Und über die Frage, ob man ERST die GUI und DANN das eigentliche Spiel programmieren sollte, oder umgekehrt, könnte man jetzt diskutieren. Du könntest mal nach "MVC" oder "Model View Controller" suchen, um da ein paar Infos zu erhalten. Im Moment weiß auch niemand, welche "Rolle" deine GUI übernimmt, und OB es z.B. einen Controller gibt. Aber "irgendwie" mußt du versuchen, deine Spiellogik von der GUI ansteuern zu lassen, und die GUI den aktuellen Spielzustand anzeigen lassen. Die Information, welche Methoden deine GUI anbietet, und eine etwas konkretere Fragestellung wären da schon hilfreich...
 

boss1986

Mitglied
danke für die antwort ^^
also ich erklärs kurz wie ich mir das spiel vorstelle: also ich habe jetzt 2 GUIs (GUIEinstellung, GUISpielfeld) die GUIEinstellung ist mein start fenster, hier hat man 3 schwierigkeitsgraden und je nach gewählte schwierigkeit wird die anzahl der buttons festgelegt und es kommt dann die andere GUI (GUISpielfeld) welche die buttons dort erscheinen.
In der GUISpielfeld-Klasse werden Buttons in einem jPanel erzeugt und in der GUIEinstellung-Klasse wird die anzahl der Buttos festgelegt (8*8 , 6*6 , 4*4)

hier sind die methoden welche die karten erzeugen (in GUISpilefeld):

p
Code:
rivate JPanel getJPanelButtons() {
		if (jPanelButtons == null) {

			GridLayout gridLayout = new GridLayout();
			gridLayout.setColumns(kartenanzahl);
			gridLayout.setRows(kartenanzahl);
			jPanelButtons = new JPanel();
			jPanelButtons.setLayout(gridLayout);
			getButtons(kartenanzahl);
		}
		return jPanelButtons;
	}

	private void getButtons(int kartenAnzahl) {
		int buttonNr = 0;
		for (int j = 0; j < kartenAnzahl; j++) {
			for (int i = 0; i < kartenAnzahl; i++) {
				buttonNr++;
				buttons[j][i] = new JButton();
				buttons[j][i].setName("Button" + buttonNr);
				buttons[j][i].setIcon(new ImageIcon(getClass().getResource("/fussball-ballII.gif")));
				buttons[j][i].addActionListener(this);
				jPanelButtons.add(buttons[j][i]);

			}
		}

	}


und hier ist die Methode welche die anzahl der Karten gibt (in GUIEinstellung):

Code:
public void actionPerformed(ActionEvent e) {
		if (e.getSource().equals(jButtonFertigstellen)) {
			this.setVisible(false);
			GUISpielfeld dieGUI = null;
			if (jRadioButton3.isSelected()) {
				dieGUI = new GUISpielfeld(8, this);
			}
			else if (jRadioButton2.isSelected()) {
				
				dieGUI = new GUISpielfeld(6, this);				
			}
			
			else if (jRadioButton1.isSelected()) {
				
				dieGUI = new GUISpielfeld(4, this);
			}
			dieGUI.setVisible(true);
		}
	}


ich hoffe diese Infos helfen weiter um mein problem zu lösen ^^

danke
 

Marco13

Top Contributor
Naja. :? Die Buttons vom Spielfeld bekommen ja schon einen ActionListener. Der könnte abfragen, WELCHER der Buttons geklickt wurde (dazu gibt's vielleicht bald einen FAQ-Eintrag :roll: ). Wenn man dan Button hat, kann man ihn "umdrehen", d.h. z.B. ein anderes Icon setzen, und sich merken, dass ein Button aufgedeckt ist. Wenn man dann einen weiteren Button aufdeckt, überprüft man, ob das Symbol gleich ist. Nun. Das weißt du wohl. Memory eben. Man könnte jetzt diese beiden Methoden als "Kern" für ein Memory verwenden. Aber wirklich helfen würde dir eine "Komplettlösung" wohl nicht. In Ermangelung einer konkreten Frage... weiteres Nachfragen: Was soll denn z.B. passieren, wenn zwei gleiche Buttons "aufgedeckt" sind?
 

boss1986

Mitglied
also eine komplette lösung im sinne einer neue klasse (Spiellogik) würde mir schon helfen, denk ich mal^^.
Eben Prinzip von Memory ist mir bekannt. Wenn 2 gleiche Karten aufgedeckt sind, dann sollten sie so bleiben und wenn nicht dann werden beide zugedeckt...und eben das ganze, also Kartenziehen, aufdecken, vergleichen, zudecken usw. hätte ich gerne in einer neuen Klasse die dann mit meine GUIs verbunden ist gehabt.
Es wäre supper wenn mir jemand dabei helfen würde diese Klasse zu realisieren.
 

Ellie

Aktives Mitglied
Schau mal in deiner Bücherei nach dem Buch „Einsteig in Java 6“ von Galileo Computing. Im Kapitel über GUI wird ein Memory-Spiel als Beispiel entworfen.
 

boss1986

Mitglied
danke für den hinweis und ich werds 100% machen aber ich glaub dafür wäre dann die zeit knapp da der abgabetermin in höchstens 2 wochen ist aber ich werde auf jeden fall nachschauen
 

Marco13

Top Contributor
Hier steht ja überall oft genug: Wir machen keine Hausaufgaben. Aber weil du's bist:
Code:
class Spiellogik
{
    int aufgedecktesSymbol = -1;
    int aufgedeckterButtonID = -1;

    public void karteAufdecken(int neuerButtonID)
    {
         int neuAufgedecktesSymbol = dieGUI.getSymbol(neuButtonID);
         if (augedecktesSymbol == -1)
         {
              aufgedecktesSymbol = neuAufgedecktesSymbol;
              aufgedeckterButtonID = neuerButtonID;
         }  
         else if (aufgedecktesSymbol != neuAufgedecktesSymbol)
         {
              dieGUI.schließeButtons(aufgedeckterButtonID, neuerButtonID);
              aufgedecktesSymbol = -1;
              aufgedeckterButtonID = -1;
         }
    }
}
Das war's. Garnicht so schwer, oder?
 

boss1986

Mitglied
vielen dank...
ich habe noch in meiner GUI klasse eine Methode getSymbol und eine schließeButtons hinzugefügt...ist das richtig?
 

Marco13

Top Contributor
Hmpf :? eigentlich sollte das ja nur ein Wink mit dem Zaunpfahl sein, und andeuten, dass man die Spiellogik nicht wirklich schreiben kann, wenn man nicht weiß, welche Methoden das GUI (das ja im Moment vmtl. Model und View und Controller gleichzeitig ist) zur Verfügung stellt. Aber ... wenn's jetzt trotzdem geht ist ja gut. Nicht schön, aber OK. Oder - funktioniert es denn nun?
 

boss1986

Mitglied
oops^^...ich habs dann falsch verstanden, also meine GUIs erhalten Methoden die für die ertstellung der GUI nötig sind plus die zusätzliche Methoden die ich geschickt hab...d.h. außer diese Methoden die hier zu sehen sind, werden die anderen automatisch hinzugefügt um das nötige Fenster zu erstellen und deshalb glaub ich nicht dass diese Methoden eine Rolle in der Spiellogik-Klasse spielen

das was du mir geschickt hast zeigt kein Fehler aber es funktioniert eben nicht,

hmm...ich glaub ich krieg mein Problem nicht gelöst.
 

Marco13

Top Contributor
Ein lauffähiges Beispiel oder eine Erklärung, WAS nicht funktioniert ... ach, was liegt mir dran :roll:
 

boss1986

Mitglied
also dein Programm hat keine Funktionen zu mindest mal in meinem Programm^^

da hast du mir eine methode wo die karten aufdecken soll geschickt wenn ich das richtig verstanden habe aber es fehlen methoden die die karten überhaupt auf die buttons zeigen und die, die karten mischen bzw. vergleichen ^^

aber danke dass du es verfolgst sehr nett von dir ^^
 

Evil-Devil

Top Contributor
Boss, du hast da was nicht verstanden...der Code von Marco war als Beispiel gedacht. Du musst die Logik schon selbst implementieren und mit deiner GUI verknüpfen. -.-
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Problem beim Aufrufen des Spiels von einem Menü Spiele- und Multimedia-Programmierung 7
G LIBGDX Problem beim resizen des Frames Spiele- und Multimedia-Programmierung 3
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
T Problem beim Aufbau des Spielfelds Spiele- und Multimedia-Programmierung 18
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
L Problem beim Rätsellöser Spiele- und Multimedia-Programmierung 3
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
K Problem beim Anzeigen von Bildern Spiele- und Multimedia-Programmierung 5
D Problem mit Überprüfung beim Lottospiel Spiele- und Multimedia-Programmierung 6
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
aze Problem beim Laden von Obj File Spiele- und Multimedia-Programmierung 3
S Problem beim laden eines Bildes in einer Methode Spiele- und Multimedia-Programmierung 14
B Problem beim Programmieren von 4Gewinnt Spiele- und Multimedia-Programmierung 5
G Problem beim Zeichnen von LineArrays Spiele- und Multimedia-Programmierung 9
C Problem beim picken Spiele- und Multimedia-Programmierung 10
B Problem beim Programmieren Von Mühle Spiele- und Multimedia-Programmierung 6
J Problem beim Instaliren Spiele- und Multimedia-Programmierung 8
N Rundenstrategiespiel - Problem beim Drehen eines Bildes Spiele- und Multimedia-Programmierung 18
C Graphische Benutzerschnittstelle, Problem beim Zeichnen Spiele- und Multimedia-Programmierung 4
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
C Plugin Problem Spiele- und Multimedia-Programmierung 2
J JLayer Problem Spiele- und Multimedia-Programmierung 1
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
G LIBGDX Texturen Problem Spiele- und Multimedia-Programmierung 1
C AutoClicker Problem Spiele- und Multimedia-Programmierung 2
S OOP Logik Problem Spiele- und Multimedia-Programmierung 5
G LIBGDX Viewport Problem Spiele- und Multimedia-Programmierung 3
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
C Minecraft Minecraft Plugin Problem Spiele- und Multimedia-Programmierung 17
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
V Problem mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
W Generelles Problem: Entscheidungsfindung Spiele- und Multimedia-Programmierung 4
T Problem bei Kollisionsabfrage Spiele- und Multimedia-Programmierung 4
C Vier Gewinnt Problem mit Ordnerstruktur Spiele- und Multimedia-Programmierung 2
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Sound Problem Spiele- und Multimedia-Programmierung 3
M Sound Engin Problem 2 Spiele- und Multimedia-Programmierung 2
J Problem bei der GUI - Zu viele Spielbretter Spiele- und Multimedia-Programmierung 2
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
0 Boxen übereinander stapelt Problem Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
R 2D platformer - enemy damage -> TIMER PROBLEM Spiele- und Multimedia-Programmierung 3
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
L Minecraft Minecraft Plugin programmieren (Craftbukkit 1.7.2) Problem Spiele- und Multimedia-Programmierung 4
B Minecraft mehr Ram zuweißen Problem Spiele- und Multimedia-Programmierung 0
K Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 3
Y Problem mit repaint() in run() Spiele- und Multimedia-Programmierung 2
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
T Problem mit Kollisionsabfrage der NPC Spiele- und Multimedia-Programmierung 1
J Minecraft Problem mit dem JRE - Minecraft Spiele- und Multimedia-Programmierung 3
TheSorm Problem mit 2 classen NullPointerException Spiele- und Multimedia-Programmierung 1
S Problem mit 4 gewinnt(MinMax Algorithmus) Spiele- und Multimedia-Programmierung 2
N Problem in der Main.class Spiele- und Multimedia-Programmierung 1
J Blöcke, Hitboxen, Koolisionsabfrage - Problem Spiele- und Multimedia-Programmierung 8
S Problem mit 3d-Polygon Spiele- und Multimedia-Programmierung 2
A Problem mit Sound Spiele- und Multimedia-Programmierung 5
C Nxt Duell Problem Spiele- und Multimedia-Programmierung 4
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
ruerob Problem bei Fade-Out von Sounds Spiele- und Multimedia-Programmierung 3
L [Slick2D] Problem bei Speicherfreigabe Spiele- und Multimedia-Programmierung 2
M Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 22
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
J Problem bei pixelgenauer Kollisionsabfrage Spiele- und Multimedia-Programmierung 10
F Problem mit dem Abspielen von byte[] (Audioprogrammierung) Spiele- und Multimedia-Programmierung 2
C Problem mit Abspielen von Audio-Dateien Spiele- und Multimedia-Programmierung 3
R Problem bei Farbe ändern/4Gewinnt Spiele- und Multimedia-Programmierung 5
R StringIndexOutOfBoundsException - Problem Spiele- und Multimedia-Programmierung 2
S Problem mit Sichtfeld/Licht in einem Raster Spiele- und Multimedia-Programmierung 5
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
A TileMap KeyListener - Problem Spiele- und Multimedia-Programmierung 2
J Problem mit Threads Spiele- und Multimedia-Programmierung 8
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Fu3L Problem mit 3D Noise Spiele- und Multimedia-Programmierung 4
T Problem bei LinkedList / JPanel Spiele- und Multimedia-Programmierung 4
T Problem mit ClassLoader und LWJGL Spiele- und Multimedia-Programmierung 5
M Scrolling Repaint Problem Spiele- und Multimedia-Programmierung 2
Samake03 [Problem] layeredPane bzw. Viewport Spiele- und Multimedia-Programmierung 3
Helgon glTexParameter / glTexImage2D Problem Spiele- und Multimedia-Programmierung 11
T Jmonkey opengl problem Spiele- und Multimedia-Programmierung 13
M Problem mit Kamera (glMultMatrix (OpenGL/ LWJGL)/ Quaternionen) Spiele- und Multimedia-Programmierung 5
M Problem mit Gameserver / Datensynchronisation Spiele- und Multimedia-Programmierung 10
G Mein erstes minigame -> problem mit Methode Spiele- und Multimedia-Programmierung 3
X Geometry Wars Clone Problem Spiele- und Multimedia-Programmierung 4
H Problem mit JMonkeyEngine3 und OgreXML Spiele- und Multimedia-Programmierung 3
D [JOGL 2.0] Kleines Problem mit freier Flugsteuerung Spiele- und Multimedia-Programmierung 3
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
T Problem mit JnR-Steuerung / KeyListener Spiele- und Multimedia-Programmierung 6
D Problem Mit Miensweeper Clone & rekursive Methode Spiele- und Multimedia-Programmierung 4
M Performance Problem bei BufferedImage Spiele- und Multimedia-Programmierung 7
T Problem mit Speicherverbrauch Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Neue Themen


Oben