Softwareumgebung:Konfigurationsdatei: Unterschied zwischen den Versionen

Aus Kicker
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
Folgende Datei beinhaltet die meisten Konfigurationen. Sie ist ausführlich kommentiert um den Aufbau zu erläutern. Änderungen an den Werten können angewandt werden, ohne den Quellcode verändern zu müssen, die Struktur muss jedoch erhalten bleiben.
Die entsprechende Datei, die im Betrieb verwendet wird, ist nicht mit Kommentaren versehen, da diese die Funktionalität von tinyxml beeinträchtigt haben.

<div style="border: 1px dashed #2F6FAB;">
<div style="border: 1px dashed #2F6FAB;">
<source lang="xml">
<source lang="xml">

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- XML Wurzelelement -->
<profile>
<profile>

<!-- Verbindungsinformationen -->
<!-- Verbindungsinformationen -->
<connections>
<connections>
<!-- Eigener Rechnername/IP-Adresse -->
<localhost host="localhost" />
<localhost host="localhost" />
<!-- Rechnername/IP-Adresse von der SPSchnittstelle -->
<SPServer host="localhost" port="50000" />
<SPServer host="localhost" port="50000" />
<!-- Rechnername/IP-Adresse der Ballerkennung -->
<Ball host="localhost" port="50001" />
<Ball host="localhost" port="50001" />
<!-- Rechnername/IP-Adresse der GUI (noch nicht implementiert) -->
<Gui host="localhost" port="60002" />
<Gui host="localhost" port="60002" />
<!-- Rechnername/IP-Adresse vom Client der Spielsteuerung zur SPSchnittstelle -->
<KiSPServer host="localhost" port="60000" />
<KiSPServer host="localhost" port="60000" />
<!-- Rechnername/IP-Adresse vom Client der Spielsteuerung zur Ballerkennung -->
<KiBall host="localhost" port="60001" />
<KiBall host="localhost" port="60001" />
<!-- Rechnername/IP-Adresse vom Client der Spielsteuerung zur GUI (noch nicht implementiert) -->
<KiGui host="localhost" port="50002" />
<KiGui host="localhost" port="50002" />
<!-- Rechnername/IP-Adresse -->
<HighScore host="localhost" port="60020" />
<HighScore host="localhost" port="60020" />
</connections>
</connections>
Zeile 17: Zeile 31:
<!-- Abmessungen -->
<!-- Abmessungen -->
<dimensions>
<dimensions>
<!-- Größe des Spielsfeldes -->
<field depth="690" breadth="1200">
<field depth="690" breadth="1200">
<!-- Breite des Tores -->
<goal width="198" />
<goal width="198" />
</field>
</field>

<!-- Spielstangen-bezogene Informationen -->
<axis>
<axis>
<!-- Spielstange 1 (Torward) -->
<one>
<one>
<!-- Position der ersten Spielfigur (und einzigen) auf der Spielstange -->
<figure pos="221" />
<figure pos="221" />
<!--figure min="225" max="473" /-->
<!-- Maximaler Verfahrweg der Spielstange -->
<shift value="241" />
<shift value="241" />
<!-- Position der Spielstange entlang der X-Achse -->
<rot min="-170" max="170" />
<pos x="75" />
<pos x="75" />
</one>
</one>

<!-- Spielstange 2 (Abwehr) -->
<two>
<two>
<!-- Position der ersten Spielfigur auf der Spielstange -->
<figure pos="38" />
<figure pos="38" />
<!-- Position der zweiten Spielfigur auf der Spielstange -->
<figure pos="270" />
<figure pos="270" />
<!--figure min="40" max="422" />
<!-- Maximaler Verfahrweg der Spielstange -->
<figure min="271" max="653" /-->
<shift value="377" />
<shift value="377" />
<!-- Position der Spielstange entlang der X-Achse -->
<rot min="-170" max="170" />
<pos x="225" />
<pos x="225" />
</two>
</two>
<!-- Spielstange 3 (Mittelfeld) -->
<three>
<three>
<!-- Position der ersten Spielfigur auf der Spielstange -->
<figure pos="38" />
<figure pos="38" />
<!-- Position der zweiten Spielfigur auf der Spielstange -->
<figure pos="159" />
<figure pos="159" />
<!-- Position der dritten Spielfigur auf der Spielstange -->
<figure pos="280" />
<figure pos="280" />
<!-- Position der vierten Spielfigur auf der Spielstange -->
<figure pos="401" />
<figure pos="401" />
<!-- Position der fünften Spielfigur auf der Spielstange -->
<figure pos="522" />
<figure pos="522" />
<!--figure min="40" max="170" />
<!-- Maximaler Verfahrweg der Spielstange -->
<figure min="161" max="291" />
<figure min="281" max="411" />
<figure min="403" max="533" />
<figure min="524" max="654" /-->
<shift value="120" />
<shift value="120" />
<!-- Position der Spielstange entlang der X-Achse -->
<rot min="-170" max="170" />
<pos x="525" />
<pos x="525" />
</three>
</three>
<!-- Spielstange 4 (Sturm) -->
<four>
<four>
<!-- Position der ersten Spielfigur auf der Spielstange -->
<figure pos="38" />
<figure pos="38" />
<!-- Position der zweiten Spielfigur auf der Spielstange -->
<figure pos="221" />
<figure pos="221" />
<!-- Position der dritten Spielfigur auf der Spielstange -->
<figure pos="404" />
<figure pos="404" />
<!--figure min="40" max="288" />
<!-- Maximaler Verfahrweg der Spielstange -->
<figure min="222" max="470" />
<figure min="407" max="655" /-->
<shift value="233" />
<shift value="233" />
<!-- Position der Spielstange entlang der X-Achse -->
<rot min="-170" max="170" />
<pos x="825" />
<pos x="825" />
</four>
</four>
<!-- Abstand der Spielstangen, von einer Reihe eines Spielers, zur nächsten Reihe, des selben Spielers, zueinander -->
<distance value="150" />
<distance value="150" />

<!-- Abstand, der zu den Banden gehalten werden soll, um nicht gegen diese zu donnern -->
<offset value="6" />
<offset value="6" />

</axis>
</axis>
<!-- Maximale Geschwindigkeit, für Translation und Rotation -->
<velocity trans="2000" rot="4285" />
<velocity trans="2000" rot="4285" />
<!-- Abmaße der Spielfiguren: Fußbreite, Höhe von Spielstange bis zum Fuß, Dicke des Fußes und Abstand vom Fuß zum Spielfeld -->
<figure breadth="22" height="72" thickness="11" fielddistance="8" />
<figure breadth="22" height="72" thickness="11" fielddistance="8" />
<!-- Ballabmaße: Durchmesser,
Abstand in X-Richtung, zur Spielstange, bei dem der Ball noch so getroffen werden kann, dass er geschossen wird
Abstand in X-Richtung, zur Spielstange, bei dem der Ball noch getroffen werden kann, aber nicht mehr geschossen
-->
<ball diameter="33" toaxisshootable="45" toaxisreachable="64" />
<ball diameter="33" toaxisshootable="45" toaxisreachable="64" />
</dimensions>
</dimensions>

<!-- Statusse -->
<!-- Stati, sie haben einen Standard-/Start-, Minimal- und Maximalwert
und werden dazu benutzt den Status interner Objekte zu beschreiben
während des Programmablaufs, können sie siech verändern
(werden in der aktuellen Programmierung kaum benutzt, soll aber integriert werden)
-->
<states>
<states>
<!-- Standard-/Start-, Minimal- und Maximalwerte -->
<values>
<values>
<!-- Stati bezüglich des Spielverlaufs -->
<game>
<game>
<!-- Angabe ob gerade ein Spiel läuft (0=Nein; 1=Ja) -->
<running default="0" min="0" max="1" />
<running default="0" min="0" max="1" />
<!-- Punktestand des Computers -->
<computerscore default="0" min="0" max="10" />
<computerscore default="0" min="0" max="10" />
<!-- Punktestand des Menschen -->
<humanscore default="0" min="0" max="10" />
<humanscore default="0" min="0" max="10" />
</game>
</game>
<!-- Globale Stati des Programms -->
<global>
<global>
<!-- Grad, wie weit das Programm geladen hat, bei "max", ist das Programm betriebsbereit -->
<ready default="0" min="0" max="8" />
<ready default="0" min="0" max="8" />
</global>
</global>
<!-- Stati bezüglich der Klasse Config -->
<config>
<config>
<!-- Angabe, ob die Klasse Config betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
</config>
</config>
<!-- Stati bezüglich der Klasse KnowledgeBase -->
<knowledgebase>
<knowledgebase>
<!-- Angabe, ob die Klasse KnowledgeBase betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
</knowledgebase>
</knowledgebase>
<!-- Stati bezüglich der Klasse Ball -->
<ball>
<ball>
<!-- Angabe, ob die Klasse Ball betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
</ball>
</ball>
<!-- Stati bezüglich der Klasse Kicker -->
<kicker>
<kicker>
<!-- Angabe, ob die Klasse Kicker betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
</kicker>
</kicker>
<!-- Stati bezügluch der ersten Spielstange des Computers -->
<axis1computer>
<axis1computer>
<!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
<wobbling default="0" min="-1" max="1" />
</axis1computer>
</axis1computer>
<!-- Stati bezügluch der zweiten Spielstange des Computers -->
<axis2computer>
<axis2computer>
<!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
<wobbling default="0" min="-1" max="1" />
</axis2computer>
</axis2computer>
<!-- Stati bezügluch der dritten Spielstange des Computers -->
<axis3computer>
<axis3computer>
<!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
<wobbling default="0" min="-1" max="1" />
</axis3computer>
</axis3computer>
<!-- Stati bezügluch der vierten Spielstange des Computers -->
<axis4computer>
<axis4computer>
<!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
<ready default="0" min="0" max="1" />
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
<wobbling default="0" min="-1" max="1" />
</axis4computer>
</axis4computer>
<!-- Der Aufbau der Stati des Menschen, ist der Gleiche, wie beim Computer,
dies mach nicht unbedingt Sinn, hat sich aber so wegen der automatischen Interpretierung dieser Datei ergeben -->
<!-- Stati bezügluch der ersten Spielstange des Menschen -->
<axis1human>
<axis1human>
<!-- Angabe, ob die Spielstange bereit ist -->
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
</axis1human>
</axis1human>
<!-- Stati bezügluch der zweiten Spielstange des Menschen -->
<axis2human>
<axis2human>
<!-- Angabe, ob die Spielstange bereit ist -->
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
</axis2human>
</axis2human>
<!-- Stati bezügluch der dritten Spielstange des Menschen -->
<axis3human>
<axis3human>
<!-- Angabe, ob die Spielstange bereit ist -->
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
</axis3human>
</axis3human>
<!-- Stati bezügluch der vierten Spielstange des Menschen -->
<axis4human>
<axis4human>
<!-- Angabe, ob die Spielstange bereit ist -->
<ready default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange blockiert -->
<blocking default="0" min="0" max="1" />
<blocking default="0" min="0" max="1" />
<!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<moving default="0" min="-100" max="100" />
<moving default="0" min="-10" max="10" />
<!-- Angabe, ob die Spielstange einen Schuss ausführt -->
<shooting default="0" min="0" max="1" />
<shooting default="0" min="0" max="1" />
<!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
<wobbling default="0" min="-1" max="1" />
</axis4human>
</axis4human>
<!-- Stati bezügluch der Ballposition -->
<ballpos>
<ballpos>
<!-- Angabe, ob sich der Ball unter Kontrolle des Computers befindet -->
<computerpossession default="0" min="0" max="1" />
<computerpossession default="0" min="0" max="1" />
<!-- Angabe, ob sich der Ball unter Kontrolle des Menschen befindet -->
<humanpossession default="0" min="0" max="1" />
<humanpossession default="0" min="0" max="1" />
<!-- Angabe, ob sich der Ball bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
<speed default="0" min="0" max="100" />
<speed default="0" min="-10" max="10" />
</ballpos>
</ballpos>
<!-- Stati bezügluch der Ballposition gegenüber der ersten Spielstange des Computers -->
<ballpostoaxis1computer>
<ballpostoaxis1computer>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis1computer>
</ballpostoaxis1computer>
<!-- Stati bezügluch der Ballposition gegenüber der zweiten Spielstange des Computers -->
<ballpostoaxis2computer>
<ballpostoaxis2computer>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis2computer>
</ballpostoaxis2computer>
<!-- Stati bezügluch der Ballposition gegenüber der dritten Spielstange des Computers -->
<ballpostoaxis3computer>
<ballpostoaxis3computer>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis3computer>
</ballpostoaxis3computer>
<!-- Stati bezügluch der Ballposition gegenüber der vierten Spielstange des Computers -->
<ballpostoaxis4computer>
<ballpostoaxis4computer>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis4computer>
</ballpostoaxis4computer>
<!-- Stati bezügluch der Ballposition gegenüber der ersten Spielstange des Menschen -->
<ballpostoaxis1human>
<ballpostoaxis1human>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis1human>
</ballpostoaxis1human>
<!-- Stati bezügluch der Ballposition gegenüber der zweiten Spielstange des Menschen -->
<ballpostoaxis2human>
<ballpostoaxis2human>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis2human>
</ballpostoaxis2human>
<!-- Stati bezügluch der Ballposition gegenüber der dritten Spielstange des Menschen -->
<ballpostoaxis3human>
<ballpostoaxis3human>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis3human>
</ballpostoaxis3human>
<!-- Stati bezügluch der Ballposition gegenüber der vierten Spielstange des Menschen -->
<ballpostoaxis4human>
<ballpostoaxis4human>
<!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
<holdable default="0" min="0" max="10" />
<holdable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
<passable default="0" min="0" max="10" />
<passable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
<shootable default="0" min="0" max="10" />
<shootable default="0" min="0" max="10" />
<!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
<handable default="0" min="0" max="10" />
<handable default="0" min="0" max="10" />
</ballpostoaxis4human>
</ballpostoaxis4human>
</values>
</values>
<links><!-- In Config eine Funktion schreiben die die Verlinkungen zurückgibt -->
<!-- Folgende Links waren ursprünglich gedacht um abhängige Stati miteinander zu verknüpfen,
die Funktionalität wurde allerdings noch nicht umgesetzt -->
<links>
<game></game>
<game></game>
<global>
<global>
Zeile 240: Zeile 435:
</links>
</links>
</states>
</states>

<!-- Schusswinkel - Offset -->
<!-- Schusswinkel - Offset -->
<shootoffset>
<shootoffset>
<!-- Folgende Werte geben an, mit welcher Abweichung, gegenüber der Ballposition, der Ball geschossen werden muss,
um in einem bestimmten Winkel zu schießen -->
<byRotation>
<byRotation>
<!-- Um in einem Winkel von 0° zu schießen, muss der Ball frontal getroffen werden -->
<shoot angle="0" offset="0" />
<shoot angle="0" offset="0" />
<!-- Um in einem Winkel von 10° zu schießen, muss der Ball mit einem Versatz von 18mm getroffen werden -->
<shoot angle="10" offset="18" />
<shoot angle="10" offset="18" />
<!-- Um in einem Winkel von 20° zu schießen, muss der Ball mit einem Versatz von 20mm getroffen werden -->
<shoot angle="20" offset="20" />
<shoot angle="20" offset="20" />
<!-- Um in einem Winkel von 30° zu schießen, muss der Ball mit einem Versatz von 22mm getroffen werden -->
<shoot angle="30" offset="22" />
<shoot angle="30" offset="22" />
<!-- Um in einem Winkel von 45° zu schießen, muss der Ball mit einem Versatz von 25mm getroffen werden -->
<shoot angle="45" offset="25" />
<shoot angle="45" offset="25" />
</byRotation>
</byRotation>
<!-- Folgende Werte geben an, mit welchem Winkel der Spielfiguren, der Ball seitlich geschoben werden muss,
um einen bestimmten Winkel zu erreichen -->
<byTranslation>
<byTranslation>
<!-- Um den Ball mit 50° zu verschieben, müssen die Spielerfüße in einem Winkel von 20° stehen -->
<shoot angle="50" offset="20" />
<shoot angle="50" offset="20" />
<!-- Um den Ball mit 60° zu verschieben, müssen die Spielerfüße in einem Winkel von 17° stehen -->
<shoot angle="60" offset="17" />
<shoot angle="60" offset="17" />
<!-- Um den Ball mit 70° zu verschieben, müssen die Spielerfüße in einem Winkel von 15° stehen -->
<shoot angle="70" offset="15" />
<shoot angle="70" offset="15" />
<!-- Um den Ball mit 80° zu verschieben, müssen die Spielerfüße in einem Winkel von 13° stehen -->
<shoot angle="80" offset="13" />
<shoot angle="80" offset="13" />
<!-- Um den Ball mit 90° zu verschieben, müssen die Spielerfüße in einem Winkel von 0° stehen -->
<shoot angle="90" offset="0" />
<shoot angle="90" offset="0" />
</byTranslation>
</byTranslation>
Zeile 291: Zeile 501:
</other>
</other>
</profile>
</profile>

</source>
</source>
</div>
</div>

Aktuelle Version vom 3. Dezember 2012, 17:12 Uhr

Folgende Datei beinhaltet die meisten Konfigurationen. Sie ist ausführlich kommentiert um den Aufbau zu erläutern. Änderungen an den Werten können angewandt werden, ohne den Quellcode verändern zu müssen, die Struktur muss jedoch erhalten bleiben. Die entsprechende Datei, die im Betrieb verwendet wird, ist nicht mit Kommentaren versehen, da diese die Funktionalität von tinyxml beeinträchtigt haben.

<?xml version="1.0" encoding="utf-8"?>
<!-- XML Wurzelelement -->
<profile>

  <!-- Verbindungsinformationen -->
  <connections>
    <!-- Eigener Rechnername/IP-Adresse -->
    <localhost host="localhost" />
    <!-- Rechnername/IP-Adresse von der SPSchnittstelle -->
    <SPServer host="localhost" port="50000" />
    <!-- Rechnername/IP-Adresse der Ballerkennung -->
    <Ball host="localhost" port="50001" />
    <!-- Rechnername/IP-Adresse der GUI (noch nicht implementiert) -->
    <Gui host="localhost" port="60002" />
    <!-- Rechnername/IP-Adresse vom Client der Spielsteuerung zur SPSchnittstelle -->
    <KiSPServer host="localhost" port="60000" />
    <!-- Rechnername/IP-Adresse vom Client der Spielsteuerung zur Ballerkennung -->
    <KiBall host="localhost" port="60001" />
    <!-- Rechnername/IP-Adresse vom Client der Spielsteuerung zur GUI (noch nicht implementiert) -->
    <KiGui host="localhost" port="50002" />
    <!-- Rechnername/IP-Adresse -->
    <HighScore host="localhost" port="60020" />
  </connections>

  <!-- Abmessungen -->
  <dimensions>
  
    <!-- Größe des Spielsfeldes -->
    <field depth="690" breadth="1200">
      <!-- Breite des Tores -->
      <goal width="198" />
    </field>

    <!-- Spielstangen-bezogene Informationen -->
    <axis>
    
      <!-- Spielstange 1 (Torward) -->
      <one>
        <!-- Position der ersten Spielfigur (und einzigen) auf der Spielstange -->
        <figure pos="221" />
        <!-- Maximaler Verfahrweg der Spielstange -->
        <shift value="241" />
        <!-- Position der Spielstange entlang der X-Achse -->
        <pos x="75" />
      </one>

      <!-- Spielstange 2 (Abwehr) -->
      <two>
        <!-- Position der ersten Spielfigur auf der Spielstange -->
        <figure pos="38" />
        <!-- Position der zweiten Spielfigur auf der Spielstange -->
        <figure pos="270" />
        <!-- Maximaler Verfahrweg der Spielstange -->
        <shift value="377" />
        <!-- Position der Spielstange entlang der X-Achse -->
        <pos x="225" />
      </two>
      
      <!-- Spielstange 3 (Mittelfeld) -->
      <three>
        <!-- Position der ersten Spielfigur auf der Spielstange -->
        <figure pos="38" />
        <!-- Position der zweiten Spielfigur auf der Spielstange -->
        <figure pos="159" />
        <!-- Position der dritten Spielfigur auf der Spielstange -->
        <figure pos="280" />
        <!-- Position der vierten Spielfigur auf der Spielstange -->
        <figure pos="401" />
        <!-- Position der fünften Spielfigur auf der Spielstange -->
        <figure pos="522" />
        <!-- Maximaler Verfahrweg der Spielstange -->
        <shift value="120" />
        <!-- Position der Spielstange entlang der X-Achse -->
        <pos x="525" />
      </three>
      
      <!-- Spielstange 4 (Sturm) -->
      <four>
        <!-- Position der ersten Spielfigur auf der Spielstange -->
        <figure pos="38" />
        <!-- Position der zweiten Spielfigur auf der Spielstange -->
        <figure pos="221" />
        <!-- Position der dritten Spielfigur auf der Spielstange -->
        <figure pos="404" />
        <!-- Maximaler Verfahrweg der Spielstange -->
        <shift value="233" />
        <!-- Position der Spielstange entlang der X-Achse -->
        <pos x="825" />
      </four>
      
      <!-- Abstand der Spielstangen, von einer Reihe eines Spielers, zur nächsten Reihe, des selben Spielers, zueinander -->
      <distance value="150" />

      <!-- Abstand, der zu den Banden gehalten werden soll, um nicht gegen diese zu donnern -->
      <offset value="6" />

    </axis>
    
    <!-- Maximale Geschwindigkeit, für Translation und Rotation -->
    <velocity trans="2000" rot="4285" />
    
    <!-- Abmaße der Spielfiguren: Fußbreite, Höhe von Spielstange bis zum Fuß, Dicke des Fußes und Abstand vom Fuß zum Spielfeld -->
    <figure breadth="22" height="72" thickness="11" fielddistance="8" />
    
    <!-- Ballabmaße:    Durchmesser,
                        Abstand in X-Richtung, zur Spielstange, bei dem der Ball noch so getroffen werden kann, dass er geschossen wird
                        Abstand in X-Richtung, zur Spielstange, bei dem der Ball noch getroffen werden kann, aber nicht mehr geschossen
    -->
    <ball diameter="33" toaxisshootable="45" toaxisreachable="64" />
    
  </dimensions>
  
  
  <!-- Stati,   sie haben einen Standard-/Start-, Minimal- und Maximalwert
                und werden dazu benutzt den Status interner Objekte zu beschreiben
                während des Programmablaufs, können sie siech verändern
                (werden in der aktuellen Programmierung kaum benutzt, soll aber integriert werden)
  -->
  <states>
  
    <!-- Standard-/Start-, Minimal- und Maximalwerte -->
    <values>
    
      <!-- Stati bezüglich des Spielverlaufs -->
      <game>
        <!-- Angabe ob gerade ein Spiel läuft (0=Nein; 1=Ja) -->
        <running default="0" min="0" max="1" />
        <!-- Punktestand des Computers -->
        <computerscore default="0" min="0" max="10" />
        <!-- Punktestand des Menschen -->
        <humanscore default="0" min="0" max="10" />
      </game>
      
      <!-- Globale Stati des Programms -->
      <global>
        <!-- Grad, wie weit das Programm geladen hat, bei "max", ist das Programm betriebsbereit -->
        <ready default="0" min="0" max="8" />
      </global>
      
      <!-- Stati bezüglich der Klasse Config -->
      <config>
        <!-- Angabe, ob die Klasse Config betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
      </config>
      
      <!-- Stati bezüglich der Klasse KnowledgeBase -->
      <knowledgebase>
        <!-- Angabe, ob die Klasse KnowledgeBase betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
      </knowledgebase>
      
      <!-- Stati bezüglich der Klasse Ball -->
      <ball>
        <!-- Angabe, ob die Klasse Ball betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
      </ball>
      
      <!-- Stati bezüglich der Klasse Kicker -->
      <kicker>
        <!-- Angabe, ob die Klasse Kicker betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
      </kicker>
      
      <!-- Stati bezügluch der ersten Spielstange des Computers -->
      <axis1computer>
        <!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis1computer>
      
      <!-- Stati bezügluch der zweiten Spielstange des Computers -->
      <axis2computer>
        <!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis2computer>
      
      <!-- Stati bezügluch der dritten Spielstange des Computers -->
      <axis3computer>
        <!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis3computer>
      
      <!-- Stati bezügluch der vierten Spielstange des Computers -->
      <axis4computer>
        <!-- Angabe, ob die Instanz der Klasse AxisAgent der ersten Spielstange betriebsbereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis4computer>
      
      <!-- Der Aufbau der Stati des Menschen, ist der Gleiche, wie beim Computer,
            dies mach nicht unbedingt Sinn, hat sich aber so wegen der automatischen Interpretierung dieser Datei ergeben -->
      <!-- Stati bezügluch der ersten Spielstange des Menschen -->
      <axis1human>
        <!-- Angabe, ob die Spielstange bereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis1human>
      
      <!-- Stati bezügluch der zweiten Spielstange des Menschen -->
      <axis2human>
        <!-- Angabe, ob die Spielstange bereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis2human>
      
      <!-- Stati bezügluch der dritten Spielstange des Menschen -->
      <axis3human>
        <!-- Angabe, ob die Spielstange bereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis3human>
      
      <!-- Stati bezügluch der vierten Spielstange des Menschen -->
      <axis4human>
        <!-- Angabe, ob die Spielstange bereit ist -->
        <ready default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange blockiert -->
        <blocking default="0" min="0" max="1" />
        <!-- Angabe, ob sich die Spielstange bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <moving default="0" min="-10" max="10" />
        <!-- Angabe, ob die Spielstange einen Schuss ausführt -->
        <shooting default="0" min="0" max="1" />
        <!-- Angabe, ob die Spielstange "wobbelt", also sich hin und her bewegt -->
        <wobbling default="0" min="-1" max="1" />
      </axis4human>
      
      <!-- Stati bezügluch der Ballposition -->
      <ballpos>
        <!-- Angabe, ob sich der Ball unter Kontrolle des Computers befindet -->
        <computerpossession default="0" min="0" max="1" />
        <!-- Angabe, ob sich der Ball unter Kontrolle des Menschen befindet -->
        <humanpossession default="0" min="0" max="1" />
        <!-- Angabe, ob sich der Ball bewegt, der Wert gibt die Richtung und die Geschwindigkeit an -->
        <speed default="0" min="-10" max="10" />
      </ballpos>
      
      <!-- Stati bezügluch der Ballposition gegenüber der ersten Spielstange des Computers -->
      <ballpostoaxis1computer>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis1computer>
      
      <!-- Stati bezügluch der Ballposition gegenüber der zweiten Spielstange des Computers -->
      <ballpostoaxis2computer>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis2computer>
      
      <!-- Stati bezügluch der Ballposition gegenüber der dritten Spielstange des Computers -->
      <ballpostoaxis3computer>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis3computer>
      
      <!-- Stati bezügluch der Ballposition gegenüber der vierten Spielstange des Computers -->
      <ballpostoaxis4computer>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis4computer>
      
      <!-- Stati bezügluch der Ballposition gegenüber der ersten Spielstange des Menschen -->
      <ballpostoaxis1human>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis1human>
      
      <!-- Stati bezügluch der Ballposition gegenüber der zweiten Spielstange des Menschen -->
      <ballpostoaxis2human>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis2human>
      
      <!-- Stati bezügluch der Ballposition gegenüber der dritten Spielstange des Menschen -->
      <ballpostoaxis3human>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis3human>
      
      <!-- Stati bezügluch der Ballposition gegenüber der vierten Spielstange des Menschen -->
      <ballpostoaxis4human>
        <!-- Angabe, ob und wie gut der Ball gehalten/geblockt werden kann -->
        <holdable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball durchgelassen werden kann -->
        <passable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball geschossen werden kann -->
        <shootable default="0" min="0" max="10" />
        <!-- Angabe, ob und wie gut der Ball gehandhabt/kontrolliert werden kann -->
        <handable default="0" min="0" max="10" />
      </ballpostoaxis4human>
    </values>
    
    <!-- Folgende Links waren ursprünglich gedacht um abhängige Stati miteinander zu verknüpfen,
         die Funktionalität wurde allerdings noch nicht umgesetzt -->
    <links>
      <game></game>
      <global>
        <updates group="game" state="running" />
      </global>
      <config>
        <updates group="global" state="ready" />
      </config>
      <knowledgebase>
        <updates group="global" state="ready" />
      </knowledgebase>
      <ball>
        <updates group="global" state="ready" />
      </ball>
      <kicker>
        <updates group="global" state="ready" />
      </kicker>
      <axis1computer>
        <updates group="global" state="ready" />
      </axis1computer>
      <axis2computer>
        <updates group="global" state="ready" />
      </axis2computer>
      <axis3computer>
        <updates group="global" state="ready" />
      </axis3computer>
      <axis4computer>
        <updates group="global" state="ready" />
      </axis4computer>
      <axis1human></axis1human>
      <axis2human></axis2human>
      <axis3human></axis3human>
      <axis4human></axis4human>
      <ballpos></ballpos>
      <ballpostoaxis1computer></ballpostoaxis1computer>
      <ballpostoaxis2computer></ballpostoaxis2computer>
      <ballpostoaxis3computer></ballpostoaxis3computer>
      <ballpostoaxis4computer></ballpostoaxis4computer>
      <ballpostoaxis1human></ballpostoaxis1human>
      <ballpostoaxis2human></ballpostoaxis2human>
      <ballpostoaxis3human></ballpostoaxis3human>
      <ballpostoaxis4human></ballpostoaxis4human>
    </links>
  </states>

  <!-- Schusswinkel - Offset -->
  <shootoffset>
    <!-- Folgende Werte geben an, mit welcher Abweichung, gegenüber der Ballposition, der Ball geschossen werden muss,
         um in einem bestimmten Winkel zu schießen -->
    <byRotation>
      <!-- Um in einem Winkel von 0° zu schießen, muss der Ball frontal getroffen werden -->
      <shoot angle="0" offset="0" />
      <!-- Um in einem Winkel von 10° zu schießen, muss der Ball mit einem Versatz von 18mm getroffen werden -->
      <shoot angle="10" offset="18" />
      <!-- Um in einem Winkel von 20° zu schießen, muss der Ball mit einem Versatz von 20mm getroffen werden -->
      <shoot angle="20" offset="20" />
      <!-- Um in einem Winkel von 30° zu schießen, muss der Ball mit einem Versatz von 22mm getroffen werden -->
      <shoot angle="30" offset="22" />
      <!-- Um in einem Winkel von 45° zu schießen, muss der Ball mit einem Versatz von 25mm getroffen werden -->
      <shoot angle="45" offset="25" />
    </byRotation>
    
    <!-- Folgende Werte geben an, mit welchem Winkel der Spielfiguren, der Ball seitlich geschoben werden muss,
         um einen bestimmten Winkel zu erreichen -->
    <byTranslation>
      <!-- Um den Ball mit 50° zu verschieben, müssen die Spielerfüße in einem Winkel von 20° stehen -->
      <shoot angle="50" offset="20" />
      <!-- Um den Ball mit 60° zu verschieben, müssen die Spielerfüße in einem Winkel von 17° stehen -->
      <shoot angle="60" offset="17" />
      <!-- Um den Ball mit 70° zu verschieben, müssen die Spielerfüße in einem Winkel von 15° stehen -->
      <shoot angle="70" offset="15" />
      <!-- Um den Ball mit 80° zu verschieben, müssen die Spielerfüße in einem Winkel von 13° stehen -->
      <shoot angle="80" offset="13" />
      <!-- Um den Ball mit 90° zu verschieben, müssen die Spielerfüße in einem Winkel von 0° stehen -->
      <shoot angle="90" offset="0" />
    </byTranslation>
  </shootoffset>

  <!-- Startpositionen -->
  <!--startpos>
    <axis>
      <one>
        <pos pos="124" angle="0" />
        <velo trans="800" rot="800" />
        <shoot exec="false" />
      </one>
      <two>
        <pos pos="191" angle="0" />
        <velo trans="800" rot="800" />
        <shoot exec="false" />
      </two>
      <three>
        <pos pos="65" angle="0" />
        <velo trans="800" rot="800" />
        <shoot exec="false" />
      </three>
      <four>
        <pos pos="124" angle="0" />
        <velo trans="800" rot="800" />
        <shoot exec="false" />
      </four>
    </axis>
    <ball x="0" y="0" />
    <score human="0" computer="0" />
  </startpos-->

  <!-- Sonstiges -->
  <other>
  </other>
</profile>