Türchen 5: Die Weihnachtsprogrammierchallenge
Weihnachtsmann-Routenoptimierung Mach mit bei unserer ersten Programmierchallenge! Der Gewinner bekommt einen 10 € DEZ Gutschein.

Weihnachtsmann-Routenoptimierung
Hintergrund
Der Weihnachtsmann steht vor seinem jährlichen Problem: Er muss in der Heiligen Nacht Geschenke in verschiedenen Städten weltweit ausliefern. Dieses Jahr hat er dich als Programmierer engagiert, um die optimale Route zu berechnen!
Die Herausforderung
Implementiere einen spielerischen TSP (Traveling Salesman Problem) Solver mit folgenden Anforderungen:

Pflichtaufgaben:
1. Routenvisualisierung
- Zeige mindestens 8-12 Städte auf einer Weltkarte
- Verbinde die Städte mit Linien (die Flugroute)
- Markiere den Startpunkt (Nordpol) deutlich
- Zeige die aktuelle Position des Weihnachtsmanns während der "Fahrt"
2. Distanz & Flugzeit
- Berechne die Luftlinie zwischen allen Städten
- Zeige die Gesamtdistanz der Route in km
- Berechne die Flugzeit (Rudolf fliegt mit 5000 km/h!)
- Zeige Einzelstrecken mit Zeit und Distanz an
3. Zeitzonen-Management
- Jede Stadt hat ihre lokale Uhrzeit
- Der Weihnachtsmann startet am Nordpol um 18:00 Uhr
- Geschenke dürfen nur ausgeliefert werden, wenn es zwischen 22:00 und 06:00 Uhr (Ortszeit) ist
- Zeige für jede Stadt an: Wann kommt der Weihnachtsmann an? Ist es die richtige Uhrzeit?
4. Rudolfs Batterie
- Rudolfs leuchtende Nase hält nur 8 Stunden durch
- Zeige einen Batterie-Balken an
- Warnung, wenn die Route länger als 8 Stunden dauert
- Optional: Nach 4 Stunden braucht Rudolf eine 30-minütige Kekspause! 🍪

Bonus-Features (Optional):
- Implementiere verschiedene Routing-Algorithmen:
- Nearest Neighbor (Greedy)
- 2-Opt Verbesserung
- Random Permutation mit Optimierung
- Vergleiche die Algorithmen (Routenlänge, Rechenzeit)
- Animation: Lass den Schlitten die Route "abfliegen"
- Geschenke-Zähler: Wie viele Geschenke werden in jeder Stadt ausgeliefert?
- Wetter-Bedingungen: Schneestürme verlangsamen Rudolf um 20%
- Manuelle Optimierung: Städte per Drag & Drop umsortieren
Technische Hinweise:
- Verwende echte Koordinaten (Breitengrad/Längengrad) von Städten
- Für die Distanzberechnung: Haversine-Formel für Großkreis-Distanzen
- Zeitzonen können vereinfacht werden (z.B. UTC-Offsets)
- Die Visualisierung kann auf Canvas, SVG oder mit einer Mapping-Library erfolgen

Bewertungskriterien:
- ✅ Funktionalität: Läuft der Algorithmus korrekt?
- 🎨 Visualisierung: Ist die Route schön dargestellt?
- ⚡ Performance: Wie schnell findet der Algorithmus eine Lösung?
- 🎄 Kreativität: Weihnachtliche Extras und Details
- 📊 User Experience: Ist die Bedienung intuitiv?
Beispiel-Städte:
New York (UTC-5), London (UTC+0), Tokyo (UTC+9), Sydney (UTC+11), Berlin (UTC+1), Rio de Janeiro (UTC-3), Mumbai (UTC+5:30), Los Angeles (UTC-8), Dubai (UTC+4), Moskau (UTC+3)
Ziel:
Finde die kürzeste Route, bei der Rudolf alle Geschenke rechtzeitig ausliefern kann, bevor seine Nase ausgeht! 🎁✨
Bitte lade dein fertiges Ergebnis mit allen Dateien hier hoch.
Viel Erfolg! Ho ho ho! 🎅