Ich programmiere gerade an einem Vier-Gewinnt-Spiel und bin mit dem Computerspieler beschäftigt. Bei dessen Programmierung möchte ich nach x Spielzügen einer procedure/function das Spielfeld übergeben
(ich habe es so implementiert:
Delphi-Quellcode:
type TFarbe = kein,rot,blau;
TSpielfeld = array[0..6,0..5] of TFarbe;
0/0 ist links oben, 7 spalten, 6 zeilen)
und dann zurückbekommen, mit welchen Spielzügen man dieses Spielfeld erreichen kann - natürlich gibts da mehrere Möglichkeiten, aber ich möchte nur eine haben, zu demselben Spielfeld soll auch immer nur die dieselbe Zugfolge zurückgeliefert werden.
ich hatte die Idee, der reihe nach aus einer spalte eines spielfeldes den obersten stein zu entfernen, aber nur dann, wenn das resultierende spielfeld gültig ist, d.h. während eines vier-gewinnt-spiels entstehen kann. Diese Entscheidung, ob ein Spielfeld gültig ist, läßt sich aber nicht ohne riesen Rechenaufwand (die prozedur soll sehr oft aufgerufen werden) implementieren...
hat jemand eine idee/einen link/codeschnippsel oder sonst irgendwas, wie man sowas programmieren könnte? Ich bin auch schon für Denkanstöße dankbar!