4 Gewinnt Algorithmus

Meccan

Erfahrenes Mitglied
Hallo Leute,

ich programmier gerade 4 Gewinnt.
Soweit funktionieren auch die Spielzüge usw.
das einzigste Problem was ich habe ist,
das ich mir kein gute und schneller Algorithmus
einfällt der überprüft ob es Spieler gewonnen hat.
Hab schon ein bisschen gegoogelt aber leider
nicht gefunden, nur Algorithmen zu Ki's.

Hat einer von euch eine Ahnung wie ein
kurzer und schneller Algorithmus aussehen könnte?

Danke für eure Hilfe
 
Ja es ist ein Zweidimensionales Array.
Das Spielfeld ist bei mir 7 Felder breit und 6 Felder hoch.
Die waagerechten und senkrechten Lösungen hab ich schon,
ich verzweifel grad nur an der diagonalen Lösungen.

Die Lösung für die senk. und waagerechten Felder ist folgendermaßen:
Ich nehme mir das aktuelle Feld in dem gerade gesetzt wurde und
schaue mir dann die Steine nach links und rechts oder oben und unten
an wenn dabei zählt ein Zähler hoch und wenn ich mehr als 3 Steine
der gleichen Farbe nebeneinander haben, hat der Spieler gewonnen.


Danke.
 
Kleiner verbesserungsvorschlag von mir: Du musst für die waagrechten, senkrechten und diagonalen doch vorerst nicht die angrenzenden Felder betrachten, schau für einen Stein doch gleich das Feld 2 Felder weiter an (überspring 2 Felder). Wenn in dem Feld kein Stein deiner Farbe ist, das Feld leer ist oder gar nicht existiert weil dies ja schon außerhalb des Spielfeldrandes lliegen würde, kannst du das überprüfen in dieser Richtung schon mal abbrechen, da maximal nur 3 Steine deiner Farbe vorhanden sind. Ansonsten kannst du den zwischenraum ja danach noch überprüfen. Das sollte dir schon etwas Zeit beim überprüfen sparen.
 
Aber as ist denn wenn die Steine am Anfang so sind:

_ooxx_xo_

x=white
o=black

nach deiner Überprüfung, wenn weiß setzt

_ooxxxxo_

dann hat weiß nicht gewonnen, da du ja den zwischenraum nicht prüfst wenn du 2 felder auslässt, oder verstehe ich dich falsch?
 
Zurück