Mosaik Spiel

sarun

Mitglied
Guten Tag
Hab eine frage bezüglich der Point Klasse.
Ich habe s oein Mosaik Spiel gemacht z.B 5x5 Würfelfelder die man aufdecken kann kennen bestimmt welche.

Zur frage, wie kann ich die einzelnen würfel mit point speichern? Ich kann ja keine Coordinaten benutzen.
Ich habe die Felder im Code mit zeile und spalte deklariert. Irgendwie häng ich hir fest :bahnhof:

public void setLocation()
 
N

nillehammer

Gast
Ein Point ist eine Abstaktion einer Koordinate eines Pixels. Ich glaube nicht, dass es das ist, was Du suchst. Ich denke, es ist sinnvoller, sich ein Layout zu suchen, mit dem man bequem 5x5 Felder tabellarisch andordnen kann (evtl. GridLayout) und dann auf diesen Feldern Images zu platzieren. D.h. Du brauchst jetzt nur noch 6 verschiedene Bilder für die verschiedenen Augenzahlen....
 

sarun

Mitglied
Allso so sehen bei mir ein teil der Klassen aus
Jetzt muss ich über die Metode getStatiskInfo die anzahl der versuche sowie der Reihe nach alle angeklickten Felder ausgeben.
z.B zeile 4 / spalte 3
zeile 0 / spalte 2 usw
Jemmand ein Tipp wie ich das speichern kann?

Java:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Panel;

public class FarbMosaik extends Panel {


	private MosaikEventHandler eventHandler;
	private ModelIF model;
	public MosaikEventHandler getEventHandler(){
		return eventHandler;
	}

	public FarbMosaik(int raster, int breite, Color farbeRueckseite, Color farbeVorderseite) {
		model = new MosaikModel (raster, raster);
		eventHandler = new MosaikEventHandler (model);
		this.setLayout(new GridLayout(raster, raster, 1, 1));
		int canvasBreite=breite/raster;

		for (int i=0; i< raster; i++) {
			for (int j=0; j< raster; j++) {
				MosaikCanvas mc = new MosaikCanvas(i, j, farbeRueckseite, farbeVorderseite);
				mc.addMouseListener(eventHandler);
				model.putObj(i, j, mc);
				mc.setSize(canvasBreite, canvasBreite);
				this.add(mc);
			}
		}
	}
}
Java:
public class MosaikModel implements ModelIF {

	MosaikIF [] [] mObjects;
	protected int zeilen, spalten;

	public MosaikModel(int zeilen, int spalten) {
		this.zeilen=zeilen;
		this.spalten=spalten;
		mObjects = new MosaikIF[zeilen][spalten];



	}

	public void switchNachbarn(int zeile, int spalte) {
		// erste Zeile: Mitte, links, rechts
		if (zeile-1 >=0){
			invert(zeile-1, spalte);
			if (spalte-1 >=0)
				invert (zeile-1, spalte-1);
			if (spalte+1 < spalten)
				invert(zeile-1, spalte+1);
		}
		// zweite Zeile: links, rechts
		if (spalte-1 >=0)
			invert(zeile, spalte-1);
		if (spalte+1 < spalten)
			invert(zeile, spalte+1);
		// dritte Zeile: Mitte, links, rechts
		if (zeile+1< zeilen) {
			invert(zeile+1, spalte);
			if (spalte-1 >=0)
				invert(zeile+1,spalte-1);
			if (spalte+1 < spalten)
				invert (zeile+1, spalte+1);
		}

	}
	public void action(int zeile, int spalte){
		this.switchNachbarn(zeile, spalte);
	}
	public void invert(int zeile, int spalte) {
		mObjects[zeile] [spalte].switchSeite();
	}
	public void putObj(int zeile, int spalte, MosaikIF mObj) {
		mObjects [zeile][spalte] = mObj;
		}


}
Java:
public class StatistikModel implements ModelIF {

	private int versuche;
	public StatistikModel() {
	}
	public void action(int zeile, int spalte) {
		versuche++;
	}
	public String getStatistikInfo(){
	String returnString = "Anzahl Versuche: ";
		returnString += versuche;
		returnString += "\n";
		return returnString;
	}
	public void putObj(int zeile, int spalte,MosaikIF mObjc) {
		// in diesem Model kein Implementierungsbedarf
	}
}
Java:
public interface ModelIF {
	public void action(int zeile, int spalte);
	public void putObj(int zeile, int spalte, MosaikIF mObj);
}

Java:
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.util.Hashtable;
import java.util.Enumeration;


public class MosaikEventHandler implements MouseListener {


	Hashtable modelTable;
	Object key;

	public MosaikEventHandler(ModelIF model){
		modelTable = new Hashtable();
		addModel(model);

}
	private int zeile, spalte;
	public void mouseReleased(MouseEvent me)    {
		zeile=((MosaikIF)me.getSource()).getZeile();
		spalte=((MosaikIF)me.getSource()).getSpalte();

		Enumeration enum = modelTable.keys();
			while(enum.hasMoreElements()) {
			key=enum.nextElement();
			((ModelIF)modelTable.get(key)).action(zeile, spalte);
		}
	}
	public void mouseClicked(MouseEvent me){}
	public void mouseEntered(MouseEvent me){}
	public void mouseExited(MouseEvent me){}
	public void mousePressed(MouseEvent me){}

	public void addModel(ModelIF model) {
		key=new Integer(model.hashCode());
		modelTable.put(key, model);
	}
	public ModelIF removeModel(ModelIF model) {
		key=new Integer(model.hashCode());
		return (ModelIF)modelTable.remove(key);
	}
}
 
S

SlaterB

Gast
auf beliebige Weise, erstelle eine Klasse Zug, speichere Objekte davon in einer Liste,
oder nimm normalere Roh-Daten, etwa einen String

bei jedem Vorgang ein neuer Eintrag,
 
S

SlaterB

Gast
die Kästchen an sich hast du mit [c]MosaikIF [] [] [/c] doch schon,
ansonsten wäre eine Wiederholung der Frage nicht besonders charmant,
oder inwiefern habe ich bestimmte Details nicht berücksichtigt?

einfach nur 'ich nix wissen, häh'-Fragen sind allgemein die schlimmsten,
versuche jede Frage lang und ausführlich zu stellen, mit tausenden zu bedenkenden Details, hunderten Beispielen, zig versuchten Varianten, Fehlermeldungen und allem drum und dran
(Idealversion, nicht zwanghaft sehen ;) )
 

sarun

Mitglied
Ich weiß jetzt nicht ob ich meine frage richtig verstanden habe, "warte auf Antwort".
Aber bis jetzt hab ich ein 4x4 Kästchen, also 4 spalten und 4 zeilen.
Wie könnte man jetzt das Kästchen oben links in der ecke speichern?

Also sowas wie Kästchen1 = zeile0 , spalte0 / kästchen2 = zeile0, spalte1
 
S

SlaterB

Gast
ich verstehe deine Frage auch nicht, was bedeutet es 'ein Kästchen zu speichern'?
wenn es dir noch um die grundsätzliche Initialisierung des Programmes geht, dann bestimmt die Ablage im Array die Position,
> putObj(int zeile, int spalte, MosaikIF mObj)
scheint mir dazu weit gediegen, die Doppel-Schleife in FarbMosaik-Konstruktor macht doch alles?

oder geht es dir wie danach dann einmal erwähnt um eine Dokumentation der im Programmverlauf durchgeführten Züge?
all diese Worte darf man auch verwenden zur eindeutigen Beschreibung einer Frage

beantwortet habe ich es freilich schon, wegen der allgemeinen Verwirrung wiederhole ich es noch ein wenig,
aber grundsätzlich ist das vollkommen sinnlos, schon gesagt:
erstelle z.B. eine Klasse Zug, mit beliebigen internen Aufbau, int-Attribute, String-Attribute usw.,
während du einen Zug durchführst, lege alle relevanten Informationen im Zug-Objekt ab,
merke dir alle Züge in einer Liste

wie könnte bei so einem einfachen Vorgang, spätestens nachdem ich ihn schon erwähnt habe, an sich eine Frage offen sein?
wenn du alles implementierst und Fehler auftreten usw. sind Detail-Fragen natürlich immer möglich
 

sarun

Mitglied
Directupload.net - 2r8iq3l3.jpg

So siht das aus und es soll eine statistische Auswertung hinzugefügt werden über die Method getStatistikInfo welches wie offt angeklickt wurde.
Ich weiß es ist ganz einfach aber irgendwie fehlt mir zurzeit der start also die deklaration.

Hoffe das bild siht man
 
Zuletzt bearbeitet:
S

SlaterB

Gast
die einfachste Variante ist ein Zähler, eine int-Variable,
bei jeder Aktion oder was auch immer den Zählerstand erhöhen, so dass du später
'20 Aktionen wurden ausgeführt' oder ähnliches als Statistik vermelden kannst

auch zu dieser um 95% vereinfachten Variante des Problems keinerlei Ideen außer große Fragezeichen?
 
S

SlaterB

Gast
keine Schleife, jede Aktion ist doch ein ActionListener, oder ein MouseListener, mouseReleased() sehe ich oben,

da machst du schon komplizierte Sachen, zwei Bilder vertauschen oder was auch immer,
und nun nur noch zusätzlich count++; eine Variable um 1 erhöhen,

Ergebnis: du kannst dir zu jeder Zeit die Variable count anschauen, wenn sie auf 17 steht, dann wurde wohl 17x irgendwas gemacht,
das ist eine Information, für die Statistik

was kann daran schwer sein?

wenn du das begriffen hast, kann man danach komplizierter arbeiten, statt nur count zu zählen
für jede Aktion z.B. einen String "diesmal habe ich .. + .. vertauscht", diese Strings in einer Liste sammeln,
bei jeder Aktion einen String erstellen und ablegen
 

sarun

Mitglied
in der statistik hab ich ja qwasi den zähler für maus klicks wie oft geklickt wurden.
Ich möchte wissen wie ich die einzelne Felder speichern kann und der reihe nach ausgebn.
 
S

SlaterB

Gast
ich verstehe nicht was du willst, kannst du das nicht eindeutig mit Worten oder Beispielen beschreiben, Zustand vorher/ nachher?
jetzt bist du wieder einmal bei 'einzelne Felder speichern', was bedeutet das, was ändert sich wo und wie?
willst du A) das Programm bedienen, was immer dabei überhaupt passiert, willst du bei einem Mausklick in der GUI eine Änderung bewirken,
z.B. in einem Memomy-Spiel eine Karte umdecken

oder geht es dir B) GRUNDLEGEND um was anderes, wie ich die ganze Zeit halb vermute, funktioniert dein Programm schon bestens,
geht es dir allein darum, eine Aktion zu dokumentieren, Informationen abzuspeichern so dass später in einer Statistik ausgegeben werden kann
"Spielschritt 27: zu Zeitpunkt xy klickte der User auf Feld z, das wurde von sichtbar auf nicht sichtbar gedreht"
(um bei meinem Memory zu bleiben)

ich weiß nicht wovon du redest,
"wie ich die einzelne Felder speichern kann und der reihe nach ausgebn" kann alles mögliche bedeuten
 

sarun

Mitglied
Es geht um B. Es soll wiedergegeben werden in der Statistik follgendes.

versuch: 10 zeile 4 / spalte 3
zeile 0 / spalte 2
zeile 2 / spalte 2
usw

aber vorher muss das ja gespeichert werden auf welches Kästchen man geklickt hat.

Und in dem Beispiel wäre ja Kästchen 1 z.B zeile 0 / spalte 0.
 
S

SlaterB

Gast
also weiter im bisherigen Weg,
ich hoffe du hast das mit der count-Variable gemacht/ bisschen nachvollzogen,

statt der count-Variable kommt wie gesagt eine Liste,
statt count++; kommt ein add() für die Liste, etwas einfügen,
als relativ einfache Variante ein String "zeile .. / spalte ..." den du an dieser Stelle, beim add() zusammenbaust,
die Informationen, Zeilennummer usw. werden an dieser Stelle ja wohl vorhanden sein

Ergebnis: eine Liste mit "zeile 4 / spalte 3", "zeile 0 / spalte 2" usw., damit weißt du dann hoffentlich etwas anzufangen


unvermeidbare Standardfrage: was ist daran nun schwer?
na, kann man wirklich ignorieren ;)
 
S

SlaterB

Gast
da wo count war, z.B. in der Klasse MosaikEventHandler, falls es nicht mehrere Handler gibt
(schlecht, dann wären es mehrere Listen mit je nur Teil-Daten),

kann auch erstmal eine 'public static'-Variable sein, dann überall möglich wie 'System.out',
ist irgendeiner zentralen Klasse,

wie eine Liste zu erstellen ist ist für sich Standardwissen
 

sarun

Mitglied
em.. ich hoffe ich verwechsel jetzt nichts aber der Zähler ist in der Klasse StatistikModel.
Warum dann MosaikEventHandler?
 
S

SlaterB

Gast
ich habe mir nur irgendwas ausgesucht, dein Programm kannte ich nicht so genau

Java:
    private int versuche;

    public void action(int zeile, int spalte) {
        versuche++;
    }
uiui, das ist ja mal genau die richtige Stelle, und ich rede noch lange neu über einen counter, hast du doch schon,
ruhig hinweisen wenn ich nur Stuss erzähle/ nicht genau nachschaue, je mehr Infos desto besser

also hier ein neues Attribut Liste,
und diese Methode ist prädestiniert, einen String "zeile .. / spalte ..." mit den Parametern zusammenzubauen
und diesen in die Liste einzufügen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mxxxt Mosaik Spiel - Steuerpanel wird nicht angezeigt Java Basics - Anfänger-Themen 5
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
B Memory Spiel Java Basics - Anfänger-Themen 29
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
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
Olis Erste Schritte Simples Memory Spiel möglich? Java Basics - Anfänger-Themen 1
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
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
T Blöcke für ein Jump and Run Spiel Java Basics - Anfänger-Themen 8
S 2D-Spiel mit Threads... Java Basics - Anfänger-Themen 3
S 2D-Spiel im Vollbild an größe anpassen? Java Basics - Anfänger-Themen 3
M hangman spiel Java Basics - Anfänger-Themen 1
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
pinar memory spiel Java Basics - Anfänger-Themen 10
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Variablen Invalid Character - Error -> Spiel mit Variablenergebnissen Java Basics - Anfänger-Themen 8
K Schere Stein Papier Spiel Java Basics - Anfänger-Themen 3
A Feedback zum Spiel Java Basics - Anfänger-Themen 5
F Hilfe bei meinem Spiel Java Basics - Anfänger-Themen 3
C Lotto Spiel Java Basics - Anfänger-Themen 23
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
Dogge Farben-Spiel Java Basics - Anfänger-Themen 20
K Diverse Bugs in einem Snake Spiel Java Basics - Anfänger-Themen 4
2 Lotto-Spiel Java Basics - Anfänger-Themen 9
X Datentypen Probleme mit Char bei meinem 1. Spiel Java Basics - Anfänger-Themen 20
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
H kleines Spiel [Processing] Java Basics - Anfänger-Themen 7
P NullPointerException in Memory-Spiel Java Basics - Anfänger-Themen 5
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
K Hilfe, komme nicht weiter in meinem JAVA-Spiel Java Basics - Anfänger-Themen 3
J Programm(Spiel) neustarten Java Basics - Anfänger-Themen 8
M Suche Beispiel-Spiel Java Basics - Anfänger-Themen 3
C Java Nullpointer Exception in 2D-Spiel Snake Java Basics - Anfänger-Themen 8
M Apfel-Spiel KeyListener Java Basics - Anfänger-Themen 33

Ähnliche Java Themen

Neue Themen


Oben