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
|
||||
- Markierung der Treffer und Nicht-Treffer
|
||||
- Gewinnberechnung basierend auf Trefferanzahl
|
||||
- Kontostand-Management mit Startguthaben von 2000 €
|
||||
- Reset-Funktion zum Zurücksetzen des Spiels
|
||||
- Automatische Trefferprüfung
|
||||
- Farbige Darstellung: **Grün = Treffer**, **Rot = kein Treffer**
|
||||
- Kontostand mit Startguthaben & Einsatz/Gewinn-Logik
|
||||
- Reset-Button 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)
|
||||
## 👨💻 Aufgabenverteilung
|
||||
|
||||
**Kevin Dietze**
|
||||
- Gestaltung des XAML-Layouts (UI-Design)
|
||||
- Erstellung der grafischen Benutzeroberfläche mit WrapPanel und StackPanel
|
||||
- Integration der Kontostandsanzeige und Aktionsbuttons
|
||||
Die Entwicklung haben wir im Team gemacht und dabei klare Schwerpunkte gesetzt:
|
||||
|
||||
## 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.
|
||||
- **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.
|
||||
### **Kevin Dietze**
|
||||
- XAML-Oberfläche (Layout, UI-Design mit Panels und Buttons)
|
||||
- Gestaltung der Spielfläche mit WrapPanel
|
||||
- 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