Frage

Ich werde mit VBA vertraut, und ich versuche, ein Machine-Lernprogramm für TIC TAC-Zehe zu machen. Ich möchte nicht nur hart Code, um die Möglichkeiten zu gewinnen.

Das Beste, was ich für ein Maschinenlernprogramm erreichte, besteht darin, eine Baumstruktur mit all den möglichen Zügen zu haben, die hergestellt werden können, und dann den Computer, wenn der Computer verzweigt, wenn er mit diesem Zweig verliert.

Zum Beispiel mit dem folgenden Weg, um anzugeben, wo die Leute gespielt haben, und die Reihenfolge, die die Buchstaben als die Reihenfolge geschrieben sind, ist das Spiel fortschreitet

generasacodicetagpre.

abdgfce - bedeutet, dass der Computer gewinnt, a wurde zuerst gespielt, B zweiter, d dritter ....

Ich hätte gerne einen Datenbaum, der aussieht:

stufe 0: a (Computer startet immer mit a)

stufe 1: Alle Buchstaben außer a, wie es bereits abgespielt wurde

Stufe 2: Für jeden Buchstaben in Level 0, alle Buchstaben außer dem rechten vorher und a

usw. für alle Niveaus des Baums, bis ihre nicht mehr mögliche Bewegungen sind.

Ich habe versucht, nach Wegen zu suchen, um diese Struktur in VBA umzusetzen, aber die Microsoft-Website war jedoch keine Hilfe und die Foren sprechen nur von binären oder sortierenden Bäumen. Würde mich jemand in die richtige Richtung zeigen oder mir einige Zeiger geben, was ich versuchen sollte? Was ist ein besserer Weg, um dieses Problem zu lösen, wenn diese Lösung nicht machbar ist?

danke,

Karim

War es hilfreich?

Lösung

Es gibt "nur" 362,880 Möglichkeit, die neun Plätze in einer TIC-Tac-Toe-Tabelle zu füllen.Das vollständige Set kann in Spalte a durch Platzierung von:

erstellt werden

abcdefghi

in cell b1 und lauflaufen getstring ():

generasacodicetagpre.

xx

Natürlich endet die Mehrheit der Spiele, bevor alle neun Plätze gefüllt sind.Wenn der Computer verliert, wird dieser Artikel entfernt usw.

edit # 1:

wayne g. dunn schlug vor, dass die Anzahl der Variationen reduziert werden kann.Der Computer (Player # 1) hat neun mögliche Orte, in denen es sein x gibt. PLAYER # 2 hat dann acht mögliche Orte, um sie o zu platzieren. etc.

Dies ergibt 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 oder 9 faktorisch.

Das Spiel kann jedoch enden, bevor alle neun Plätze gefüllt sind.Somit können viele der 362880-Varianten verworfen werden ............ Ich weiß einfach nicht, wie viele.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top