Files
playground-frontend/src/assets/i18n/de.json
LoboTheDark 5d162b57ab
All checks were successful
Build, Test & Push Frontend / quality-check (pull_request) Successful in 55s
Build, Test & Push Frontend / docker (pull_request) Has been skipped
Add fractal visualization feature
Introduce a new Fractal visualization: adds FractalComponent (template, styles, TS), FractalService (rendering, palettes, Mandelbrot/Julia/Burning Ship/Newton implementations), and Fractal model/types. Wire up routing and router constants (route and component import), add wiki links to UrlConstants, and expose the new algorithm in AlgorithmsService. Also add i18n entries (en/de) for UI labels and explanations. Component supports canvas zoom/drag, color schemes and iteration controls.
2026-02-10 14:49:17 +01:00

425 lines
27 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"APP": {
"TITLE": "Playground",
"COPYRIGHT": "Bilder urheberrechtlich geschützt, keine Nutzung ohne Zustimmung!"
},
"TOPBAR": {
"ABOUT": "Über mich",
"IMPRINT": "Impressum",
"PROJECTS": "Projekte",
"ALGORITHMS": "Algorithmen",
"SETTINGS": "Einstellungen",
"LANGUAGE": "Sprache",
"APPEARANCE": "Darstellung"
},
"THEME": { "LIGHT": "Hell", "DARK": "Dunkel" },
"LANG": { "LABEL": "Sprache", "EN": "Englisch", "DE": "Deutsch" },
"ABOUT": {
"ALT": { "PROFILE": "Profilfoto von Andreas Dahm" },
"HELLO": "Hallo, ich bin Andreas.",
"LEAD": "Bereits in meiner Ausbildung zum Fachinformatiker habe ich gemerkt, wie sehr mich Softwareentwicklung interessiert. Nach meinem Studium der Angewandten Informatik an der FH Bingen arbeite ich seit 2010 durchgehend als Softwareentwickler. In dieser Zeit konnte ich in verschiedenen Bereichen Erfahrungen sammeln, darunter 3D-Simulation und moderne Web-Anwendungen. Auch privat beschäftige ich mich gern mit Softwareentwicklung, besonders mit Spieleentwicklung und algorithmischen Themen. Schön, dass du hier bist!",
"ROLE": "Senior Software Entwickler / Full-Stack Entwickler / Softwarearchitekt",
"LOCATION": "München · Remote",
"DOWNLOAD_CV": "Lebenslauf herunterladen",
"VIEW_PROJECTS": "Projekte ansehen",
"CONTACT_ME": "Kontaktiere mich",
"SECTION": {
"SKILLS": "Fähigkeiten & Stack",
"PRIMARY": "Schwerpunkte",
"TOOLSET": "Toolset",
"EXPERIENCE": "Erfahrung",
"PROJECTS": "Projekte",
"EDUCATION": "Ausbildung"
},
"SKILLS": {
"JAVA": "Java 8/Java 21+",
"SPRING": "Spring Boot 2/3",
"ANGULAR": "Angular 20+",
"DOCKER": "Docker",
"UNITY": "Unity",
"PYTHON": "Python",
"CSHARP": "C#",
"TYPESCRIPT": "TypeScript"
},
"TOOLS": {
"GIT": "Git",
"GITHUB": "Github",
"GITLAB": "Gitlab",
"JENKINS": "Jenkins",
"K8S": "Kubernetes / k3d",
"POSTGRES": "PostgreSQL",
"MONGO": "MongoDB",
"GRAFANA": "Grafana/Prometheus"
},
"XP": {
"COMPANY8": {
"COMPANY": "Teraport GmbH",
"ROLE": "Senior Software Developer / Architect",
"TIME": "Feb. 2024 heute",
"HIGHLIGHTS": {
"P1": "Architektur und Implementierung der Datenbankanbindung mit Hibernate 6.x.",
"P2": "Konzeption und Entwicklung einer Full-Stack-Webanwendung für Kollisionsanalysen (Angular + Spring Boot + Docker).",
"P3": "Entwicklung eines Kostenanalysetools mit dem Namen MIDO."
}
},
"COMPANY7": {
"COMPANY": "ColorDigital GmbH",
"ROLE": "Lead Software Developer",
"TIME": "März 2023 Dez. 2023",
"HIGHLIGHTS": {
"P1": "Planung einer neuen Cloud-Architektur zur Migration eines umfangreichen Legacy-Monolithen in eine moderne Microservice-Plattform.",
"P2": "Leitung eines Teams von drei bis vier Backend-Entwickler:innen.",
"P3": "Zusammenarbeit mit Partnern und Kund:innen bei der Integration ihrer Systeme in die DMIx-Cloud."
}
},
"COMPANY6": {
"COMPANY": "ColorDigital GmbH",
"ROLE": "Senior Software Developer",
"TIME": "März 2021 März 2023",
"HIGHLIGHTS": {
"P1": "Arbeit an der DMIx-Core-Cloud, darunter die Implementierung einer Elasticsearch-basierten Echtzeit-Suchfunktion.",
"P2": "Implementierung des neuen Browser-Tools „Moodboard“ (Node.js + Vue.js).",
"P3": "Entwicklung von „PAX“, einem Tool für den Datenaustausch zwischen der DMIx-Cloud und PLM/ERP-Systemen, inkl. CI/CD-Integration."
}
},
"COMPANY5": {
"COMPANY": "Assyst GmbH",
"ROLE": "Teamleitung",
"TIME": "Sep. 2015 Feb. 2021",
"HIGHLIGHTS": {
"P1": "Teamleitung der Vidya-Softwareabteilung, inkl. Personalverantwortung und Bewerbungsprozesse.",
"P2": "Leitung mehrerer Projekte mit externen Partnern und Freelancer:innen.",
"P3": "Steuerung strategischer Initiativen im Bereich 3D-Softwareentwicklung."
}
},
"COMPANY4": {
"COMPANY": "Assyst GmbH",
"ROLE": "Software Engineer",
"TIME": "Apr. 2010 Feb. 2021",
"HIGHLIGHTS": {
"P1": "Arbeit an Kerntechnologien wie Algorithmen, Simulation, Rendering und Kollisions­erkennung.",
"P2": "Einsatz verschiedener Technologien, u. a. Java, OpenCL, OpenGL, GLSL-Shader, C++ und REST-Schnittstellen.",
"P3": "Mitarbeit an nationalen und internationalen Forschungsprojekten (EU7 und ZIM)."
}
},
"COMPANY3": {
"COMPANY": "Assyst GmbH",
"ROLE": "Praktikum und Diplomarbeit",
"TIME": "Apr. 2009 Apr. 2010",
"HIGHLIGHTS": {
"P1": "Implementierung produktiver Funktionen in der Echtzeit-Kleidersimulationssoftware Vidya.",
"P2": "Durchführung von Recherchen und Literaturstudien für die Diplomarbeit.",
"P3": "Erfolgreiche Umsetzung des Diplomthemas in Vidya."
}
},
"COMPANY2": {
"COMPANY": "TH Bingen (University of Applied Sciences)",
"ROLE": "Tutor für Grundlagen der Java-Programmierung",
"TIME": "Apr. 2008 Aug. 2008",
"HIGHLIGHTS": {
"P1": "Erstellung praktischer und theoretischer Lehrmaterialien.",
"P2": "Durchführung einer 20-stündigen Vorlesungsreihe für den Bioinformatik-Studiengang.",
"P3": "Unterstützung bei praktischen Programmierübungen."
}
},
"COMPANY1": {
"COMPANY": "TH Bingen (University of Applied Sciences)",
"ROLE": "Wissenschaftliche Hilfskraft",
"TIME": "Okt. 2007 Apr. 2008",
"HIGHLIGHTS": {
"P1": "Evaluation verschiedener Web-2.0-Technologien.",
"P2": "Implementierung einer Java-basierten Schnittstelle zu Microsoft Excel.",
"P3": "Integration des MIT-Exhibit-Frameworks und Vorbereitung für die CeBIT 2008."
}
},
"COMPANY0": {
"COMPANY": "Chamaeleon AG",
"ROLE": "Ausbildung Fachinformatiker Anwendungsentwicklung",
"TIME": "Jul. 2002 Jun. 2005",
"HIGHLIGHTS": {
"P1": "Entwicklung in PERL, PHP und ASP.",
"P2": "Portierung, Wartung und Reengineering von bestender Software.",
"P3": "Regelmäßige Durchführung von Systemtests und Qualitätskontrollen, sowie deren Dokumentation."
}
}
},
"PROJECT": {
"P2": {
"TITLE": "Playground",
"DESCRIPTION": "Dieses Projekt ist, wie der Name schon sagt, ein persönlicher Playground, der im Laufe der Zeit wachsen soll. Es präsentiert verschiedene private Projekte, an denen ich arbeite, und dokumentiert deren Fortschritt, zentrale Ideen und wichtige Meilensteine.",
"LINK_EXTERNAL": "andreas-dahm.eu",
"LINK_INTERNAL": "Projektdetails",
"HIGHLIGHTS": {
"P1": "Einsatz moderner Technologien und CI/CD-Pipelines (Angular 20+, Spring Boot 4, GitHub).",
"P2": "Präsentation persönlicher Projekte und kontinuierliche Verbesserung algorithmischer Fähigkeiten.",
"P3": "Vertiefung von JavaScript/TypeScript-, Angular- und Spring-Boot-Kenntnissen durch praktisches Arbeiten."
}
},
"P1": {
"TITLE": "El Mucho",
"DESCRIPTION": "Dies ist mein erstes veröffentlichtes Spiel auf Steam. Ich habe es gemeinsam mit meinem Bruder entwickelt und damit eines meiner persönlichen Ziele erreicht: ein eigenes Videospiel zu erstellen und zu veröffentlichen.",
"LINK_EXTERNAL": "Steam Store",
"LINK_INTERNAL": "Projektdetails",
"HIGHLIGHTS": {
"P1": "Veröffentlichung eines Spiels auf Steam und Integration der Steam-API.",
"P2": "Konzeption, Planung und vollständige Entwicklung eines eigenen Spiels.",
"P3": "Implementierung komplexer Algorithmen wie einer eigenen A*-Pfadfindungslogik und Spiel-KI."
}
},
"P0": {
"TITLE": "Game Jams",
"DESCRIPTION": "Dieser Bereich zeigt einige meiner bisherigen Game-Jam-Beiträge. Game Jams sind eine großartige Möglichkeit, neue Spielideen auszuprobieren und schnell zu überprüfen, ob ein Game-Loop funktioniert. Die engen Zeitvorgaben fördern den Fokus, es ist faszinierend, was man in so kurzer Zeit alles schaffen kann.",
"LINK_EXTERNAL": "Itch.io Sammlung",
"LINK_INTERNAL": "Projektdetails",
"HIGHLIGHTS": {
"P1": "Planung eines realistischen Projektumfangs mit einem Team, der innerhalb von 48 Stunden umsetzbar ist.",
"P2": "Lernen, fokussiert und effizient unter strengen Zeitvorgaben zu arbeiten.",
"P3": "Die Freude zu erleben, in kurzer Zeit ein spielbares Projekt zu erstellen und andere damit spielen zu sehen."
}
},
"DIPLOMA": {
"TITLE": "Diplomarbeit - Kollisionserkennung und Behandlung von komplexen Kleidungsstücken.",
"DESCRIPTION": "Die Diplomarbeit handelt von der Erkennung und der Behandlung von Kollisionen zwischen, sowie innerhalb, einzelnen Kleidungsstücken in Echtzeit. Das ist gerade aufgrund der Flexibilität von Stoffen und deren unterschiedlichen Eigenschaften besonders herausfordernd.",
"LINK_INTERNAL": "Projektdetails",
"HIGHLIGHTS": {
"P1": "Echtzeit behandlung von Kollisionserkennung und Behandlung.",
"P2": "Verstehen und Einschätzen von wissenschaftlichen Arbeiten.",
"P3": "Adaption und Weiterentwicklung von vorausgegangenen Forschungsarbeiten."
}
},
"TRIBBLE": {
"TITLE": "Homeserver 'Tribble'",
"DESCRIPTION": "In diesem Projekt geht es um die Einrichtung und Wartung meines eigenen Homeservers. Er betreibt mehrere Docker-Container wie Gitea, Jellyfin und mehr. Es ist eine großartige Lernerfahrung im Bereich Self-Hosting und Systemadministration.",
"LINK_INTERNAL": "Projektdetails",
"HIGHLIGHTS": {
"P1": "Self-Hosting verschiedener Dienste mit Docker.",
"P2": "CI/CD-Pipeline für die persönliche Website mit Gitea.",
"P3": "Sicherer Fernzugriff mit Tailscale und Traefik."
}
}
},
"EDUCATION": {
"E6": {
"WHERE": "FH Bingen (University of Applied Sciences)",
"WHEN": "2006 - 2010",
"WHAT": "Diplom (FH), Angewandte Informatik (Schnitt 1.4)"
},
"E5": {
"WHERE": "FH Koblenz (University of Applied Sciences)",
"WHEN": "2005 - 2006",
"WHAT": "1 Semester Ingenieurinformatik"
},
"E4": {
"WHERE": "BBS Montabaur",
"WHEN": "2002 - 2005",
"WHAT": "Ausbildung zum Fachinformatiker Anwendungsentwicklung"
},
"E3": {
"WHERE": "BBS Andernach - Höhere Berufsbachschule (Informatik)",
"WHEN": "2000 - 2002",
"WHAT": "Fachhochschulreife"
},
"E2": {
"WHERE": "BBS Andernach - Berufsfachschule Technik (E-Technik)",
"WHEN": "1998 - 2000",
"WHAT": "Realschulabschluss"
},
"E1": {
"WHERE": "Hauptschule Hinter Burg Mayen (Albert Schweitzer Realschule plus)",
"WHEN": "1995 - 1998 ",
"WHAT": "Hauptschulabschluss"
},
"E0": {
"WHERE": "Albert Schweitzer Realschule Mayen",
"WHEN": "1993 - 1995",
"WHAT": "Kein Abschluss. Wechsel zur Hauptschule"
}
}
},
"PROJECTS": {
"DOWNLOAD": "Herunterladen",
"READ_MORE": "Mehr erfahren",
"LINK_TO_PROJECT": "Zum Projekt",
"CLOSE": "Schließen",
"PLAYGROUND": {
"TITLE": "Playground Website",
"SHORT_DESCRIPTION": "Hier geht es um diese Webseite.",
"INTRODUCTION": "Dieses Projekt ist hauptsächlich als eine Art 'Spielwiese' gestartet, daher der Name. Es ist geplant, die Seite mit der Zeit weiter auszubauen. Dabei werden hier neue Projekte auftauchen, oder ich werde die Seite an für sich weiter ausbauen, weil ich neue Sachen im Rahmen von Web Technologien ausprobieren möchte.",
"BULLET_1": "Verwendung moderner Technologien und CI/CD-Pipelines (Angular 20+, Spring Boot 4, GitHub).",
"BULLET_2": "Präsentation persönlicher Projekte und kontinuierliche Verbesserung algorithmischer Fähigkeiten.",
"BULLET_3": "Vertiefung von JavaScript/TypeScript-, Angular- und Spring-Boot-Kenntnissen durch praktisches Arbeiten.",
"BULLET_4": "Die Seite ist Open Source und auf GitHub verfügbar."
},
"TRIBBLE": {
"TITLE": "Trouble with Tribble",
"SHORT_DESCRIPTION": "Ein Projekt, das die Einrichtung und Wartung eines Homeservers beschreibt, auf dem verschiedene Docker-Container für Self-Hosting-Dienste laufen.",
"INTRODUCTION": "Dieses Projekt dokumentiert die Einrichtung eines persönlichen Homeservers mit dem Spitznamen \"Tribble\". Es umfasst die Installation von Ubuntu Server und die Containerisierung von Diensten wie Gitea für die Versionskontrolle, Jellyfin für das Mediastreaming und AdGuard Home für das Blockieren von Werbung im Netzwerk. Der Server ist über Traefik als Reverse-Proxy und Tailscale für eine sichere Netzwerkverbindung mit dem Internet verbunden, was das Self-Hosting der CI/CD-Pipeline dieser Website ermöglicht.",
"BULLET_1": "Self-Hosting verschiedener Dienste mit Docker.",
"BULLET_2": "CI/CD-Pipeline für die persönliche Website mit Gitea.",
"BULLET_3": "Sicherer Fernzugriff mit Tailscale und Traefik.",
"BULLET_4": "Netzwerkweites Blockieren von Werbung mit AdGuard Home."
},
"EL_MUCHO": {
"TITLE": "El Mucho",
"SHORT_DESCRIPTION": "Hier geht es um mein ersten Spiel auf Steam.",
"INTRODUCTION": "El Mucho ist ein rundenbasiertes taktisches RPG in einer fiktiven Welt namens Liberika. Es ist angelehnt an alte Klassiker wie Langrisser aka Warsong. In El Mucho geht es darum, die Welt gegen die Angriffe der fiesen Monster zu verteidigen.",
"BULLET_1": "Veröffentlichung eines Spiels auf Steam und Integration der Steam-API.",
"BULLET_2": "Konzeption, Planung und vollständige Entwicklung eines eigenen Spiels.",
"BULLET_3": "Implementierung komplexer Algorithmen wie einer eigenen A*-Pfadfindungslogik und Spiel-KI.",
"BULLET_4": "Das Spiel wurde mit Unity und C# entwickelt."
},
"GAME_JAMS": {
"TITLE": "Game Jams",
"SHORT_DESCRIPTION": "Hier geht es meine Teilnahme an mehreren Game Jams.",
"INTRODUCTION": "Da ich mich für die Entwicklung von Spielen interessiert, sind Game Jams für mich optimal, um fokussiert an neuen Ideen zu arbeiten und dabei Prototypen zu entwickeln, um zu sehen, ob Spielideen funktionieren oder nicht. In den letzten Jahren habe ich an einigen Game Jams teilgenommen und fasse das hier zusammen.",
"BULLET_1": "Planung eines realistischen Projektumfangs mit einem Team, der innerhalb von 48 Stunden umsetzbar ist.",
"BULLET_2": "Lernen, fokussiert und effizient unter strengen Zeitvorgaben zu arbeiten.",
"BULLET_3": "Die Freude zu erleben, in kurzer Zeit ein spielbares Projekt zu erstellen und andere damit spielen zu sehen.",
"BULLET_4": "Alle Projekte sind auf Itch.io verfügbar und spielbar."
},
"DIPLOMA": {
"TITLE": "Diplomarbeit",
"SHORT_DESCRIPTION": "Kollisionserkennung und Behandlung von komplexen Kleidungsstücken.",
"INTRODUCTION": "Die Diplomarbeit handelt von der Erkennung und der Behandlung von Kollisionen zwischen, sowie innerhalb, einzelnen Kleidungsstücken in Echtzeit. Das ist gerade aufgrund der Flexibilität von Stoffen und deren unterschiedlichen Eigenschaften besonders herausfordernd.",
"BULLET_1": "Echtzeit behandlung von Kollisionserkennung und Behandlung.",
"BULLET_2": "Verstehen und Einschätzen von wissenschaftlichen Arbeiten.",
"BULLET_3": "Adaption und Weiterentwicklung von vorausgegangenen Forschungsarbeiten.",
"BULLET_4": "Die Arbeit wurde mit C++ und OpenGL geschrieben und in die Vidya-Software integriert."
}
},
"IMPRINT": {
"TITLE" : "Impressum",
"PARAGRAPH": "Angaben gemäß § 5 DDG",
"COUNTRY": "Deutschland",
"CONTACT": "Kontakt"
},
"PATHFINDING": {
"TITLE": "Pfadfindungsalgorithmen",
"START_NODE": "Startknoten",
"END_NODE": "Endknoten",
"WALL": "Wand",
"CLEAR_NODE": "Löschen",
"DIJKSTRA": "Start Dijkstra",
"ASTAR": "Start A*",
"NORMAL_CASE": "Testaufbau",
"EDGE_CASE": "A* Grenzfall-Aufbau",
"RANDOM_CASE": "Zufälliger-Aufbau",
"CLEAR_BOARD": "Leeres Gitter",
"VISITED": "Besucht",
"PATH": "Pfad",
"PATH_LENGTH": "Pfadlänge",
"EXECUTION_TIME": "Ausführungszeit",
"EXPLANATION": {
"TITLE": "Algorithmen",
"DIJKSTRA_EXPLANATION": " findet garantiert den kürzesten Weg, wenn alle Kantenkosten nicht-negativ sind. Vorteil: optimal und ohne Heuristik. Nachteil: besucht oft sehr viele Knoten (kann bei großen Grids langsamer wirken).",
"ASTAR_EXPLANATION": " erweitert Dijkstra um eine Heuristik (z.B. Manhattan-Distanz) und kann dadurch wesentlich zielgerichteter suchen. Vorteil: oft deutlich schneller bei guter Heuristik; bei zulässiger Heuristik bleibt der Weg optimal. Nachteil: hängt stark von der Heuristik ab (schlechte Heuristik ≈ Dijkstra).",
"DISCLAIMER": "Diese A*-Implementierung ist bewusst einfach gehalten. Es wird nur in vier Richtungen gegangen und jeder Schritt kostet 1. Die Heuristik ist minimal und dient nur dazu, das Prinzip von A* gegenüber Dijkstra zu demonstrieren. Ziel ist nicht ein optimaler oder produktionsreifer A*-Algorithmus, sondern eine anschauliche Visualisierung, wie Heuristiken die Suche beschleunigen können."
},
"ALERT": {
"START_END_NODES": "Bitte wählen Sie einen Start- und Endknoten aus, bevor Sie den Algorithmus starten."
}
},
"SORTING": {
"TITLE": "Sortieralgorithmen",
"ALGORITHM": "Algorithmen",
"START": "Sortierung starten",
"RESET": "Zurücksetzen",
"GENERATE_NEW_ARRAY": "Neues Array generieren",
"EXECUTION_TIME": "Ausführungszeit",
"ARRAY_SIZE": "Anzahl der Balken",
"EXPLANATION": {
"TITLE": "Algorithmen",
"BUBBLE_SORT_EXPLANATION":"vergleicht wiederholt benachbarte Elemente und tauscht sie, wenn sie in der falschen Reihenfolge stehen. Das größte Element \"blubbert\" dabei wie eine Luftblase ans Ende der Liste. Vorteil: Extrem einfach zu verstehen und zu implementieren; erkennt bereits sortierte Listen sehr schnell. Nachteil: Sehr ineffizient bei großen Listen (Laufzeit O(n²)). In der Praxis kaum genutzt.",
"QUICK_SORT_EXPLANATION": "folgt dem \"Teile und Herrsche\"-Prinzip. Ein \"Pivot\"-Element wird gewählt, und das Array wird in zwei Hälften geteilt: Elemente kleiner als das Pivot und Elemente größer als das Pivot. Vorteil: Im Durchschnitt einer der schnellsten Sortieralgorithmen (O(n log n)); benötigt keinen zusätzlichen Speicher (In-Place). Nachteil: Im schlechtesten Fall (Worst Case) langsam (O(n²)), wenn das Pivot ungünstig gewählt wird. Ist nicht stabil (ändert Reihenfolge gleicher Elemente).",
"HEAP_SORT_EXPLANATION": "organisiert die Daten zunächst in einer speziellen Baumstruktur (Binary Heap). Das größte Element (die Wurzel) wird entnommen und ans Ende sortiert, dann wird der Baum repariert. Vorteil: Garantiert eine schnelle Laufzeit von O(n log n), selbst im schlechtesten Fall. Benötigt fast keinen zusätzlichen Speicher. Nachteil: In der Praxis oft etwas langsamer als Quick Sort, da die Sprünge im Speicher (Heap-Struktur) den CPU-Cache schlechter nutzen.",
"COCKTAIL_SORT_EXPLANATION" : "(auch Shaker Sort) ist eine Erweiterung des Bubble Sort. Statt nur von links nach rechts zu gehen, wechselt er bei jedem Durchlauf die Richtung und schiebt abwechselnd das größte Element nach rechts und das kleinste nach links. Vorteil: Schneller als Bubble Sort, da kleine Elemente am Ende schneller nach vorne wandern (\"Schildkröten-Problem\" gelöst). Nachteil: Bleibt in der Laufzeitklasse O(n²), also für große Datenmengen ineffizient.",
"DISCLAIMER": "Die Wahl des \"besten\" Sortieralgorithmus hängt stark von den Daten und den Rahmenbedingungen ab. In der Informatik betrachtet man oft drei Szenarien:",
"DISCLAIMER_1": "Best Case: Die Daten sind schon fast sortiert (hier glänzt z.B. Bubble Sort).",
"DISCLAIMER_2": "Average Case: Der statistische Normalfall.",
"DISCLAIMER_3": "Worst Case: Die Daten sind maximal ungünstig angeordnet (hier bricht Quick Sort ohne Optimierung ein, während Heap Sort stabil bleibt).",
"DISCLAIMER_4": "Zusätzlich gibt es fast immer einen Time-Space Trade-off (Zeit-Speicher-Kompromiss): Algorithmen, die extrem schnell sind (wie Merge Sort), benötigen oft viel zusätzlichen Arbeitsspeicher. Algorithmen, die direkt im vorhandenen Speicher arbeiten (wie Heap Sort), sparen Platz, sind aber manchmal komplexer oder minimal langsamer. Es gibt also keine \"One-Size-Fits-All\"-Lösung."
}
},
"GOL": {
"TITLE": "Conway's Spiel des Lebens",
"START": "Starten",
"PAUSE": "Pause",
"RANDOM_SCENE": "Zufällig",
"EMPTY_SCENE": "Leer",
"SIMPLE_SCENE": "Gleiter",
"PULSAR_SCENE": "Pulsar",
"GUN_SCENE": "Pistole",
"ALIVE": "Lebend",
"DEAD": "Leer",
"SPEED": "Zeit pro Generation",
"EXPLANATION": {
"TITLE": "Erklärung",
"EXPLANATION" : "Das Spiel läuft schrittweise ab. Zunächst wird eine Anfangsgeneration von lebenden Zellen auf dem Spielfeld definiert. Aus der vorliegenden Generation (dem Gesamtbild des Spielfeldes) wird die Folgegeneration ermittelt. Der Zustand jeder einzelnen Zelle in der Folgegeneration ergibt sich dabei nach einfachen Regeln aus ihrem aktuellen Zustand sowie den aktuellen Zuständen ihrer acht Nachbarzellen (Moore-Nachbarschaft).",
"DISCLAIMER": "Nach Conways ursprünglicher Regel lebt eine Zelle in der nächsten Runde, wenn zuvor in ihrer 3x3-Umgebung insgesamt genau drei Zellen leben, wobei sie selbst nur bei Bedarf mitgezählt wird, das heißt:",
"DISCLAIMER_1": "Eine lebende Zelle lebt auch in der Folgegeneration, wenn sie entweder zwei oder drei lebende Nachbarn hat.",
"DISCLAIMER_2": "Eine tote Zelle „wird geboren“ (lebt in der Folgegeneration), wenn sie genau drei lebende Nachbarn hat.",
"DISCLAIMER_3": "Eine lebende Zelle „stirbt“ (ist in der Folgegeneration tot), wenn sie weniger als zwei (Vereinsamung) oder mehr als drei (Übervölkerung) lebende Nachbarn hat.",
"DISCLAIMER_4": " Eine tote Zelle bleibt tot, wenn sie nicht genau drei lebende Nachbarn hat."
}
},
"LABYRINTH": {
"TITLE": "Labyrinth-Erzeugung",
"PRIM": "Erzeuge Prim's Labyrinth",
"KRUSKAL": "Erzeuge Kruskal's Labyrinth",
"EXPLANATION": {
"TITLE": "Algorithmen",
"PRIM_EXPLANATION": "startet an einem zufälligen Punkt und erweitert das Labyrinth, indem er immer eine zufällige benachbarte Wand zu einer bereits besuchten Zelle auswählt und diese öffnet. Vorteil: Erzeugt sehr gleichmäßige, natürlich wirkende Labyrinthe mit vielen kurzen Sackgassen. Visuell wirkt es wie ein organisches Wachstum von einem Zentrum aus.",
"KRUSKAL_EXPLANATION": "betrachtet alle Wände des Gitters als potenzielle Wege. Er wählt zufällig Wände aus und öffnet sie nur dann, wenn die beiden angrenzenden Zellen noch nicht miteinander verbunden sind (verhindert Kreise). Vorteil: Erzeugt ein sehr komplexes Labyrinth mit vielen langen, verwinkelten Pfaden. Visuell ist es spannend, da das Labyrinth an vielen Stellen gleichzeitig entsteht und am Ende zu einem Ganzen verschmilzt.",
"DISCLAIMER": "Beide Algorithmen basieren auf dem Prinzip des 'Minimal Spanning Tree' (Minimaler Spannbaum). Das bedeutet für dein Labyrinth:",
"DISCLAIMER_1": "Perfektes Labyrinth: Es gibt keine geschlossenen Kreise (Loops) jeder Punkt ist erreichbar, aber es gibt immer nur genau einen Weg zwischen zwei Punkten.",
"DISCLAIMER_2": "Erreichbarkeit: Da es ein Spannbaum ist, wird garantiert jede Zelle des Gitters Teil des Labyrinths, es gibt keine isolierten Bereiche.",
"DISCLAIMER_3": "Zufälligkeit: Durch die Gewichtung der Kanten mit Zufallswerten entstehen bei jedem Durchlauf völlig neue, einzigartige Strukturen.",
"DISCLAIMER_4": "Anwendung: Solche Labyrinthe sind die perfekte Testumgebung für Pfadfindungsalgorithmen wie Dijkstra oder A*."
}
},
"FRACTAL": {
"TITLE": "Fraktale",
"ALGORITHM": "Algorithmen",
"COLOR_SCHEME": "Farbschema",
"MAX_ITERATION": "Maximale Auflösung",
"EXPLANATION": {
"TITLE": "Mathematische Kunst",
"MANDELBROT_EXPLANATION": "basiert auf der iterativen Formel 'z_{n+1} = z_n^2 + c'. Sie prüft für jeden Punkt in der komplexen Ebene, ob die Zahlenfolge stabil bleibt oder ins Unendliche entkommt. Vorteil: Gilt als 'Apfelmännchen' und Mutter der Fraktale. Sie bietet eine unendliche Vielfalt an selbstähnlichen Strukturen, in die man ewig hineinzoomen kann.",
"JULIA_EXPLANATION": "nutzt dieselbe Formel wie Mandelbrot, fixiert jedoch den Parameter 'c' und variiert den Startwert. Je nach Wahl von 'c' entstehen filigrane, wolkenartige Gebilde oder zusammenhanglose 'Staubwolken'. Vorteil: Ermöglicht eine enorme ästhetische Varianz, da jede Koordinate der Mandelbrot-Menge ein völlig eigenes, einzigartiges Julia-Fraktal erzeugt.",
"NEWTON_EXPLANATION": "entsteht durch die Visualisierung des Newton-Verfahrens zur Nullstellen-Suche einer komplexen Funktion. Jeder Pixel wird danach eingefärbt, zu welcher Nullstelle der Algorithmus konvergiert. Vorteil: Erzeugt faszinierende, sternförmige Symmetrien und komplexe Grenzen, an denen sich die Einzugsgebiete der Nullstellen auf chaotische Weise treffen.",
"BURNING_SHIP_EXPLANATION": "ist eine Variation des Mandelbrots, bei der vor jedem Iterationsschritt der Absolutbetrag der Real- und Imaginärteile genommen wird: '(|Re(z)| + i|Im(z)|)^2 + c'. Vorteil: Erzeugt eine markante, asymmetrische Struktur, die einem brennenden Schiff mit Segeln ähnelt. Das Fraktal wirkt düsterer und 'mechanischer' als die klassischen Mengen.",
"DISCLAIMER": "Alle diese Fraktale basieren auf dem Prinzip der Iteration und dem Chaos-Effekt. Das bedeutet für deine Visualisierung:",
"DISCLAIMER_1": "Unendliche Tiefe: Egal wie weit du hineinzoomst, es erscheinen immer neue, komplexe Strukturen, die dem Ganzen oft ähneln (Selbstähnlichkeit).",
"DISCLAIMER_2": "Fluchtzeit-Algorithmus: Die Farben geben meist an, wie schnell eine Folge einen bestimmten Schwellenwert überschreitet je schneller, desto 'heißer' oder heller die Farbe.",
"DISCLAIMER_3": "Komplexe Zahlen: Die Berechnung findet nicht in einem normalen Koordinatensystem statt, sondern in der komplexen Ebene mit realen und imaginären Anteilen.",
"DISCLAIMER_4": "Rechenintensität: Da für jeden Pixel hunderte Berechnungen durchgeführt werden, sind Fraktale ein klassischer Benchmark für die Performance von Grafikprozessoren (GPUs)."
}
},
"ALGORITHM": {
"TITLE": "Algorithmen",
"PATHFINDING": {
"TITLE": "Wegfindung",
"DESCRIPTION": "Vergleich von Dijkstra vs. A*."
},
"SORTING": {
"TITLE": "Sortierung",
"DESCRIPTION": "Visualisierung verschiedener Sortieralgorithmen."
},
"GOL": {
"TITLE": "Conway's Game of Life",
"DESCRIPTION": "Das 'Spiel des Lebens' ist ein vom Mathematiker John Horton Conway 1970 entworfenes Spiel."
},
"LABYRINTH": {
"TITLE": "Labyrinth-Erzeugung",
"DESCRIPTION": "Visualisierung verschiedener Laybrinth-Erzeugungs-Algorithmen."
},
"FRACTAL": {
"TITLE": "Fraktale",
"DESCRIPTION": "Visualisierung von komplexe, geometrische Mustern, die sich selbst in immer kleineren Maßstäben ähneln (Selbstähnlichkeit)."
},
"NOTE": "HINWEIS",
"GRID_HEIGHT": "Höhe",
"GRID_WIDTH": "Beite"
}
}