Projekt "Serverbahn"

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
So, geschafft, jetzt sind alle Strecken fertig. Ein letztes Mal für Zahlenfreunde (also für jeden :D) die komplette Liste der Änderungen:
  • 6 durchgehende Serverbahnstrecken mit sechs unterschiedlichen Farben
  • 17 große Bahnhöfe (Umsteige oder Warpnähe)
  • In diesen Bahnhöfen 6 unterbrochene Stecken durch aufwendige Umbauten verbunden
  • 62 Titeleinblendungen mit Bahnhofsname bei der Einfahrt in die großen Bahnhöfe
  • Viele Schilder mit Bahnhofsname in allen großen Bahnhöfen an den Eingängen und Gleisen
  • 42 Zwischenbahnhöfe
  • 146 Abbremsungen auf den Strecken, damit man nicht in den Bahnhof rauscht
  • 146 Langsamfahrten im Bahnhof
  • 146 zweizeilige Schwebeschriften mit Richtungsangaben an den Knöpfen in allen Bahnhöfen
  • 146 einheitliche Schilder an den Knöpfen
  • 146 Beschleunigungen nach den Knöpfen
  • 146 Titeleinblendungen mit Richtungsangabe bei der Ausfahrt
  • 4 Titeleinblendungen an den Umkehrpunkten an den Mapgrenzen (S5 und S6)
  • 8 Ausstiege am Streckenende in Bahnhöfen (S1, S2, S3, S4)
  • 1 vergessener Bahnhof gefunden (nördlich von Hochfurth)
  • 1 Entdeckertour-Knopf verlegt (in Hochfurth am ehemaligen Gleisende, jetzt am Kiosk)
  • 5 Wochen Arbeit (mit Unterbrechungen)
Der nächste Schritt in diesem Projekt ist der Streckenplan in der Zonenkarte. Ich werde berichten ...
 

Wulfens

Spieler
1 Jun 2018
377
Am Südwestbahnhof gibt es drei Einstiegsmöglichkeiten: „S4 Richtung Nordosten“, „S5 Richtung Nordwesten“ und „S5 Richtung Osten“. Die letzte würde ich eher „S5 Richtung Südosten“ nennen, aber vor allem sind die Titeleinblendungen bei den beiden S5-Ausfahrten wohl vertauscht.
 

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
Im gestrigen Teammeeting haben wir über die Anzeige der Bahnhofsnamen von Zwischenbahnhöfen diskutiert. Wir werden es so machen: Wenn es einen Namen gibt, werden wir ihn wie bereits bei den Umsteigebahnhöfen bei der Einfahrt als Titel einblenden, ansonsten wird "Zwischenbahnhof" eingeblendet. Holotexte möchten wir in den Bahnhöfen nicht aufstellen, weil sich die in kleinen Bahnhöfen mit den Richtungs-Holotexten überdecken würden.

P.S. Die Titeleinblendungen bei den beiden Ausfahrten am Südwestbahnhof sind korrigiert.
 

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
Könnte man die Namen der benannten Bahnhöfe dann nicht auch auf der Zonenkarte anzeigen? So, wie die Projektporter.
Ja, das ist möglich, die (S)-Markierungen haben ja jetzt schon einen Namen, nämlich "Bahnhof" oder "Zwischenbahnhof".
Ich wäre ja dafür, dass @Wulfens' Karte als Standard implementiert wird. :rolleyes:
Das wäre als Overlay auf der Zonenkarte viel zu aufwendig und würde außerdem nicht zu den existiernden (S)-Markierungen passen.
 

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
Auf einer 3x3-Map kannst du keine Texte lesen. Maps wollen wir nicht aufhängen, weil zu viele Rahmen den Client stören und mit 1.15 wird es schlimmer. Wir möchten auch nicht Bilder auf Maps anpassen müssen, wenn sich an den Bahnhöfen etwas ändert. Auf die Karte könnte man per Schildklick ins Forum verweisen, aber wer garantiert, dass die Karte im Forum immer aktuell ist? Wir wollen sie nicht aktuell halten müssen.
 

Wulfens

Spieler
1 Jun 2018
377
aber wer garantiert, dass die Karte im Forum immer aktuell ist? Wir wollen sie nicht aktuell halten müssen.
Na, bei dem dynamischen Serverteam, das im Rahmen des Balancing auch nicht vor einschneidenden Änderungen in der Spielmechanik zurückschreckt ... :rolleyes:

Da ich ja bei diesem Thema irgendwie „Partei“ bin, halte ich mich mal zurück, erkläre aber, dass ich natürlich den Plan, soweit es mir möglich ist, aktualisieren werde. Die wesentliche Arbeit ist getan und deswegen sind zukünftige Erweiterungen für mich einfach möglich. Die jetzt neue, aktuelle Version wird nur durch neue Bahnhöfe, Bahnhofsnamen und neue Linien geändert werden müssen. Nur eine Markierung der Linienenden, die auch verzichtbar wäre, steht noch an. Auf jeden Fall habe ich selbstverständlich vor, das Ding aktuell zu halten, sonst wäre es ja schade um die ganze Arbeit.

Gedanken zu Zielen von Schildklicks mache ich mir hier jetzt mal nicht. ;) Wiki heißt übrigens „schnell“. Der Name wurde gewählt, weil man bei Wikis schnell etwas einfügen und natürlich auch ausfügen kann. :cool:
Tastaturen mit Tasten zum ausfügen von Inhalten gab es schon lange, bevor jemand an Wikis dachte.

Ausfügen.png
 

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
Ich werde die aktuelle Version zur leichteren Auffindbarkeit jetzt auch immer, so möglich, hier veröffentlichen
Das ist praktisch, weil der Netzplan dann immer an derselben Stelle zu finden ist, auch wenn du ihn änderst. Und dynamisch, schnell einfügend und furchtlos wie ich bin, habe ich nicht zurückgeschreckt, deinen Netzplan (wie zuvor andere nützliche Spielerbeiträge auch) im UW-Wiki zu verlinken, und zwar unter Serverbahn.
 

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
So liebe Bahnfreunde, heute habe ich alle Bahnhofsnamen auf der Zonenkarte eingetragen!

Das war leicht. Nun wird es etwas aufwendiger, wenn es um den Streckenplan auf der Zonenkarte geht.

Für den Streckenplan auf der Zonenkarte muss ich jeweils zwei Bahnhöfe mit einer Linie verbinden. Doch da gibt es ein klitzekleines technisches Problem: Unsere Zonenkarte besteht in Wirklichkeit aus mehreren Zonenkarten, die durch Niemandsländer getrennt sind. Und die zwei Endpunkte einer Linie müssen immer in derselben Teilkarte liegen. Daher muss ich alle Strecken, die ein Niemandsland durchqueren, in Teilstrecken aufteilen und mehrere Einzellinien ziehen. Und dazu brauche ich die exakten XZ-Schnittpunkte der Verbindungslinien mit den Kartengrenzen.

Das kann ich natürlich alles selbst berechnen, aber ich bin schlau und frage einfach den Kartografen unter unseren Dorfbewohnern. Der Typ nennt sich "Graf Karto" und macht immer so auf cool. Aber meine Frage nach den Schnittpunkten brachte ihn plötzlich mächtig ins Schwitzen.

Vielleicht könnt ihr ihm helfen, falls ihr ein Freund der Mathematik seid.

Schnitt1.PNG


Insgesamt gibt es vier Aufgaben. Fangen wir mit der leichtesten an. Gegeben sind die Punkte
A (1864 / 1609) (Ziegeldorf)​
B (1170 / 2520)​
C (2313 / 1664)​
und die Geraden
Z = 2024​
X = 2024.​
Gesucht sind die Schnittpunkte
1 zwischen AB und Z​
2 zwischen AC und X.​
 

TischGetreide10

Spender
3 Jul 2018
151
Also ich habe den Strahlensatz verwendet und bin zu den folgenden Ergebnissen gekommen :D:

Punkt 1 liegt an den Koordinaten 1552 / 2024 - Edit: Das Ergebnis war falsch! Altes Ergebnis: 1825,4 / 2024 :pardon:
Punkt 2 liegt an den Koordinaten 2024 / 1628,6

Jetzt hätte ich aber noch eine Frage: Was ist mit "vier Aufgaben" gemeint? Es waren doch nur zwei, oder :confused:?
Edit: Nach etwa zehnmaligem Studieren deines Beitrags @Sumpfhytte, bin ich über den folgenden Satz gestolpert: "Fangen wir mit der leichtesten an." Heißt das etwa, dass Graf Karto schon die leichteste Aufgabe zu schwer war :eek:? In dem Fall folgen noch weitere Aufgaben, oder?
 
Zuletzt bearbeitet:

Sumpfhytte

Serverteam
Buddy
11 Aug 2014
5.203
Super, wir haben also den ersten scharfen Konkurrenten gegen Graf Karto! Allerdings hat Graf Karto bei Punkt 1 (nach langen Mühen) einen etwas anderen Wert heraus, nämlich (1547,853 / 2024). Wer liegt richtig, @TischGetreide10 oder Graf Karto?

Und ja, es folgen noch drei weitere Aufgaben, denn der Streckenplan geht über die ganze Welt und schneidet die Niemandsländer an vielen Stellen. Und auch wenn es lustig verpackt ist: Das ist mein voller Ernst. Ich muss für den Streckenplan wirklich alle Linien, die ein Niemandsland durchqueren, unterteilen. Und ich brauche dazu wirklich ganz exakte Schnittpunkte. Die Punkte A, B, C etc. sind echte Koordinaten der (S)-Marker auf der Zonenkarte. Die weißen Linien werden später Teil des Streckenplans sein (dann in anderer Farbe). Die roten Linien sind die echten Grenzen der Teil-Zonenkarten, aus denen die Gesamt-Zonenkarte zusammengesetzt ist. Ja Leute, so kompliziert geht es hinter den Kulissen zu!
Um ganz sicher zu sein, dass ich mich keinesfalls verrechnet habe, hätte ich gerne die Kontrolle durch euch. Und wie ihr seht: Schon bei Punkt 1 gibt es Differenzen, die noch geklärt werden müssen.

Trotzdem schon mal hier die zweite Aufgabe (von vieren):
Schnitt2.PNG


Gegeben sind die Punkte
A (1631 / -1845) (Modern City)​
B (2929 / -2918)​
C (1333 / -2239)​
D (2686 / -1011)​
E (1952 / -3517)​
F (3498 / -1975)​
und die Geraden
Z = -2024​
X = 2024.​
Gesucht sind die Schnittpunkte
1 zwischen AB und Z​
2 zwischen AB und X​
3 zwischen AC und Z​
4 zwischen AD und X​
5 zwischen BE und X​
6 zwischen BF und Z.​
 

Drakona7

Spieler
17 Jan 2019
15
Ich versuche Graf Karto auch mal zu helfen und habe für die zweite Aufgabe folgende Schnittpunkte ermittelt:

1 zwischen AB und Z: (2024 / -2169,96)
2 zwischen AB und X: (1847,44 / -2024)
3 zwischen AC und Z: (2024 / -1325,47)
4 zwischen AD und X: (1404,55 / -2024)
5 zwischen BE und X: (4416,57 / -2024)
6 zwischen BF und Z: (2024 / -4417,82)
 

Morock

Trusty
26 Jun 2015
735
Wiki
Bodenseepirat
Gegeben sind die Punkte
A (x1= 1864 / z1= 1609) (Ziegeldorf)
B (x2= 1170 / z2= 2520)
C (x2= 2313 / z2= 1664)
und die Geraden
Z0 = 2024
X0= 2024.

Allgemein lässt sich der Schittpunkt zwischen den Punkten A=(x1,z1) und B=(x2,x2) oder umgekehrt an der Stelle z0 bzw. x0 leicht berechnen über die Auswertung der jeweiligen Geradengleichung:
x(z0) = x1 + (x2-x1)/(z2-z1) * (z0-z1)
z(x0) = z1 + (z2-z1)/(x2-x1) * (x0-x1)


Eingesetzt ergeben sich die gleichen Schnittpunkte, wie auch Sumpfhytte hat (und unrelevanten Dezimalstellen dürft ihr euch selbst wegdenken):
  1. zwischen AB und Z=2024:
    x(2024) = 1547.8529088913283

  2. zwischen AC und X=2024:
    z(2024) = 1628.599109131403

Und für den Rest war ich faul und hab schnell ein Skript geschrieben:

Python:
xA=1631; zA=-1845
xB=2929; zB=-2918
xC=1333; zC=-2239
xD=2686; zD=-1011
xE=1952; zE=-3517
xF=3498; zF=-1975
z0 = -2024
x0 = 2024

def x(z0,x1,z1,x2,z2):
    return x1 + (x2-x1)/(z2-z1) * (z0-z1)
def z(x0,x1,z1,x2,z2):
    return z1 + (z2-z1)/(x2-x1) * (x0-x1)

print("Schnittpunkte")
print("1. zwischen AB und Z: %.3f"%( x(z0,xA,zA,xB,zB) ))
print("2. zwischen AB und X: %.3f"%( z(x0,xA,zA,xB,zB) ))
print("3. zwischen AC und Z: %.3f"%( x(z0,xA,zA,xC,zC) ))
print("4. zwischen AD und X: %.3f"%( z(x0,xA,zA,xD,zD) ))
print("5. zwischen BE und X: %.3f"%( z(x0,xB,zB,xE,zE) ))
print("6. zwischen BF und Z: %.3f"%( x(z0,xB,zB,xF,zF) ))
Ausgabe >>>
Schnittpunkte
1. zwischen AB und Z: 1847.535
2. zwischen AB und X: -2169.876
3. zwischen AC und Z: 1495.614
4. zwischen AD und X: -1534.325
5. zwischen BE und X: -3472.857
6. zwischen BF und Z: 3468.434



keine Garantie auf Plausibilität
Auf den ersten Blick sehe ich allerdings andere Werte als Drakona hat. Kann gut sein, dass noch an ein paar Stellen Tippfehler im Code sind, aber ich muss nun wieder woanders hin.



Edit:
oder eine noch allgemeinere Funktion mit Textausgabe, gut für IPython geeignet, oder auch wie @Mathevv vorgeschlagen hat für
Python:
def isNaN(num):
    return num != num

def schnitt(x1,z1, x2,z2, x=float("nan"),z=float("nan")):
    print("\nServerwechsel zwischen (%.0f, %.0f) und (%.0f, %.0f) ==> "%( x1,z1, x2,z2 ))#,end="")  #Das "end=''" funktioniert nicht auf http://www.python-online.ch/pyonline
    if(isNaN(x)):
        x = x1 + (x2-x1)/(z2-z1) * (z-z1)
        print("(%.3f, %.0f    )"%( x,z ))
    elif(isNaN(z)):
        z = z1 + (z2-z1)/(x2-x1) * (x-x1)
        print("(%.0f    , %.3f)"%( x,z ))
    else:
        print("  FEHLER: Schnittpunkt ueberbestimmt")
        print("  Beispieleingabe:  schnitt(x1,z1, x2,z2, z=z0)")
        print("             oder:  schnitt(x1,z1, x2,z2, x=x0)")
    if( ( (x1-x)>0 and (x2-x)>0 ) or ( (x1-x)<0 and (x2-x)<0 ) ):
        print("  Plausibilitaets-FEHLER: x=%.3f liegt nicht zwischen %.0f und %.0f"%( x,x1,x2))
    if( ( (z1-z)>0 and (z2-z)>0 ) or ( (z1-z)<0 and (z2-z)<0 ) ):
        print("  Plausibilitaets-FEHLER: z=%.3f liegt nicht zwischen %.0f und %.0f"%( z,z1,z2))
    return x,z


xA=1631; zA=-1845
xB=2929; zB=-2918
xC=1333; zC=-2239
xD=2686; zD=-1011
xE=1952; zE=-3517
xF=3498; zF=-1975
z0=-2024
x0=2024

schnitt(xA,zA, xB,zB, z=z0)
schnitt(xA,zA, xB,zB, x=x0)
schnitt(xA,zA, xC,zC, z=z0)
schnitt(xA,zA, xD,zD, x=x0)
schnitt(xB,zB, xE,zE, x=x0)
schnitt(xB,zB, xF,zF, z=z0)

'''
Ausgabe >>>
Serverwechsel zwischen (1631, -1845) und (2929, -2918) ==> (1847.535, -2024    )
Serverwechsel zwischen (1631, -1845) und (2929, -2918) ==> (2024    , -2169.876)
Serverwechsel zwischen (1631, -1845) und (1333, -2239) ==> (1495.614, -2024    )
Serverwechsel zwischen (1631, -1845) und (2686, -1011) ==> (2024    , -1534.325)
Serverwechsel zwischen (2929, -2918) und (1952, -3517) ==> (2024    , -3472.857)
Serverwechsel zwischen (2929, -2918) und (3498, -1975) ==> (3468.434, -2024    )
'''
---
Edit2: Hab in den 2. Code noch eine Plausibilitätsprüfung eingefügt, ob die Koordinaten des Schnittpunktes überhaupt zwischen den anderen beiden Punkten liegen.
 
Zuletzt bearbeitet:

Benutzer, die dieses Thema gerade lesen (Spieler: 0, Gäste: 1)

ONLINE 40 Spieler