Hi,
In meinem Schachprogramm will ich eine KI einbauen; diese wird wohl rekursiv arbeiten und nun geht es mir um die Laufzeitoptimierung der einzelnen Schritte.
Ich habe mir überlegt, für einen kurzen Zugmustertest(grundlegende Validität des Zugfeldes) ein Array[Figurentypen(ohne Bauer), 0..7, 0..7] of Boolean anzulegen, welches mir diesen Check mit minimalem Rechenaufwand erledigt(zuerst hatte ich kurze Formeln).
Nun ist dieses Array aber 5 * 8 * 8 = 320 Werte und damit, wenn ich das mit dem "kein Zugriff auf Bits" richtig verstanden habe, 320 Byte, ein drittel KB, groß
Nun weiß ich nicht, wie der Compiler mit const arbeitet: Kopiert er die werte sowieso immer an die Stelle, wird zur Laufzeit eine Kopie erzeugt...
Letzteres wäre fatal, da dann bei jedem Durchlauf der Prozedur 320 Byte beschrieben würden. Insofern meine Frage: Wo muss ich diese Konstante deklarieren, um ein Optimum an Laufzeit zu erhalten? Zu Beginn der Unit(global), im implementation-Teil oder einfach in der Prozedur?
mfG,