TicTacToe-WPF-Übungskurs - Spielfeld verschönern

TicTacToe-WPF-Übungskurs - Spielfeld verschönern

Mmmmmoin und willkommen zur fünften Übung im TicTacToe Übungskurs für WPF Einsteiger!

Musterlösung der letzten Aufgabe

Musterlösung: Hier meine Musterlösung als zip-Datei.

Musterlösung Schritt-für-Schritt (durch Klick auf die Links siehst du die Änderungen im Quellcode von einem Schritt zum nächsten):

  1. Eine Gewinnreihe ermitteln
  2. Alle Gewinnreihen ermitteln
  3. Gewinner anzeigen
  4. Gewinnreihe im Spielfeld hervorheben
  5. Ist bereits in den vorherigen Schritten enthalten

Alternative: Mir gefällt nicht, dass in der bisherigen Musterlösung die Markierung der Gewinnreihe in der Methode IstSpielGewonnen() gemacht wird. Der Methodennamen IstSpielGewonnen() impliziert für mich, dass nur eine Abfrage stattfindet und keine Änderung. Daher habe ich noch eine Alternative umgesetzt. Hier findest du die Alternative mit der Methode SucheGewinnReihe().

Die neue Aufgabe

Die Anzeige von Hinweisen (insbesondere das Spielresultat) über eine MessageBox ist okay, aber auch nicht wirklich toll. Darum soll heute die Anzeige von Hinweisen direkt in das MainWindow integriert werden. Das Resultat könnte dann ungefähr so aussehen:

Mein TicTacToe mit Spiel gewonnen Label

Um das zu erreichen, kannst du folgende Schritte umsetzen:

  1. Platziere ein Label über der mittleren Zeile des Spielfeld. Solange du keinen Hinweis anzeigen möchtest, bekommt das Label einen leeren string als Content.
  2. Zeige den Hinweis “Dieses Kästchen ist bereits belegt! Wähle ein anderes.” im Label an (vorher war er in einer MessageBox). Blende den Hinweis aus, wenn ein weiteres Mal auf das Spielfeld geklickt wird. Hinweis: Du kannst den Text z.B. auf “Kästchen belegt” verkürzen.
  3. Zeige den Spielstand beim Spielende im Label an. Auch dieser Hinweis soll beim nächsten Klick ausgeblendet werden.
  4. Verbessere die Sichtbarkeit der Hinweise in dem du dem Label eine halbtransparente Hintergrundfarbe verpasst.
  5. Verwende eine Eigenschaft des Label um es wirklich auszublenden (nicht nur den Content auf einen leeren string setzen), wenn es nicht benötigt wird.
  6. [optional] Blende den Hinweis aus Schritt 2 (“Kästchen belegt!”) automatisch nach 2-3 Sekunden wieder aus.
  7. [optional] Sofern du es noch nicht getan hast, mache einen Commit für deine ganzen Änderungen und schiebe alles via Sync auf GitHub.

Lösungshinweise

Weiterführende Artikel / Videos

In wenigen Tagen bekommst du eine weitere Mail von mir mit meiner Musterlösung und der nächtsen Teilaufgabe.

Bis dahin wünsche ich dir viel Spaß beim Üben

Jan von LernMoment.de