<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://kicker-intern.ee.hm.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PeterK</id>
	<title>Kicker (internals) - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://kicker-intern.ee.hm.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PeterK"/>
	<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php/Spezial:Beitr%C3%A4ge/PeterK"/>
	<updated>2026-05-16T06:13:24Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=373</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=373"/>
		<updated>2009-01-04T09:12:59Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und vorallem eine reelle Chance gegen ihn zu haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in Mathlab/C++ programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Simulationsdiagramm.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Funktionen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Nr.&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Name in MATLAB&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Einwurf&lt;br /&gt;
| einwurf&lt;br /&gt;
| &lt;br /&gt;
* Zufallswert für den Einwurf des Balles ermitteln. (+/- 5°)&lt;br /&gt;
* Startgeschwindigkeit eingeben oder auf Defaultwert setzen (v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;,v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)&lt;br /&gt;
* Position x und y auf Defaultwerte setzen. (Mittig auf einer Seite)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| akt. Ball Pos&lt;br /&gt;
| ballnext&lt;br /&gt;
|&lt;br /&gt;
* Aus v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; wird x&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt; berechnet.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ball Gerade&lt;br /&gt;
| fehlt&lt;br /&gt;
|&lt;br /&gt;
* Aus x&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt;, x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; wird die Schnittgerade g&amp;lt;sub&amp;gt;Schnitt&amp;lt;/sub&amp;gt; berechnet. (Eigentlich handelt es sich und die Fläche mit der oben beschriebenen Länge und der Breite des Balles. In einem verfeinerten Model könnte man noch die Rundung des Balles berücksichtigen.)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Kollision&lt;br /&gt;
| collision&lt;br /&gt;
|&lt;br /&gt;
* Diese Funktion besteht selbst aus mehreren Teilfunktionen.&lt;br /&gt;
* Selbst prüft es ob und wenn womit eine Kollision stattgefunden hat und ruft das entsprechende Auswertungsprogramm auf.&lt;br /&gt;
* siehe [[Ballkollision]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Schuss_Ausw.&lt;br /&gt;
| fehlt&lt;br /&gt;
|&lt;br /&gt;
* Es wird überprüft, ob die Spielerstange, an der der Spieler, der den Ball berührt hat, befestigt ist, sich gerade in Bewegung befindet.&lt;br /&gt;
* Wenn ja handelt es sich um einen aktiven Schuss.&lt;br /&gt;
* Wenn nein liegt ein passiver „Schuss“ vor.&lt;br /&gt;
* Zurückliefern muss die Funktion, eine neu akt. Pos (x,y) und zwei akt. Geschwindigkeitsvektoren v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; und v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. (Die Positionen x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; müssen so gesetzt werden, dass die neue Schnittgerade richtig berechnet wird, aber es wegen des Punktes nicht erneut zur Kollision zwischen dem Ball und dem selben Spieler kommt.)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Tor o. Bande&lt;br /&gt;
| in collision&lt;br /&gt;
| Es wird überprüft, ob der Ball außerhalb es Spielfeldes ist und ob sich die Schnittgerade mit einem der beiden Tore schneidet oder der Bande.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Spielstand&lt;br /&gt;
| spielstand&lt;br /&gt;
| Handelt es sich um ein Tor, so wird der Spielstand modifiziert und zum Zustand idle gesprungen&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Bande_Ausw.&lt;br /&gt;
| in collision&lt;br /&gt;
| Über Einfallswinkel gleich Ausfallswinkel werden alle Positionen und Vektoren neu berechnet.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| I/O&lt;br /&gt;
| fehlt&lt;br /&gt;
| Es handelt sich um die Funktion, die die Ein – und Ausgabe regeln soll. (Außer der Abfrage der Ballgeschwindigkeit beim Einwurf. Event. macht es allerdings Sinn die gleiche Funktion zu verwenden…)&lt;br /&gt;
Die Ausgabe erfolgt auf einen Bildschirm (optisch) und alle Parameter werden an die KI-Programme weitergegeben. (Mensch und Comp., sofern beide elektronisch gesteuert werden.) Um die Bildrate der Ballerfassung zu Simulieren, werden die Parameter für die Comp. KI lediglich alle 10 ms weitergegeben.&lt;br /&gt;
Um auch ohne Kickerhardware in der Praxis testen zu können, sollen die Eingaben sowohl von den KI-Programmen, als auch von der Tastatur möglich sein.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;Zusände:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Z.Nr.&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zustandsname&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Idle&lt;br /&gt;
|&lt;br /&gt;
* Alle Spieler mittig und mit Füßen nach unten auf dem Spielfeld&lt;br /&gt;
* Ball außerhalb des Spielfeldes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zusätzlich für MATLAB benötigte Funktionen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Z.Nr.&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Fkt. Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|drawdata&lt;br /&gt;
|&lt;br /&gt;
* Initialsierung der grafischen Oberfläche&lt;br /&gt;
* Darstellen des aktuellen Zustandes&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|manmove&lt;br /&gt;
|&lt;br /&gt;
* Der funktion wird ein Spieler und dessen Position angegeben&lt;br /&gt;
* Aus diesen Daten wird ermittelt welche Stange wie weit verfahren werden muss und die Funktion &#039;&#039;barmove&#039;&#039; aufgerufen&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|barmove&lt;br /&gt;
|&lt;br /&gt;
* Die Stange wird mit angegebener Motorgeschwindigkeit and die vorgegebene Position verfahren&lt;br /&gt;
* Intern natürlich realisiert durch Verschiebung aller Spieler der Stange&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=372</id>
		<title>Ballkollision</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=372"/>
		<updated>2008-12-21T09:44:57Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der wohl kniffligste Teil der Simulation, neben der Schussauswertung, ist die Kollision zwischen Ball und Spieler. Dieses Perfekt zu simulieren würde den Aufwand nicht wert und erst bei spezialisierter Spielersteuerung von Bedeutung sein. Aus diesem Grund werden einige vereinfachungen getroffen, die falls es benötigt wird, leicht wieder geändert werden können:&lt;br /&gt;
&lt;br /&gt;
- Ball und Spieler sind 2 Dimensionale Kreise, die sich nur in der Ebene bewegen können&lt;br /&gt;
- Die Abtastung bzw. Überprüfung auf Kollisionen passiert anfangs grob&lt;br /&gt;
&lt;br /&gt;
Es stehen momentan zwei verschieden Möglichkeiten zur Disskusion oder die Sinnvolle Kombination aus beiden um Rechenaufwand zu sparen.&lt;br /&gt;
Nach einigen Überlegungen und einem guten Tipp gibts es nun eine dritte Variante.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 1. Variante (die einfache) ==&lt;br /&gt;
&lt;br /&gt;
Da eine maximale Ballgeschwindigkeit festgestellt wurde (siehe [[Kicker]]) und man annimmt, dass sich die Spieler zwischen zwei Abfragen nur in einem gewissen Maße bewegen, kann man eine grobe Abschätzung machen, ob und welcher Spieler mit dem Ball kollidieren könnte. D.h.:&lt;br /&gt;
&lt;br /&gt;
maximale_Geschwindigkeit * Zeitinterval = maximale_Ballbewegung&lt;br /&gt;
&lt;br /&gt;
Wenn also nun die alte oder neue Ballposition einen kleineren Abstand zu einem Spieler hat als &#039;&#039;maximale_Bewegung/2 + Ballradius + Spielerradius&#039;&#039; kann eine Kollision stattfinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun berechnet man sich aus alter und neuer Ballposition die Bewegungsgerade (alternativ aus Ballposition und Geschwindigkeitsvektor) und berechnet sich den Abstand zu dem Spielermittpunkt, der für die Berechnung als stillstehend betrachtet wird. Ist der Abstand kleiner als &#039;&#039;Ballradius + Spielerradius&#039;&#039; muss zwangsläufig eine Kollision stattgefunden haben. Sollte das der Fall sein, wird das Schussauswertungsprogramm aufgerufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Variante (die komplizierte) ==&lt;br /&gt;
&lt;br /&gt;
Ball und Spieler sind 3-dimensionale Vektoren, die aus x- und y-Koordinate bestehen und als 3. Dimension die Zeit beinhalten. Dadurch kann eine genauere Kollisionsabfrage stattfinden und die Vereinfachung das die Spieler zum Berechnungszeitpunkt stillstehen wird aufgehoben. &lt;br /&gt;
&lt;br /&gt;
Die Vektoren sind leicht gebildet: Startvektor enthält alte Koordinaten und Zeitpunkt 0, Endvektoren die neuen Koordinaten und Zeitpunkt je nach Zeitinterval. Aus diesen Vektoren lassen sich also für Ball und Spieler 3-dimensionale Geraden berechen und von diesen dann der Abstand zueinander. Wie in Variante 1 muss für eine Kollision der Abstand kleiner als &#039;&#039;Ballradius + Spielerradius&#039;&#039; sein und bei Kollision wird ebenfalls die Schusswertung gestartet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Variante (die kluge) ==&lt;br /&gt;
&lt;br /&gt;
Das bisherige Problem war, dass die Abtastrate zu grob war, um die momentane Situation als statisch anzunehmen. Dieses Problem wurde ganz einfach dadurch gelöst, dass es eine &amp;quot;interne&amp;quot; feinere Abtastung gibt. D.h. aufgrund der Informationen von Ballposition und Geschwindigkeit werden Zwischenwerte berechnet und mit diesen auf Kollision überprüft. Die statische Überprüfung ist natürlich viel leichter, als die dynamische und man spart sich eine menge Aufwand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswertung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wird überlegt, welche Variante Sinnvoller bzw. nötig ist oder ob eine Kombination das beste und schnellste Ergebnis liefert. &lt;br /&gt;
&lt;br /&gt;
Nach einigen Versuchen und genaueren Überlegungen konnte Variante 2 ausgeschlossen werden, da eine zeitliche Dimension zur Abstandsberechnung natürlich &amp;quot;matematischer Nonsense&amp;quot; ist. &lt;br /&gt;
Die beiden Übrigen  Varianten können in einer sinnvollen Kombination verwendet werden und zwar Variante 1 als grobe Überprüfung und Variante 3 zur feinen Abtastung.&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=361</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=361"/>
		<updated>2008-11-21T13:07:11Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und vorallem eine reelle Chance gegen ihn zu haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in Mathlab/C++ programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Simulationsdiagramm.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Funktionen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Nr.&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Name in MATLAB&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Einwurf&lt;br /&gt;
| einwurf&lt;br /&gt;
| &lt;br /&gt;
* Zufallswert für den Einwurf des Balles ermitteln. (+/- 5°)&lt;br /&gt;
* Startgeschwindigkeit eingeben oder auf Defaultwert setzen (v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;,v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)&lt;br /&gt;
* Position x und y auf Defaultwerte setzen. (Mittig auf einer Seite)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| akt. Ball Pos&lt;br /&gt;
| ballnext&lt;br /&gt;
|&lt;br /&gt;
* Aus v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; wird x&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt; berechnet.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ball Gerade&lt;br /&gt;
| fehlt&lt;br /&gt;
|&lt;br /&gt;
* Aus x&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt;, x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; wird die Schnittgerade g&amp;lt;sub&amp;gt;Schnitt&amp;lt;/sub&amp;gt; berechnet. (Eigentlich handelt es sich und die Fläche mit der oben beschriebenen Länge und der Breite des Balles. In einem verfeinerten Model könnte man noch die Rundung des Balles berücksichtigen.)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Kollision&lt;br /&gt;
| collision&lt;br /&gt;
|&lt;br /&gt;
* Diese Funktion besteht selbst aus mehreren Teilfunktionen.&lt;br /&gt;
* Selbst prüft es ob und wenn womit eine Kollision stattgefunden hat und ruft das entsprechende Auswertungsprogramm auf.&lt;br /&gt;
* siehe [[Ballkollision]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Schuss_Ausw.&lt;br /&gt;
| fehlt&lt;br /&gt;
|&lt;br /&gt;
* Es wird überprüft, ob die Spielerstange, an der der Spieler, der den Ball berührt hat, befestigt ist, sich gerade in Bewegung befindet.&lt;br /&gt;
* Wenn ja handelt es sich um einen aktiven Schuss.&lt;br /&gt;
* Wenn nein liegt ein passiver „Schuss“ vor.&lt;br /&gt;
* Zurückliefern muss die Funktion, eine neu akt. Pos (x,y) und zwei akt. Geschwindigkeitsvektoren v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; und v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. (Die Positionen x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; müssen so gesetzt werden, dass die neue Schnittgerade richtig berechnet wird, aber es wegen des Punktes nicht erneut zur Kollision zwischen dem Ball und dem selben Spieler kommt.)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Tor o. Bande&lt;br /&gt;
| in collision&lt;br /&gt;
| Es wird überprüft, ob der Ball außerhalb es Spielfeldes ist und ob sich die Schnittgerade mit einem der beiden Tore schneidet oder der Bande.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Spielstand&lt;br /&gt;
| spielstand&lt;br /&gt;
| Handelt es sich um ein Tor, so wird der Spielstand modifiziert und zum Zustand idle gesprungen&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Bande_Ausw.&lt;br /&gt;
| in collision&lt;br /&gt;
| Über Einfallswinkel gleich Ausfallswinkel werden alle Positionen und Vektoren neu berechnet.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| I/O&lt;br /&gt;
| fehlt&lt;br /&gt;
| Es handelt sich um die Funktion, die die Ein – und Ausgabe regeln soll. (Außer der Abfrage der Ballgeschwindigkeit beim Einwurf. Event. macht es allerdings Sinn die gleiche Funktion zu verwenden…)&lt;br /&gt;
Die Ausgabe erfolgt auf einen Bildschirm (optisch) und alle Parameter werden an die KI-Programme weitergegeben. (Mensch und Comp., sofern beide elektronisch gesteuert werden.) Um die Bildrate der Ballerfassung zu Simulieren, werden die Parameter für die Comp. KI lediglich alle 10 ms weitergegeben.&lt;br /&gt;
Um auch ohne Kickerhardware in der Praxis testen zu können, sollen die Eingaben sowohl von den KI-Programmen, als auch von der Tastatur möglich sein.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;Zusände:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Z.Nr.&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zustandsname&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Idle&lt;br /&gt;
|&lt;br /&gt;
* Alle Spieler mittig und mit Füßen nach unten auf dem Spielfeld&lt;br /&gt;
* Ball außerhalb des Spielfeldes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zusätzlich für MATLAB benötigte Funktionen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Z.Nr.&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Fkt. Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|drawdata&lt;br /&gt;
|&lt;br /&gt;
* Initialsierung der grafischen Oberfläche&lt;br /&gt;
* Darstellen des aktuellen Zustandes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=360</id>
		<title>Ballkollision</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=360"/>
		<updated>2008-11-21T13:05:23Z</updated>

		<summary type="html">&lt;p&gt;PeterK: Die Seite wurde neu angelegt: Der wohl kniffligste Teil der Simulation, neben der Schussauswertung, ist die Kollision zwischen Ball und Spieler. Dieses Perfekt zu simulieren würde den Aufwand nicht...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der wohl kniffligste Teil der Simulation, neben der Schussauswertung, ist die Kollision zwischen Ball und Spieler. Dieses Perfekt zu simulieren würde den Aufwand nicht wert und erst bei spezialisierter Spielersteuerung von Bedeutung sein. Aus diesem Grund werden einige vereinfachungen getroffen, die falls es benötigt wird, leicht wieder geändert werden können:&lt;br /&gt;
&lt;br /&gt;
- Ball und Spieler sind 2 Dimensionale Kreise, die sich nur in der Ebene bewegen können&lt;br /&gt;
- Die Abtastung bzw. Überprüfung auf Kollisionen passiert anfangs grob&lt;br /&gt;
&lt;br /&gt;
Es stehen momentan zwei verschieden Möglichkeiten zur Disskusion oder die Sinnvolle Kombination aus beiden um Rechenaufwand zu sparen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 1. Variante (die einfache) ==&lt;br /&gt;
&lt;br /&gt;
Da eine maximale Ballgeschwindigkeit festgestellt wurde (siehe [[Kicker]]) und man annimmt, dass sich die Spieler zwischen zwei Abfragen nur in einem gewissen Maße bewegen, kann man eine grobe Abschätzung machen, ob und welcher Spieler mit dem Ball kollidieren könnte. D.h.:&lt;br /&gt;
&lt;br /&gt;
maximale_Geschwindigkeit * Zeitinterval = maximale_Ballbewegung&lt;br /&gt;
&lt;br /&gt;
Wenn also nun die alte oder neue Ballposition einen kleineren Abstand zu einem Spieler hat als &#039;&#039;maximale_Bewegung/2 + Ballradius + Spielerradius&#039;&#039; kann eine Kollision stattfinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun berechnet man sich aus alter und neuer Ballposition die Bewegungsgerade (alternativ aus Ballposition und Geschwindigkeitsvektor) und berechnet sich den Abstand zu dem Spielermittpunkt, der für die Berechnung als stillstehend betrachtet wird. Ist der Abstand kleiner als &#039;&#039;Ballradius + Spielerradius&#039;&#039; muss zwangsläufig eine Kollision stattgefunden haben. Sollte das der Fall sein, wird das Schussauswertungsprogramm aufgerufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Variante (die komplizierte) ==&lt;br /&gt;
&lt;br /&gt;
Ball und Spieler sind 3-dimensionale Vektoren, die aus x- und y-Koordinate bestehen und als 3. Dimension die Zeit beinhalten. Dadurch kann eine genauere Kollisionsabfrage stattfinden und die Vereinfachung das die Spieler zum Berechnungszeitpunkt stillstehen wird aufgehoben. &lt;br /&gt;
&lt;br /&gt;
Die Vektoren sind leicht gebildet: Startvektor enthält alte Koordinaten und Zeitpunkt 0, Endvektoren die neuen Koordinaten und Zeitpunkt je nach Zeitinterval. Aus diesen Vektoren lassen sich also für Ball und Spieler 3-dimensionale Geraden berechen und von diesen dann der Abstand zueinander. Wie in Variante 1 muss für eine Kollision der Abstand kleiner als &#039;&#039;Ballradius + Spielerradius&#039;&#039; sein und bei Kollision wird ebenfalls die Schusswertung gestartet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswertung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wird überlegt, ob die 1. Variante ausreicht oder die 2. Sinnvoller bzw. nötig ist. Oder die erste Variante wird zur groben Überprüfung verwendet und ermittelt nur einen potentiellen Kollisionspartner, der dann mit Variante 2 genauer analysiert wird.&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=359</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=359"/>
		<updated>2008-11-21T12:29:59Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und vorallem eine reelle Chance gegen ihn zu haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in Mathlab/C++ programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Simulationsdiagramm.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Funktionen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Nr.&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Fkt. Name in MATLAB&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Einwurf&lt;br /&gt;
| einwurf&lt;br /&gt;
| &lt;br /&gt;
* Zufallswert für den Einwurf des Balles ermitteln. (+/- 5°)&lt;br /&gt;
* Startgeschwindigkeit eingeben oder auf Defaultwert setzen (v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;,v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)&lt;br /&gt;
* Position x und y auf Defaultwerte setzen. (Mittig auf einer Seite)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| akt. Ball Pos&lt;br /&gt;
| ballnext&lt;br /&gt;
|&lt;br /&gt;
* Aus v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; wird x&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt; berechnet.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ball Gerade&lt;br /&gt;
| fehlt&lt;br /&gt;
|&lt;br /&gt;
* Aus x&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;neu&amp;lt;/sub&amp;gt;, x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; wird die Schnittgerade g&amp;lt;sub&amp;gt;Schnitt&amp;lt;/sub&amp;gt; berechnet. (Eigentlich handelt es sich und die Fläche mit der oben beschriebenen Länge und der Breite des Balles. In einem verfeinerten Model könnte man noch die Rundung des Balles berücksichtigen.)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Kollision&lt;br /&gt;
| collision&lt;br /&gt;
|&lt;br /&gt;
* Diese Funktion besteht selbst aus mehreren Teilfunktionen.&lt;br /&gt;
* Selbst prüft es ob und wenn womit eine Kollision stattgefunden hat und ruft das entsprechende Auswertungsprogramm auf.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Schuss_Ausw.&lt;br /&gt;
| fehlt&lt;br /&gt;
|&lt;br /&gt;
* Es wird überprüft, ob die Spielerstange, an der der Spieler, der den Ball berührt hat, befestigt ist, sich gerade in Bewegung befindet.&lt;br /&gt;
* Wenn ja handelt es sich um einen aktiven Schuss.&lt;br /&gt;
* Wenn nein liegt ein passiver „Schuss“ vor.&lt;br /&gt;
* Zurückliefern muss die Funktion, eine neu akt. Pos (x,y) und zwei akt. Geschwindigkeitsvektoren v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; und v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. (Die Positionen x&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; und y&amp;lt;sub&amp;gt;alt&amp;lt;/sub&amp;gt; müssen so gesetzt werden, dass die neue Schnittgerade richtig berechnet wird, aber es wegen des Punktes nicht erneut zur Kollision zwischen dem Ball und dem selben Spieler kommt.)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Tor o. Bande&lt;br /&gt;
| in collision&lt;br /&gt;
| Es wird überprüft, ob der Ball außerhalb es Spielfeldes ist und ob sich die Schnittgerade mit einem der beiden Tore schneidet oder der Bande.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Spielstand&lt;br /&gt;
| spielstand&lt;br /&gt;
| Handelt es sich um ein Tor, so wird der Spielstand modifiziert und zum Zustand idle gesprungen&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Bande_Ausw.&lt;br /&gt;
| in collision&lt;br /&gt;
| Über Einfallswinkel gleich Ausfallswinkel werden alle Positionen und Vektoren neu berechnet.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| I/O&lt;br /&gt;
| fehlt&lt;br /&gt;
| Es handelt sich um die Funktion, die die Ein – und Ausgabe regeln soll. (Außer der Abfrage der Ballgeschwindigkeit beim Einwurf. Event. macht es allerdings Sinn die gleiche Funktion zu verwenden…)&lt;br /&gt;
Die Ausgabe erfolgt auf einen Bildschirm (optisch) und alle Parameter werden an die KI-Programme weitergegeben. (Mensch und Comp., sofern beide elektronisch gesteuert werden.) Um die Bildrate der Ballerfassung zu Simulieren, werden die Parameter für die Comp. KI lediglich alle 10 ms weitergegeben.&lt;br /&gt;
Um auch ohne Kickerhardware in der Praxis testen zu können, sollen die Eingaben sowohl von den KI-Programmen, als auch von der Tastatur möglich sein.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;Zusände:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Z.Nr.&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Zustandsname&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Idle&lt;br /&gt;
|&lt;br /&gt;
* Alle Spieler mittig und mit Füßen nach unten auf dem Spielfeld&lt;br /&gt;
* Ball außerhalb des Spielfeldes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zusätzlich für MATLAB benötigte Funktionen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Z.Nr.&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Fkt. Name&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|drawdata&lt;br /&gt;
|&lt;br /&gt;
* Initialsierung der grafischen Oberfläche&lt;br /&gt;
* Darstellen des aktuellen Zustandes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=261</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=261"/>
		<updated>2008-10-13T07:55:32Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und vorallem eine reelle Chance gegen ihn zu haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in C++ Programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Schritt wird sein, einen Ball im Rechteck springen zu lassen. &lt;br /&gt;
Danach wird der Ball dann mit seinen physikalischen Eigenschaften erweitert. Reibung, Trägheit, etc. (Die Trägheit kann evtl. vernachlässigt werden, muss allerdings noch getestet werden, wie/ob die Motoren sich vom Ball beeinflussen lassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Intelligente_Spielweise&amp;diff=260</id>
		<title>Intelligente Spielweise</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Intelligente_Spielweise&amp;diff=260"/>
		<updated>2008-10-13T07:53:16Z</updated>

		<summary type="html">&lt;p&gt;PeterK: Die Seite wurde neu angelegt: Damit der Kicker richtig Spaß macht, soll er mit einer intelligenten Spielweise (KI=Künstliche Intelligenz) ausgestattet werden.  Vorerst muss jedoch eine Simulations...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Damit der Kicker richtig Spaß macht, soll er mit einer intelligenten Spielweise (KI=Künstliche Intelligenz) ausgestattet werden.&lt;br /&gt;
&lt;br /&gt;
Vorerst muss jedoch eine Simulationsumgebung geschaffen werden (siehe [[Simulation]]), bevor diese nicht fertig ist, bleibt das alles erstmal theorie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wünsche an die KI:&lt;br /&gt;
&lt;br /&gt;
- einstellbare Schwierigkeit&lt;br /&gt;
&lt;br /&gt;
- Pässe zwischen den Reihen, zu vorderen oder evtl. auch hinteren Spielern&lt;br /&gt;
&lt;br /&gt;
- Pässe in der Reihe selber um den Spieler zu umgehen und ihn auszutricksen&lt;br /&gt;
&lt;br /&gt;
- schräges Schießen, bzw. anschneiden&lt;br /&gt;
&lt;br /&gt;
- reagieren, auf die Bewegung des Spielers und geeignete Position einnehmen&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=259</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=259"/>
		<updated>2008-10-12T21:24:58Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und vorallem eine reelle Chance gegen ihn zu haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in C++ Programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Schritt wird sein, einen Ball im Rechteck springen zu lassen. &lt;br /&gt;
Danach wird der Ball dann mit seinen physikalischen Eigenschaften erweitert. Reibung, Trägheit, etc. (Die Trägheit kann evtl. vernachlässigt werden, muss allerdings noch getestet werden, wie/ob die Motoren sich vom Ball beeinflussen lassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wünsche an die KI, die allerdings noch in den Sternen stehen wären:&lt;br /&gt;
&lt;br /&gt;
- einstellbare Schwierigkeit &lt;br /&gt;
&lt;br /&gt;
- Pässe zwischen den Reihen, zu vorderen oder evtl. auch hinteren Spielern&lt;br /&gt;
&lt;br /&gt;
- Pässe in der Reihe selber um den Spieler zu umgehen und ihn auszutricksen&lt;br /&gt;
&lt;br /&gt;
- schräges Schießen, bzw. anschneiden&lt;br /&gt;
&lt;br /&gt;
- reagieren, auf die Bewegung des Spielers und geeignete Position einnehmen&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=258</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=258"/>
		<updated>2008-10-12T21:24:02Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und vorallem eine reelle Chance gegen ihn zu haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in C++ Programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Schritt wird sein, einen Ball im Rechteck springen zu lassen. &lt;br /&gt;
Danach wird der Ball dann mit seinen physikalischen Eigenschaften erweitert. Reibung, Trägheit, etc. (Die Trägheit kann evtl. vernachlässigt werden, muss allerdings noch getestet werden, wie/ob die Motoren sich vom Ball beeinflussen lassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wünsche an die KI, die allerdings noch in den Sternen stehen wären:&lt;br /&gt;
- einstellbare Schwierigkeit &lt;br /&gt;
- Pässe zwischen den Reihen, zu vorderen oder evtl. auch hinteren Spielern&lt;br /&gt;
- Pässe in der Reihe selber um den Spieler zu umgehen und ihn auszutricksen&lt;br /&gt;
- schräges Schießen, bzw. anschneiden&lt;br /&gt;
- reagieren, auf die Bewegung des Spielers und geeignete Position einnehmen&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=257</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=257"/>
		<updated>2008-10-12T21:16:21Z</updated>

		<summary type="html">&lt;p&gt;PeterK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und man vorallem eine reelle Chance gegen ihn haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationsumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in C++ Programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Schritt wird sein, einen Ball im Rechteck springen zu lassen. &lt;br /&gt;
Danach wird der Ball dann mit seinen physikalischen Eigenschaften erweitert. Reibung, Trägheit, etc. (Die Trägheit kann evtl. vernachlässigt werden, muss allerdings noch getestet werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=256</id>
		<title>Simulation</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Simulation&amp;diff=256"/>
		<updated>2008-10-12T21:16:03Z</updated>

		<summary type="html">&lt;p&gt;PeterK: Die Seite wurde neu angelegt: Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und man vorallem eine reelle Chance gegen ihn haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da unser Kicker ja nicht nur sinnlos nach vorne schießen soll und man vorallem eine reelle Chance gegen ihn haben, wird eine KI (Künstliche Intelligenz) eingebaut. Um dies nun zu tun, brauchen wir ersteinmal eine Simulationsumgebung, da noch keine Hardware zur Verfügung steht, an der das getestet werden kann. &lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Die Simulation wird vorraussichtlich in C++ Programmiert und steht bis jetzt noch ganz am Anfang. &lt;br /&gt;
&lt;br /&gt;
1. Schritt wird sein, einen Ball im Rechteck springen zu lassen. &lt;br /&gt;
Danach wird der Ball dann mit seinen physikalischen Eigenschaften erweitert. Reibung, Trägheit, etc. (Die Trägheit kann evtl. vernachlässigt werden, muss allerdings noch getestet werden)&lt;br /&gt;
&lt;br /&gt;
Ziel ist es vorallem, das ganze in Echtzeit zu simulieren, da das ganze natürlich auf jedem Rechner gleich schnell ablaufen soll.&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
</feed>