=====
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 dafr aber sehr flexible.

Die Hauptinformationen aus der "MainConfig.ini"
Die mitgelieferte "MainConfig.ini" verweist standardmssig auf die "Puz_CT_345.ini".
Diese enthlt die Konfiguration fr den 3*4*5 Block.

Konfigurationen fr die folgende Lsungen sind enthalten.
Auf der Heise Seite vorgestellte Lsungen
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 Lsung, die ein C darstellt
Puz_CT_T.ini ->		Die Lsung, 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,
			Mssen in einen 6*6*6 Wrfel

Die alternativen Konfiguration knnen 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 Performancegrnden wurde auf eine Synchronisation verzichtet, daher ist ein
  reibungsloser ablauf nicht garantiert. 
- Die interne Dokumentation wurde vernachlssigt.
- 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 defaultmssig 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 Lsung + die 1. in die Ausgabedatei

[BlockInfo]
XSize, YSize, ZSize ->	Ausdehnung des Quaders, in dem Sich die Lsung befindet.
EdgeZone ->		Zone um den Quader (mu so gro sein, das Kein teil darber hinausragen kann).
YZLine_##_## ->		Fr jede Y,Z-Zeile wird fr jedes Element angegeben, ob es einen Wrfel 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 Einzelwrfel
			Die anderen geben in dreiergruppen die x,y,z Koordinaten der einzelWrfel an. 
			Beispiel: Stone_00=2, 3, 0,0,0, 1,0,0, 1,1,0
PreCheckLevel ->	0 - Keine berprffeng des nchsten freien feldes
			1 - berprfung fr Steine, die aus mehr als einem zusammenhngend Wrfel bestehn 
			2 - berprfung fr Steine, die aus mehr als zwei zusammenhngend Wrfel bestehn 
FirstPreCheckStone ->	ab dem wievielten stein geprft werden soll.
LastPreCheckStone ->	bis zu dem wievielten stein geprft werden soll.

[SymetryInfo]
EnhancedSymetryCheck=0 ->	wird noch nicht untersttzt
				(Verbesserter Symetriecheck fr puzzle, fr 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 gltige position im Quader sein
			Beispiel: SymPos0=0,0,0
