Hi!
Ich bin dabei, einen Schachcomputer zu programmieren. Es gibt eine Klasse "GUI", die auf ein Objekt der Klasse "Game" zugreifen kann. Das ist nötig, denn je nachdem, was der Benutzer klickt muss Einfluss auf das Spiel genommen werden. Nun ist es so, dass ein Bauer, der an die gegnerische Grundlinie gelangt umgewandelt werden kann.
Der Bentuzer schiebt den Bauer nach vorne --> es wird auf die Klasse "Game" einfluss genommen --> diese Stellt fest, dass der Bauer eingetauscht werden kann --> es öffnet sich ein Fenster, in dem sich der Benutzer eine Figur aussuchen kann.
Nun bedeutet aber der letzte "-->", dass die Klasse "Game" auf die Klasse "GUI" Einfluss nehmen muss, denn die GUI regelt alles Graphische. Das finde ich aber unschön, denn warum sollte eine Klasse "Game" etwas von irgendwelcher Graphik wissen.
Nun habe ich mir überlegt: Die Klasse Game setzt ein flag, dass von einem Thread der GUI regelmäßig gecheckt wird. Je nachdem öffnet sich ein Fenster.
Würdet ihr das auch so kompliziert machen, oder habt ihr vielleicht eine bessere Idee?
Ich bin dabei, einen Schachcomputer zu programmieren. Es gibt eine Klasse "GUI", die auf ein Objekt der Klasse "Game" zugreifen kann. Das ist nötig, denn je nachdem, was der Benutzer klickt muss Einfluss auf das Spiel genommen werden. Nun ist es so, dass ein Bauer, der an die gegnerische Grundlinie gelangt umgewandelt werden kann.
Der Bentuzer schiebt den Bauer nach vorne --> es wird auf die Klasse "Game" einfluss genommen --> diese Stellt fest, dass der Bauer eingetauscht werden kann --> es öffnet sich ein Fenster, in dem sich der Benutzer eine Figur aussuchen kann.
Nun bedeutet aber der letzte "-->", dass die Klasse "Game" auf die Klasse "GUI" Einfluss nehmen muss, denn die GUI regelt alles Graphische. Das finde ich aber unschön, denn warum sollte eine Klasse "Game" etwas von irgendwelcher Graphik wissen.
Nun habe ich mir überlegt: Die Klasse Game setzt ein flag, dass von einem Thread der GUI regelmäßig gecheckt wird. Je nachdem öffnet sich ein Fenster.
Würdet ihr das auch so kompliziert machen, oder habt ihr vielleicht eine bessere Idee?