# Lotto Spiel – WPF Anwendung ## Projektbeschreibung Dieses Projekt ist eine WPF-Anwendung in C#, in der Benutzer ein klassisches 6-aus-49-Lotto-Spiel spielen können. Ziel der Anwendung ist es, 6 Zahlen zwischen 1 und 49 auszuwählen, eine Ziehung zu starten und den möglichen Gewinn abhängig von der Anzahl der Treffer zu berechnen. Das Spiel enthält ein Kontostand-System, das den Einsatz pro Spiel (5 €) sowie eventuelle Gewinne berücksichtigt. Die Oberfläche wurde benutzerfreundlich gestaltet, mit einem Zahlenfeld zur Auswahl, einer Seitenleiste für Aktionen und einer Anzeige des aktuellen Kontostands. ## Funktionen - Auswahl von 6 Zahlen über Buttons (1–49) - Zufällige Ziehung von 6 Lottozahlen - Markierung der Treffer und Nicht-Treffer - Gewinnberechnung basierend auf Trefferanzahl - Kontostand-Management mit Startguthaben von 2000 € - Reset-Funktion zum Zurücksetzen des Spiels ## Team & Aufgabenverteilung **Jan Dshek** - Entwicklung der Spiellogik (Ziehung, Trefferprüfung, Gewinnermittlung) - Implementierung der Benutzerinteraktion mit den Zahlenbuttons - Validierung der Eingabe (max. 6 Zahlen, ausreichend Guthaben) **Kevin Dietze** - Gestaltung des XAML-Layouts (UI-Design) - Erstellung der grafischen Benutzeroberfläche mit WrapPanel und StackPanel - Integration der Kontostandsanzeige und Aktionsbuttons ## Probleme und Herausforderungen - **Mehrfachauswahl-Validierung:** Es musste verhindert werden, dass mehr als 6 Zahlen ausgewählt werden können. Dabei haben wir ein Problem mit der UI-Synchronisation entdeckt, das behoben werden konnte, indem die Auswahl direkt in der `Click`-Methode überprüft wurde. - **Kontostandsaktualisierung:** Bei mehrfachen Ziehungen ohne Zurücksetzen wurden irrtümlich mehrfach Einsätze abgezogen. Wir haben daher eine Sperrung weiterer Eingaben nach der Ziehung integriert. - **Markierungslogik:** Es war anfangs unklar, wie die Buttons nach der Ziehung farblich korrekt dargestellt werden sollen (Treffer = Grün, Niete = Rot). Dieses Problem wurde durch einen klaren Vergleich zwischen gezogenen und gewählten Zahlen gelöst. - **Reset-Verhalten:** Es kam vor, dass nach dem Zurücksetzen noch alte Ziehungsergebnisse angezeigt wurden. Dieses Problem wurde durch das Leeren der Listen `selectedNumbers` und `gezogeneZahlen` sowie das Zurücksetzen der Button-Farben gelöst. ## Fazit Das Projekt hat geholfen, sowohl das Verständnis von WPF als auch den Umgang mit C# in einer GUI-Anwendung zu vertiefen. Durch die klare Aufgabenverteilung konnte jeder gezielt seine Stärken einbringen, und wir haben wichtige Erfahrungen im Umgang mit Events, Benutzerführung und Zustandsspeicherung gesammelt.