Höchstgeschwindigkeit

Aus KaroWiki
Zur Navigation springen Zur Suche springen

Die theoretische Höchstgeschwindigkeit der Karoautos auf Karopapier beträgt etwa 182,4 Kästchen/Zug. Diese ist aber nur in diagonaler Richtung von rechts unten nach links oben zu erreichen. Die maximale Geschwindigkeit in der horizontale beträgt -129 (nach links fahrend) oder 128 (nach rechts fahrend).

Diese Grenze ist technisch bedingt, da Didi den Zugvektor in der Datenbank als „signed tinyint“ (-128 bis 127) speichert, und dabei sowohl die horizontalen als auch vertikalen Vektoren separat speichert. Dabei ist die Zugrichtung „nach links“ als negativ, die Zugrichtung „nach rechts“ als positiv gespeichert. Ähnliches gilt für die Zugrichtung „nach oben“ (negativ gespeichert) und „nach unten“ (positiv gespeichert).

Aus dem Satz des Pythagoras ergeben sich somit die maximalen theoretischen Geschwindigkeiten. Diese sind aber wiederum auch nicht erreichbar, da die maximale Größe einer Karte begrenzt ist (max. 65536 Karos). Siehe #Praktische Höchstgeschwindigkeiten

Obwohl dies bedeutet, dass nur Vektoren mit jeweils x und y im Bereich -128 bis 127 in der Datenbank gespeichert werden können, ist der maximal ausführbare Vektor jeweils betragsmäßig um 1 größer, weil Didi trotzdem immer alle Möglichkeiten +/-1 um das was in der Datenbank gespeichert ist zurück gibt. So kann man dann zwar einen Vektor mit größerem Wert als datenbanktechnisch möglich auswählen, in der Datenbank wird dieser jedoch nur mit betragsmäßig eins weniger gespeichert. So kann man diese Geschwindigkeit nicht überschreiten.

Gut zu sehen, ist dieser Unterschied im Logfile und in der API z. B. für Spiel 144964 - Rekordversuch:

  • Im Logfile wird zwar -129 ausgegeben...
  • ...die API gibt anschließend aber nur -128 zurück

Theoretische Höchstgeschwindigkeiten

Zugrichtung max ↔ max ↕ max Geschwindigkeit
-129 -129 182,43 Karos/Zug
128 -129 181,73 Karos/Zug
-129 128 181,73 Karos/Zug
128 128 181,02 Karos/Zug
-129 0 129,00 Karos/Zug
0 -129 129,00 Karos/Zug
128 0 128,00 Karos/Zug
0 128 128,00 Karos/Zug

Praktische Höchstgeschwindigkeiten

Bei den praktischen Höchstgeschwindigkeiten muss die maximale Kartengröße von 65535 Zeichen inkl. Zeilenumbrücke für jede Zeile außer der letzten berücksichtigt werden

Hauptbewegung min. Kartengröße in Hauptrichtung max. Kartengröße in anderer Richtung befahrbarer Bereich max. möglicher Vektor in anderer Richtung Vektorlänge
vx = -129 Karos/Zug (←) size_x = 129 * (129 + 1) / 2 = 8388 Karos size_y = (65535 + 1) / (8388 + 1) = 7,8 = 7 Karos 7 Karos - 2 Rand = 5 Karos 2 Karos/Zug 129,02 Karos/Zug
vy = -129 Karos/Zug (↑) size_y = 129 * (129 + 1) / 2 = 8388 Karos size_x = (65535 + 1) / (8388) - 1 = 6,8 = 6 Karos 6 Karos - 2 Rand = 4 Karos 2 Karos/Zug 129,02 Karos/Zug

Trivia

  • In Spiel 144952 - Max-Speed erreichte ultimate als erster eine der Höchstgeschwindigkeiten (128 Karos/Zug nach rechts fahrend).
  • In Spiel 144964 - Rekordversuch erreichte {{Benutzer|ultimate} als erster die aufgrund der begrenzten Kartengröße maximale, praktische Höchstgeschwindigkeit von -129|2 bzw. -129|-2