chemie-spiel/PLAN.md

5.7 KiB
Raw Blame History

Chemie-Lernspiel Upgrade-Plan

Dieses Dokument beschreibt die geplanten Erweiterungen für das Alchemie-Labor-Chemie-Lernspiel im Verzeichnis chemie-spiel-dev.


1. Ziele des Upgrades

  • Lernwert steigern: Spieler erhalten spannende und verständliche Fakten über die entdeckten Moleküle.
  • Gamification: Ein "Entdecker-Buch" (Lexikon/Bibliothek) im Sidebar motiviert dazu, alle Moleküle freizuschalten. Fortschritt wird im Browser (localStorage) gespeichert.
  • Visuelles Feedback & Saftigkeit (Juiciness): Reaktionen erzeugen Partikel-Explosionen, Atome sehen aus wie 3D-Kugeln, und das Interface fühlt sich dynamischer an.
  • Mehr Inhalt: Zusätzliche Elemente (Schwefel, Eisen) und 12 neue Reaktionen (insgesamt 18 Rezepte).

2. Detaillierte Features

A. Element- & Rezept-Erweiterung

Wir führen zwei neue Basiselemente ein:

  • Schwefel (S) (Gelb, #f1c40f)
  • Eisen (Fe) (Metallisch-Grau, #95a5a6)

Damit erweitern wir das Rezeptbuch um folgende spannende Kombinationen:

  1. H₂O (Wasser): 2x H + 1x O
  2. NaCl (Kochsalz): 1x Na + 1x Cl
  3. O₂ (Sauerstoff): 2x O
  4. CO₂ (Kohlendioxid): 1x C + 2x O
  5. CH₄ (Methan): 1x C + 4x H
  6. NH₃ (Ammoniak): 1x N + 3x H
  7. HCl (Salzsäure): 1x H + 1x Cl
  8. NaOH (Natronlauge): 1x Na + 1x O + 1x H
  9. H₂S (Schwefelwasserstoff): 2x H + 1x S
  10. FeS (Eisensulfid): 1x Fe + 1x S
  11. SO₂ (Schwefeldioxid): 1x S + 2x O
  12. CO (Kohlenmonoxid): 1x C + 1x O
  13. H₂O₂ (Wasserstoffperoxid): 2x H + 2x O
  14. HCN (Blausäure): 1x H + 1x C + 1x N
  15. N₂ (Stickstoff): 2x N
  16. Cl₂ (Chlor): 2x Cl
  17. H₂ (Wasserstoff): 2x H
  18. C₂H₄ (Ethen): 2x C + 4x H

B. Das Entdecker-Buch (Lexikon)

  • Befindet sich in der Sidebar unter der Elementen-Auswahl.
  • Zeigt den aktuellen Fortschritt an (z. B. "Entdeckt: 2 / 18").
  • Ungelöste Rezepte werden als ausgegraute Fragezeichen dargestellt (z. B. ??? (H₂O) oder komplett anonymisiert).
  • Entdeckte Moleküle leuchten auf, zeigen ihren vollen Namen und können angeklickt werden, um die Info-Karte erneut zu öffnen.
  • Speicherung des Fortschritts in localStorage.

C. Info-Modal (Pop-up)

  • Sobald eine Reaktion stattfindet, öffnet sich ein wunderschönes Modal (verdunkelter, weichgezeichneter Hintergrund).
  • Inhalt:
    • Großer Titel mit der chemischen Formel (z. B. H₂O (Wasser)).
    • Ein kurzes, interessantes "Wusstest du schon?"-Faktum (z. B. über die Giftigkeit von Natrium und Chlor einzeln vs. die Harmlosigkeit von Kochsalz).
    • Ein "Schließen"-Button, der das Modal schließt und den Spielfluss fortsetzt.

D. Visuelle Effekte & Animationen

  • Partikel-Explosion: Bei einer erfolgreichen Reaktion fliegen 10-15 kleine, farbige Funken vom Reaktionszentrum in alle Richtungen weg und verblassen.
  • 3D-Atome: Atome erhalten einen radialen Farbverlauf, der ihnen ein plastisches, rundes Aussehen verleiht.
  • Tisch-Statistiken: Ein kleiner Counter zeigt an, wie viele Atome und Moleküle sich gerade auf dem Tisch befinden.
  • Tisch leeren: Ein Papierkorb-Button löscht alle Elemente vom Tisch, um Platz für neue Experimente zu schaffen.

3. Schritt-für-Schritt-Implementierung

Schritt 1: HTML-Struktur aktualisieren (index.html)

  • Neue Buttons für Schwefel (S) und Eisen (Fe) hinzufügen.
  • Eine Sektion #discovery-book in der Sidebar einbauen.
  • Den "Tisch leeren"-Button und die Statistik-Zähler im Labor-Tisch ergänzen.
  • Das #info-modal Container-Skelett am Ende des Bodys hinzufügen.

Schritt 2: CSS-Styling verfeinern (style.css)

  • Sidebar-Scrollbarkeit verbessern, falls das Lexikon lang wird.
  • Modernes Styling für das Modal (position: fixed, Flexbox-Zentrierung, backdrop-filter: blur(5px)).
  • 3D-Look für Atome via Radial-Gradient (background: radial-gradient(circle at 30% 30%, color 0%, darkcolor 100%)).
  • Schönes Design für das Entdecker-Buch (Grid oder List-Layout, Transitionen beim Freischalten).
  • Partikel-CSS-Klasse für die Reaktionsexplosion.

Schritt 3: JavaScript-Logik überarbeiten (app.js)

  • Rezepte-Array mit allen 18 Rezepten, Farben und detaillierten Texten anlegen.
  • Speicherlogik via localStorage einrichten (discoveredMolecules Set).
  • Funktion updateDiscoveryBook() schreiben, die das Lexikon-UI aktualisiert.
  • Funktion triggerExplosion(x, y, color) entwickeln, die DOM-basierte Partikel erzeugt und animiert.
  • Modal-Logik integrieren (showModal(recipe)), die bei einer Reaktion aufgerufen wird und bei Klick auf das Lexikon.
  • Event-Listener für "Tisch leeren" und die Positions-Zähler aktualisieren.

4. Validierung & Tests

  • Webserver: Läuft im Hintergrund auf Port 8080.
  • Funktionalität:
    1. Spawnen von Atomen klappt.
    2. Drag & Drop funktioniert flüssig.
    3. Zusammenführen von 2x H + 1x O öffnet das Wasser-Modal und erzeugt eine Partikel-Explosion.
    4. Wasser wird im Entdecker-Buch freigeschaltet und persistiert bei Seiten-Reload.
    5. "Tisch leeren" entfernt alle Atome und Moleküle.

5. Rezept-Daten (Vorschau für app.js)

const recipes = [
    {
        id: "h2o",
        ingredients: ['H', 'H', 'O'],
        result: 'H₂O (Wasser)',
        color: '#3498db',
        desc: "Wasser ist die Grundlage allen Lebens auf der Erde. Unser Körper besteht zu über 60% daraus, und es bedeckt mehr als 70% unseres Planeten!"
    },
    {
        id: "nacl",
        ingredients: ['Cl', 'Na'],
        result: 'NaCl (Kochsalz)',
        color: '#f5f6fa',
        desc: "Natriumchlorid kennen wir alle als Speisesalz. Faszinierend: Natrium ist ein explosives Metall und Chlor ein giftiges Gas  zusammen ergeben sie ein lebenswichtiges Gewürz!"
    },
    // ...weitere 16 Rezepte
];