TicTacToe - Bitte um Feedback

timbeau

Gesperrter Benutzer
Hallo zusammen,

um den Min-Max-Algorithmus zu verstehen habe ich ein TicTacToe kreiert und dabei auch meine Swingkenntnisse vertieft.

Da ich aber noch sehr am Anfang stehe, bitte ich um ein paar Kommentare sowohl beim Handling wie auch beim Code...falls sich da jemand reinwühlt. Ich habe versucht das MVC-Pattern einzuhalten. Allerdings habe ich z.B. die View als Observer vom Model eingetragen. Ansonsten geben 2 Listener die Kommandos an den Controller und dieser leitet die nötigen Operationen.

Es gibt 3 KI-Gegner: sehr leicht, leicht und unbesiegbar.
Ein Random-Spieler, ein Spieler der 1-2 Züge vorrausdenkt und der Min-Max-Spieler.

Zusätzlich kann man den "Humanplayer" auswählen und Namen und Zeichen vergeben. Zeichen die doppelt vergeben werden, sollten durch mein Programm ausgetauscht werden. Dies klappte bei meinen Tests, ich habe aber noch keine Anzeige für diesen Fall.

So siehts aus:
tictactoe.png


Im Anhang sind auch die Source-Files, kann sein dass da noch eine Testklasse mit rumschwirrt.

Was vll. für jemanden noch interessant ist, ist die Methode initPlayer() in der Klasse ButtonListener:
Java:
public Player initPlayer(String playerKlasse, String playerName,
			String playerChar) {

		Player player = null;

		if (playerKlasse.equals("HumanPlayer")) {
			/*
			 * public HumanPlayer(PlayTicTacToe controller, String
			 * playerCharPar, String playerNamePar, TicTacToe view) {
			 */
			try {
				Class<HumanPlayer> oneTmp = HumanPlayer.class;
				@SuppressWarnings("rawtypes")
				Class[] params = new Class[2];
				params[0] = String.class;
				params[1] = String.class;

				Constructor<HumanPlayer> oConstr = oneTmp
						.getConstructor(params);
				Object[] aoParams = new Object[2];
				aoParams[0] = playerChar;
				;
				aoParams[1] = playerName;

				player = oConstr.newInstance(aoParams);
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (InstantiationException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			} catch (SecurityException e) {
				e.printStackTrace();
			} catch (NoSuchMethodException e) {
				e.printStackTrace();
			}
		} else {
			try {
				Class<?> oneTmp = Class.forName("computerPlayer."
						+ playerKlasse);
				@SuppressWarnings("rawtypes")
				Class[] params = new Class[2];
				params[0] = TicTacToeFramework.class;
				params[1] = Player.class;

				Constructor<?> oConstr = oneTmp.getConstructor(params);
				Object[] aoParams = new Object[2];
				aoParams[0] = model;
				;
				aoParams[1] = null;

				player = (Player) oConstr.newInstance(aoParams);
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (InstantiationException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			} catch (SecurityException e) {
				e.printStackTrace();
			} catch (NoSuchMethodException e) {
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
		return player;

	}

Schonmal danke für die Kommentare falls es welche gibt ;)

Gute Nacht
 

Anhänge

  • tictactoe.jar
    59,5 KB · Aufrufe: 8

timbeau

Gesperrter Benutzer
Hi,

die Methode entsprang der Idee einfach das Package auszulesen und für jede gefundene Java-Klasse die das Player Interface implementiert, einen Eintrag in der Liste zu hinterlegen. Habe ich allerdings erstmal nicht weiter verfolgt.

Dass ich den HumanPlayer dann so implementiert habe ist wohl überflüssig. Danke.
 

timbeau

Gesperrter Benutzer
:autsch:

Gefixed hoffe ich, sieht nicht soo toll aus. Habs gelöst indem ich alle Buttons deaktiviere. Thx
 

Anhänge

  • tictactoe.jar
    59 KB · Aufrufe: 15
Ähnliche Java Themen
  Titel Forum Antworten Datum
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
Fabel TicTacToe MiniMax Algorithmus geht nicht Spiele- und Multimedia-Programmierung 4
M schematische Darstellung TicTacToe Spiele- und Multimedia-Programmierung 7
T TicTacToe Spiele- und Multimedia-Programmierung 5
A Multidimensionler Array - Elemente vergleichen (TicTacToe) Spiele- und Multimedia-Programmierung 4
Z Minimax-Algorithmus für TicTacToe Spiele- und Multimedia-Programmierung 5
S TicTacToe Spiele- und Multimedia-Programmierung 2
J Tictactoe Spiele- und Multimedia-Programmierung 3
A TicTacToe Spiel Spiele- und Multimedia-Programmierung 3
H Uniaufgabe : TicTacToe Spiele- und Multimedia-Programmierung 9
H TicTacToe Code Vereinfachen Spiele- und Multimedia-Programmierung 5
E TicTacToe Spiele- und Multimedia-Programmierung 44
H MiniMax bei TicTacToe(x-O) funzt nicht (ganz :P) Spiele- und Multimedia-Programmierung 11
R TicTacToe: Spieler kann nicht gewinnen Spiele- und Multimedia-Programmierung 15
O Pause Menu im 2D Game, bitte um Rat! Spiele- und Multimedia-Programmierung 4
S Java Sound - Skipping in .mp3 Files und Bug (Bitte überprüfenl) Spiele- und Multimedia-Programmierung 14
C ***** bitte thread löschen *** Spiele- und Multimedia-Programmierung 3
S AirHockey Kollisionsprobleme, bitte um Hilfe Spiele- und Multimedia-Programmierung 2
R JAsteroids - Bitte testen! Spiele- und Multimedia-Programmierung 33
T Bitte um Hilfe bei Animationen Spiele- und Multimedia-Programmierung 10
P Langsames laden der Maps, bitte testen Spiele- und Multimedia-Programmierung 14
T Spiel mit schöner Grafik, bitte testen Spiele- und Multimedia-Programmierung 10
R JavaPong - Bitte Testen Spiele- und Multimedia-Programmierung 7
thE_29 Vor dem ersten Posten bitte lesen! Spiele- und Multimedia-Programmierung 0
R Vier gewinnt: Bitte testen Spiele- und Multimedia-Programmierung 25
H WegnehmSpiel, bitte Testen. Spiele- und Multimedia-Programmierung 11
B Euer Feedback zu meinem Code ist gefragt Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben