README.md aktualisiert
This commit is contained in:
parent
ae5c3c7497
commit
6f4ab13691
68
README.md
68
README.md
@ -1,39 +1,55 @@
|
|||||||
# Lotto Spiel – WPF Anwendung
|
# 🎲 Lotto Spiel – WPF Anwendung (C# / .NET)
|
||||||
|
|
||||||
## Projektbeschreibung
|
## 📌 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.
|
Diese Anwendung ist ein selbst programmiertes 6-aus-49-Lotto-Spiel auf Basis von WPF (Windows Presentation Foundation) in C#. Ziel ist es, 6 Zahlen zwischen 1 und 49 auszuwählen, eine Ziehung zu starten und anschließend zu sehen, wie viele Treffer man hat – natürlich mit einem kleinen virtuellen Geldsystem dazu.
|
||||||
|
|
||||||
Die Oberfläche wurde benutzerfreundlich gestaltet, mit einem Zahlenfeld zur Auswahl, einer Seitenleiste für Aktionen und einer Anzeige des aktuellen Kontostands.
|
Beim Start hat man ein Guthaben von **2000 €**. Für jede Ziehung werden **5 € Einsatz** abgezogen. Je nach Anzahl der Treffer gibt es dann Gewinne zurück. Alles läuft über eine einfache grafische Oberfläche mit Zahlenauswahl, Ziehungsbutton, Kontostandsanzeige und Reset-Funktion.
|
||||||
|
|
||||||
## Funktionen
|
Die Anwendung wurde gemeinsam entwickelt und funktioniert komplett lokal – ohne Datenbank, Internet oder externe Abhängigkeiten.
|
||||||
|
|
||||||
- Auswahl von 6 Zahlen über Buttons (1–49)
|
---
|
||||||
|
|
||||||
|
## 🔧 Funktionen im Überblick
|
||||||
|
|
||||||
|
- Auswahl von genau 6 Zahlen (Buttons von 1–49)
|
||||||
- Zufällige Ziehung von 6 Lottozahlen
|
- Zufällige Ziehung von 6 Lottozahlen
|
||||||
- Markierung der Treffer und Nicht-Treffer
|
- Automatische Trefferprüfung
|
||||||
- Gewinnberechnung basierend auf Trefferanzahl
|
- Farbige Darstellung: **Grün = Treffer**, **Rot = kein Treffer**
|
||||||
- Kontostand-Management mit Startguthaben von 2000 €
|
- Kontostand mit Startguthaben & Einsatz/Gewinn-Logik
|
||||||
- Reset-Funktion zum Zurücksetzen des Spiels
|
- Reset-Button zum Zurücksetzen des Spiels
|
||||||
|
|
||||||
## Team & Aufgabenverteilung
|
---
|
||||||
|
|
||||||
**Jan Dshek**
|
## 👨💻 Aufgabenverteilung
|
||||||
- Entwicklung der Spiellogik (Ziehung, Trefferprüfung, Gewinnermittlung)
|
|
||||||
- Implementierung der Benutzerinteraktion mit den Zahlenbuttons
|
|
||||||
- Validierung der Eingabe (max. 6 Zahlen, ausreichend Guthaben)
|
|
||||||
|
|
||||||
**Kevin Dietze**
|
Die Entwicklung haben wir im Team gemacht und dabei klare Schwerpunkte gesetzt:
|
||||||
- Gestaltung des XAML-Layouts (UI-Design)
|
|
||||||
- Erstellung der grafischen Benutzeroberfläche mit WrapPanel und StackPanel
|
|
||||||
- Integration der Kontostandsanzeige und Aktionsbuttons
|
|
||||||
|
|
||||||
## Probleme und Herausforderungen
|
### **Jan Dshek**
|
||||||
|
- Spiellogik in C# (Zufallsziehung, Trefferprüfung, Gewinnvergabe)
|
||||||
|
- Benutzerinteraktion (Zahlen klicken, Zustände speichern)
|
||||||
|
- Eingabeprüfung (max. 6 Zahlen, Guthabencheck)
|
||||||
|
|
||||||
- **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.
|
### **Kevin Dietze**
|
||||||
- **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.
|
- XAML-Oberfläche (Layout, UI-Design mit Panels und Buttons)
|
||||||
- **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.
|
- Gestaltung der Spielfläche mit WrapPanel
|
||||||
- **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.
|
- Umsetzung der Seitenleiste inkl. Kontostandsanzeige & Buttons
|
||||||
|
|
||||||
## Fazit
|
> Viele Details wie Farben, Fehlermeldungen und Spielfluss haben wir gemeinsam abgestimmt und umgesetzt.
|
||||||
|
|
||||||
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.
|
---
|
||||||
|
|
||||||
|
## ⚠️ Herausforderungen im Projekt
|
||||||
|
|
||||||
|
- **Zahlenauswahl beschränken:** Es musste sichergestellt werden, dass wirklich nur 6 Zahlen auswählbar sind – ohne weitere Trickserei. Das haben wir direkt über die Button-Logik geregelt.
|
||||||
|
- **Doppelte Ziehungen vermeiden:** Nach dem Start einer Ziehung sollten keine weiteren Aktionen möglich sein, bevor das Spiel zurückgesetzt wird.
|
||||||
|
- **Farbmarkierung bei Ziehung:** Anfangs war unklar, wie wir Treffer/Nieten optisch abheben. Am Ende haben wir es mit einfacher Farb-Logik und klaren Listenvergleichen gelöst.
|
||||||
|
- **Reset sauber machen:** Nach dem Zurücksetzen durfte nichts mehr von vorher sichtbar sein – weder alte Ziehungen noch grüne/rote Felder. Wir leeren also gezielt die nötigen Listen und setzen die Button-Farben zurück.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Fazit
|
||||||
|
|
||||||
|
Das Projekt war eine gute Möglichkeit, die Arbeit mit WPF und C# in der Praxis zu vertiefen. Wir haben gelernt, wie man Benutzerinteraktion sinnvoll umsetzt, mit Zuständen arbeitet und UI und Logik sauber voneinander trennt.
|
||||||
|
|
||||||
|
Besonders geholfen hat die klare Aufgabenteilung: Einer eher im Code, der andere am Design – aber trotzdem haben wir alles als Team umgesetzt. Die Anwendung läuft stabil, ist verständlich aufgebaut und tut genau, was sie soll.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user