Ist F # eine gute Sprache für die Kartenspiel-KI? [geschlossen]

Ich schreibe ein Mahjong-Spiel in C # (das traditionelle chinesische Spiel, nicht das Solitärspiel). Während ich den Code für die KI des Bot-Spielers schreibe, frage ich mich, ob eine funktionale Sprache wie F # eine geeignetere Sprache wäre als die, die ich derzeit verwende, nämlich C # mit viel Linq. Ich weiß nicht viel über F #, weshalb ich hier frage.

Um zu veranschaulichen, was ich zu lösen versuche, folgt eine kurze Zusammenfassung von Mahjong:

Mahjong spielt ein bisschen wie Gin Rummy. Sie haben 13 Plättchen auf der Hand, und in jedem Zug ziehen Sie ein Plättchen und werfen ein anderes ab, um Ihre Hand in Richtung einer gewinnenden Mahjong-Hand zu verbessern, die aus 4 Sätzen und einem Paar besteht. Sets können 3er-Sets (Pungs), 4er-Sets (Kongs) oder eine Folge von 3 aufeinanderfolgenden Kacheln (Chows) sein. Sie können auch den Abwurf eines anderen Spielers stehlen, wenn dieser einen Ihrer Sätze vervollständigen kann.

Der Code, den ich schreiben musste, um festzustellen, ob der Bot 3 aufeinanderfolgende Kachelsätze (Chow) deklarieren kann, ist ziemlich mühsam. Ich muss alle einzigartigen Steine ​​in der Hand finden und dann prüfen, ob es eine Folge von 3 Steinen gibt, die diesen in der Hand enthalten. Das Erkennen, ob der Bot Mahjong erreichen kann, ist noch komplizierter, da es sich um eine Kombination aus dem Erkennen von 4 Sätzen und einem Paar in seiner Hand handelt. Und das ist nur eine Standard-Mahjong-Hand. Es gibt auch zahlreiche "spezielle" Hände, die diese Regeln brechen, aber immer noch eine Mahjong-Hand sind. Zum Beispiel besteht "13 einzigartige Wunder" aus 13 spezifischen Kacheln, "Jade Empire" besteht nur aus grün gefärbten Kacheln usw.

In einer perfekten Welt würde ich gerne in der Lage sein, nur die "Regeln" von Mahjong zu formulieren und die Sprache in der Lage zu sein, einen Satz von 13 Kacheln mit diesen Regeln abzugleichen, um herauszufinden, welche Regeln es erfüllt, beispielsweise um zu überprüfen, ob Es ist eine Mahjong-Hand oder wenn sie einen Vierling enthält. Ist dies etwas, das mit der Mustererkennung von F # gelöst werden kann?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage