Höchstgeschwindigkeit: Unterschied zwischen den Versionen

Aus KaroWiki
Zur Navigation springen Zur Suche springen
K (tinyint)
Zeile 1: Zeile 1:
Die [[Höchstgeschwindigkeit]] der [[Rennwagen|Karoautos]] auf Karopapier beträgt etwa 181 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 128 (nach links fahrend) oder 127 (nach rechts fahrend).
+
Die theoretische [[Höchstgeschwindigkeit]] der [[Rennwagen|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 {{Benutzer|Didi}} den Zugvektor in der Datenbank als „signed <code>tinyint</code>“ (-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).
+
Diese Grenze ist technisch bedingt, da {{Benutzer|Didi}} den Zugvektor in der Datenbank als „signed <code>tinyint</code>“ (-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 {{Benutzer|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 {{GID|144964|144964 - Rekordversuch}}:
 +
* Im [https://www.karopapier.de/logs/144964.log Logfile] wird zwar -129 ausgegeben...
 +
* ...die [https://www.karopapier.de/api/games/144964?moves=1 API] gibt anschließend aber nur -128 zurück
 +
 
 +
=Theoretische Höchstgeschwindigkeiten=
 
   
 
   
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
Zeile 7: Zeile 17:
 
! Zugrichtung !! max ↔ !! max ↕ !! max Geschwindigkeit
 
! Zugrichtung !! max ↔ !! max ↕ !! max Geschwindigkeit
 
|-
 
|-
| ↖ || -128 || -128 || '''181,02''' Karos/Zug
+
| ↖ || -129 || -129 || '''182,43''' Karos/Zug
 
|-
 
|-
| ↗ ||  127 || -128 || 180,31 Karos/Zug
+
| ↗ ||  128 || -129 || 181,73 Karos/Zug
 
|-
 
|-
| ↙ || -128 ||  127 || 180,31 Karos/Zug
+
| ↙ || -129 ||  128 || 181,73 Karos/Zug
 
|-
 
|-
| ↘ ||  127 ||  127 || 179,61 Karos/Zug
+
| ↘ ||  128 ||  128 || 181,02 Karos/Zug
 
|-
 
|-
| ← || -128 ||    0 || 128,00 Karos/Zug
+
| ← || -129 ||    0 || 129,00 Karos/Zug
 
|-
 
|-
| ↑ ||    0 || -128 || 128,00 Karos/Zug
+
| ↑ ||    0 || -129 || 129,00 Karos/Zug
 
|-
 
|-
| → ||  127 ||    0 || 127,00 Karos/Zug
+
| → ||  128 ||    0 || 128,00 Karos/Zug
 
|-
 
|-
| ↓ ||    0 ||  127 || 127,00 Karos/Zug
+
| ↓ ||    0 ||  128 || 128,00 Karos/Zug
 
|}
 
|}
  
 
=Trivia=
 
=Trivia=
In Spiel {{GID|144952|144952 - Max-Speed}} erreichte {{Benutzer|ultimate}} als erster eine der Höchstgeschwindigkeiten (127 Karos/Zug nach rechts fahrend).  
+
* In Spiel {{GID|144952|144952 - Max-Speed}} erreichte {{Benutzer|ultimate}} als erster eine der Höchstgeschwindigkeiten (128 Karos/Zug nach rechts fahrend).  
 +
* In Spiel {{GID|144964|144964 - Rekordversuch}} erreichte {{Benutzer|ultimate} als erster die aufgrund der begrenzten Kartengröße praktisch maximale Höchstgeschwindigkeit von -129|2 bzw. -129|-2
  
 
[[Kategorie:Definition]]
 
[[Kategorie:Definition]]

Version vom 22. September 2024, 17:57 Uhr

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

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 praktisch maximale Höchstgeschwindigkeit von -129|2 bzw. -129|-2