Java TicTacToe: Matrix anzeigen

Timdaroxxa

Lieutenant
Registriert
März 2009
Beiträge
954
Heyho,
ich versuche gerade ein TicTacToe Spiel zu programmieren und realisiere dies mit einer 3*3 Matrix.
1. Wie kann ich nun diese Matrix auf eine Oberfläche bringen?

2. Wie könnte ich bei Klick auf die Oberfläche der Matrix andere Werte (also "Feld belegt von Spieler 1...") geben?


Hoffe ich versteht was ich meine.

Gruß an alle!
 
Swing ist dir ein Begriff? Ganz simpler Ansatz - 9 Buttons, die bei Klick Aktionen durchführen (die Spiellogik im Hintergrund auslösen).

Weitere Ideen hier.
 
dann mach dir mal auch gleich gedanken drüber wie das programm dann einen sieger ermittelt. muss ja einen ausspucken, der 3 in einer reihe hat.
 
Sieger ermitteln hab ich schon. Ist ja so ziemlich das einfachste daran! :D
 
Würde eigentlich sogar gegen Buttons raten. Nicht besonders elegant, vergleichsweise viel Overhead und die grafischen Möglichkeiten sind begrenzt.

Bau dir lieber eine Oberfläche zusammen (Canvas, JPanel, etc) die du durch Überschreiben der paint()-Methode befüllst. Zum Abfragen von Klicks reicht ein einfacher MouseActionListener mit ein wenig Umrechnen der Koordinaten. Wenn beispielsweise deine "Schaltflächen" 50px hoch und breit sind, wird ein Klick auf die Koordinate 78,34 wohl auf die zweite Fläche in der ersten Zeile gewesen sein ;)
 
Er ist Anfänger in Sachen GUI, er kann ruhig erst mal mit den Buttons herumhantieren. Schaden tut es jedenfalls nicht.
Wenn er das dann gemeistert hat, kann man dann anfangen, eigene Controls zu basteln.


Interessanter ist eher der Punkt, wie er View (GUI) und Model (Array mit dem TicTacToe) miteinander verbindet.
 
Naja, an deiner Stelle würde ich erstmal versuchen es so einfach wie möglich zu gestalten:

gridlayout mit buttons -> bei buttonklick setzt du den button name auf "o" oder "x". dann solltest du auslesen welcher button gedrückt wurde und den entsprechenden eintrag in deiner matrix ebenfalls als "o" oder "x" markieren. wenn du dann noch einen sieger ermitteln kannst (was du ja bereits hast) bist du im großen und ganzen fertig.

als nächstest könntest du dich an einer überarbeitung deiner implementierung machen und dabei vortgeschrittenere sachen verwenden. unter anderem ist es bei solchen sachen oft sehr übersichtlich das oft verwendete Model-View-Control Pattern zu benutzen. Einfach mal danach googeln. Grob gesagt ist dann deine Matrix dein Modell, also ein abstraktes Abbild der Spielsituation und deine Buttons im Grid ist deine View. Dann gibt es dazu noch Kontroler die dein Model mit deiner View verbinden. Bei jedem button klick wird dann erst das modell geändert und die view wird über diese Änderung benachrichtigt und schaut sich das Modell an. Hat sich was im Modell geändert, updatet sich die view!
 
Zurück
Oben