next up previous
Nächste Seite: Über dieses Dokument ...

RoboCup 2000 / Mainz Rolling Brains
Auswirkung der Serverkonstanten auf das Spiel

Christian Meyer

Die Länge des Feldes von Tor zu Tor beträgt $FIELD\_LENGTH = 105 m$, die Breite $FIELD\_WIDTH = 68 m$. Ist der Spieler also z.B. in der Mitte der gegnerischen Hälfte, beträgt seine x-Position $FIELD\_LENGTH / 4$.

Die Maximalgeschwindigkeit eines Spielers beträgt $1m$ pro Simulationsschritt. Sie kann jedoch nur im Grenzwert erreicht werden. Die Beschleunigung mittels dash-Kommando erhöht die Geschwindigkeit zunächst maximal um

\begin{displaymath}
MAXPOWER \cdot DASH\_POWER\_RATE = 100 \cdot 0.006 = 0.6 (m).
\end{displaymath}

Am Ende des Simulationsschrittes wird die Geschwindigkeit dann mit

\begin{displaymath}
PLAYER\_DECAY = 0.4
\end{displaymath}

multipliziert. Geht man also davon aus, dass der Spieler genug Stamina hat, um ewig dash 100 auszuführen, errechnet sich der Grenzwert der Geschwindigkeit zu

\begin{displaymath}
0.6 \cdot \sum_{i=0}^{\infty} 0.4^i = 0.6 \cdot \frac{1}{1-0.4} = 1.
\end{displaymath}

Ein Spieler, der keine dash-Kommandos mehr abschickt, also sozusagen ausrollt, kann noch maximal

\begin{displaymath}
\sum_{i=1}^{\infty} 0.4^i = \frac{1}{1-0.4} -1 = 0.666 \dots m
\end{displaymath}

laufen. Das Ausrollen ist also (fast) vernachlässigbar.

Ein stehender Spieler, der staminamäßig am Ende ist (also nur noch mit $STAMINA\_INC\_MAX = 35$ dashen kann), hat nach n Schritten höchstens

\begin{eqnarray*}
n \cdot 0.21 + (n-1) \cdot 0.21 \cdot 0.4 + (n-2) \cdot 0.21 ...
...c{0.21}{1-0.4} \cdot ( n - 0.4 \cdot ( \frac{1-0.4^n}{1-0.4} ) )
\end{eqnarray*}



Meter zurückgelegt; bzw. (mit Konstanten ausgedrückt)

\begin{eqnarray*}
& & \frac{STAMINA\_INC\_MAX \cdot DASH\_POWER\_RATE}{1-PLAYER...
...ECAY
\cdot
\frac{1-PLAYER\_DECAY^n}{1-PLAYER\_DECAY}
\right).
\end{eqnarray*}



Seine Geschwindigkeit beträgt zu diesem Zeitpunkt

\begin{eqnarray*}
STAMINA\_INC\_MAX \cdot DASH\_POWER\_RATE \cdot\\
PLAYER\_DECAY \cdot
\frac{1-PLAYER\_DECAY^n}{1-PLAYER\_DECAY}.
\end{eqnarray*}



Dasht der Spieler mit einer anderen konstanten(!) Beschleunigung, ist in der Formel einfach nur $STAMINA\_INC\_MAX$ durch diese zu ersetzen. Hat er anfangs noch eine gewisse Geschwindigkeit $v_0$, so enthalten die Geschwindigkeit und die zurückgelegte Strecke noch einen entsprechenden Anteil.

Die Höchstgeschwindigkeit des Balls beträgt $BALL\_SPEED\_MAX =
2.7$. Er kann mit einem kick maximal um 1.6 beschleunigt werden. Wie stark die Beschleunigung ist, hängt vom Körperwinkel des Spielers zum Ball und von der Entfernung zum Ball ab, nicht aber von der Richtung, in die der Ball geschossen werden soll.

Der Ball wird bei einem kick beschleunigt nach der Formel

\begin{eqnarray*}
a & = & power \cdot KICK\_POWER\_RATE \cdot\\
( 1 & - & 0.2...
...frac{Entfernung - BALL\_SIZE - PLAYER\_SIZE}{KICKABLE\_MARGIN}).
\end{eqnarray*}



Im ungünstigsten Fall (Ball liegt entgegengesetzt der Körperrichtung am Rand des Kickbereichs) wird power also nur zur Hälfte umgesetzt! Es ist daher bei einem Schuss normalerweise sinnvoll, den Körper zum Ball zu drehen (und nicht in die gewünschte Schussrichtung; obwohl es natürlich am besten ist, wenn diese Richtungen übereinstimmen).

$KICK\_POWER\_RATE$ hat zur Zeit den Wert 0.016; daher die Maximalbeschleunigung von 1.6.

Hat der Ball die Geschwindigkeit $v$, rollt er insgesamt

\begin{displaymath}
v \cdot \sum_{i=0}^{\infty} BALL\_DECAY^i = v \cdot \frac{1}{1-0.94} =
v \cdot 16.666\dots
\end{displaymath}

Meter weit. Bei Maximalgeschwindigkeit 2.7 (die beim superkick fast erreicht werden können) ergibt das 45 Meter, bei Anfangsgeschwindigkeit 1.6 (z.B. durch einen einzelnen kick mit voller Kraft und voller Wirkung) 26.666 Meter.


next up previous
Nächste Seite: Über dieses Dokument ...
Debian User 2001-05-17