===== Index ===== 1. Das Hauptprogramm (Wichtig) 2. Techniche Details zum Programm 3. Die Parameter der MainConfig.ini 4. Die Parameter der Konfigurationsdateien (Puz_*.ini) ==================== 1. Das Hauptprogramm ==================== Das Programm ist zwar nicht das schnellste dafür aber sehr flexible. Die Hauptinformationen aus der "MainConfig.ini" Die mitgelieferte "MainConfig.ini" verweist standardmässig auf die "Puz_CT_345.ini". Diese enthält die Konfiguration für den 3*4*5 Block. Konfigurationen für die folgende Lösungen sind enthalten. Auf der Heise Seite vorgestellte Lösungen Puz_CT_345.ini -> Quader bestehend aus 3*4*5 Puz_CT_256.ini -> Quader bestehend aus 2*5*6 Puz_CT_C.ini -> Die Lösung, die ein C darstellt Puz_CT_T.ini -> Die Lösung, die ein T darstellt Puz_CT_Pyramide.ini -> Die Pyramide mit 5*5 auf de untesten beiden Ebenen Ein anderes Puzzle Puz_TCube.ini -> 54 Steine, die aus je 4 Cubes, die als T angeordnet sind, bestehen, Müssen in einen 6*6*6 Würfel Die alternativen Konfiguration können zur Laufzeit geladen oder beim Start als Parameter übertgeben werden (Konfigurationsdatei auf das Programmicon ziehen). Der "Start"-Button Startet den Ablauf. ================================= 2. Techniche Details zum Programm ================================= - Aus Performancegründen wurde auf eine Synchronisation verzichtet, daher ist ein reibungsloser ablauf nicht garantiert. - Die interne Dokumentation wurde vernachlässigt. - Es existieren zwei Projekte das Hauptprojekt und ein Testprojekt, das Vergleichbare werte liefert. =================================== 3. Die Parameter der MainConfig.ini =================================== [Global Parameter] MaxThreads -> Maximale anzahl gleichzeitig laufender Threads ConfigFileName -> Name der Configurationsdatei, die defaultmässig geladen werden OutputFileNameBase -> Basis des Ausgabenames 4. Die Parameter der Konfigurationsdateien (Puz_*.ini) ====================================================== [OutputInfo] ShowLegend -> Zeigt eine Legende an, die einen Stein einem Steintyp zuordnet WriteEveryNSolution -> Schreibt jede n-te Lösung + die 1. in die Ausgabedatei [BlockInfo] XSize, YSize, ZSize -> Ausdehnung des Quaders, in dem Sich die Lösung befindet. EdgeZone -> Zone um den Quader (muß so groß sein, das Kein teil darüber hinausragen kann). YZLine_##_## -> Für jede Y,Z-Zeile wird für jedes Element angegeben, ob es einen Würfel enhalten darf. 0 = Gesperrt, 1..N = Kann zur bestimmung der Reihenfolge verwendet werden Beispiel: YZLine_01_00=0,0,3,2,2,2 [StoneInfo] StoneCount -> Anzahl der Steine StoneOrder -> Reinhenfolge der Steine Stone_## -> Beschreibung des Jeweiligen Steines Die erste Ziffer gibt an wie viele Steine diese types vorhanden sind Die zweite Ziffer ist die anzahl der Einzelwürfel Die anderen geben in dreiergruppen die x,y,z Koordinaten der einzelWürfel an. Beispiel: Stone_00=2, 3, 0,0,0, 1,0,0, 1,1,0 PreCheckLevel -> 0 - Keine überprüffeng des nächsten freien feldes 1 - Überprüfung für Steine, die aus mehr als einem zusammenhängend Würfel bestehn 2 - Überprüfung für Steine, die aus mehr als zwei zusammenhängend Würfel bestehn FirstPreCheckStone -> ab dem wievielten stein geprüft werden soll. LastPreCheckStone -> bis zu dem wievielten stein geprüft werden soll. [SymetryInfo] EnhancedSymetryCheck=0 -> wird noch nicht unterstützt (Verbesserter Symetriecheck für puzzle, für die der hier angewandte ncht reicht) SymetryPosCount -> Anzahl der Symetrie Punkte (max. 8) SymPos# -> Symetriepositionen x,y,z koordinaten im Quader SymPos0 muß immer die erste gültige position im Quader sein Beispiel: SymPos0=0,0,0