4 Gewinnt in "C" programmieren ?

3 Antworten

schreibe dazu einen kleinen Algorithmus der die umliegenden felder prüft.

bei einem oder mehren matches

hast du die richtung und prüfst dahin weiter

bei 4 matchs in folge steht ein sieger fest.

Ich frage mich immer wieder, warum hier immer Fragen mit der grässlichen Konsole kommen, wenn ohnehin Windows im Programm verankert wird.

Du musst Dir doch irgendeine programmtechnische Darstellung der 8x7-Matrix vorgestellt haben?

Zur Vereinfachung kannst Du die Prüfung immer über alle Spalten, Zeilen und Diagonalen laufen lassen. Später kannst Du das einschränken auf den zuletzt gespielten Stein.

Zu setzt einen Merker auf "unbelegt" und einen Zähler auf 0.

Findest Du denselben Stein, inkrementierst Du den Zähler (ist er 4, hat die gemerkte Farbe gewonnen), ansonsten merkst Du Dir di neue Farbe und setzt den Zähler auf 1.

Schreibe dir dazu eine Funktion, die nach jedem Setzen eines Steines aufgerufen wird (bzw. erst, nachdem mindestens vier Steine gesetzt wurden).

Die Funktion prüft jede Reihe und jede Spalte auf vier nebeneinanderliegende gleichfarbige Steine. Im Anschluss wird noch für jeden Stein geprüft, ob in den Feldern um ihn noch ein gleichfarbiger Stein liegt. Ist das der Fall, so wird rekursiv so lange weitergeprüft, bis vier gleichfarbige Steine diagonal gefunden wurden.

Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach. 

LG Willibergi