Home » Tutorials » Grafik und Spiele » Vier gewinnt

Vier gewinnt

Feintuning – bemerkt man nur wenn es fehlt

Bevor wir uns noch zwei größeren Bereichen widmen, nehmen wir zunächst noch ein wenig Feintuning am Programm vor. Genau genommen an der Benutzeroberfläche. Bisher setzen zwar die Spieler immer im Wechsel, allerdings sieht man nirgends wer eigentlich am Zug ist.
Wir erinnern uns, dass wir für diesen Zweck einen eigenen Panel erstellt haben.

Aufgabe: Befülle den Panel mit dem Spieler der am Zug ist und seiner Farbe.

procedure TForm1.SpielerPanelFarbeAktualisieren;
begin
  pnlSpieler.Color := FspielerFarbe[FAktiverSpieler];
  //Aktiven Spieler bzw. Gewinner anzeigen
  if Spielaktiv then
    pnlSpieler.Caption := FSpielerName[FAktiverSpieler]
  else
    pnlSpieler.Caption := FSpielerName[FAktiverSpieler] + ' gewinnt';
end;

Ok, das war jetzt nicht wirklich schwer. Zunächst wird dem Panel die Farbe des aktiven Spielers verpasst. Anschließend wird eine Unterscheidung getroffen, ob das Spiel noch läuft oder nicht mehr.

Wenn das Spiel läuft, wird einfach der Name des Spielers in den Panel eingetragen, falls nicht (was nur auftritt wenn einer gewonnen hat) wird der Name des Spielers und „gewinnt“ eingetragen. Dadurch ist auch nach dem Wegklicken der Meldung noch ersichtlich wer gewonnen hat.

Damit diese Anpassung auch vorgenommen wird, muss diese Prozedur innerhalb von Darstellen aufgerufen werden.

Weiterhin ist es ja doch unpraktisch, dass wir am Anfang erst auf neues Spiel klicken müssen. Kaum jemand wird das Spiel starten und dann nicht spielen wollen. Deshalb wollen wir gleich zu beginn ein neues Spiel starten.

Da einige der benötigten Objekte, einschließlich des „Neu“-Buttons beim FormCreate, noch nicht existieren, brauchen wir eine Alternative. Hierfür bietet sich FormShow an. Dieses wird ausgelöst, wenn das Formular angezeigt wird.
Beim Hauptformular ist das nur nach dem Programmstart. Bei Nebenformularen wird dieses Ereignis wieder ausgelöst, wenn es geschlossen war.

btnNeuClick(Sender);

Dieser Befehl macht nichts anderes als die ButtonClick Routine unseres „neu“-Buttons aufzurufen.

Das war es jetzt auch schon an Feinheiten. Der Aufwand ist nicht besonders groß, aber das Empfinden wird wesentlich besser, weil eben störende Kleinigkeiten nicht mehr da sind.