Lotto_Projekt/README.md

40 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# 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 (149)
- 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.