Является ли F # хорошим языком для карточного ИИ? [закрыто]

Я пишу игру в маджонг на C # (традиционная китайская игра, а не пасьянс). Во время написания кода для ИИ игрока-бота мне интересно, будет ли функциональный язык, такой как F #, более подходящим языком, чем тот, который я сейчас использую, - C # с большим количеством Linq. Я мало знаю о F #, поэтому я спрашиваю здесь.

Чтобы проиллюстрировать, что я пытаюсь решить, вот краткий обзор Маджонга:

Маджонг играет немного как Джин Рамми. У вас в руке 13 фишек, и каждый ход вы вытягиваете фишку и сбрасываете другую, пытаясь улучшить свою руку в направлении выигрышной руки маджонга, состоящей из 4 сетов и пары. Наборы могут представлять собой 3 вида (панги), 4 вида (конги) или последовательность из 3 последовательных плиток (чау). Вы также можете украсть сброс другого игрока, если он может завершить один из ваших сетов.

Код, который мне пришлось написать, чтобы определить, может ли бот объявить 3 последовательных набора плиток (чау), довольно утомителен. Я должен найти все уникальные плитки в руке, а затем начать проверять, есть ли последовательность из 3 плиток, которые содержат эту плитку в руке. Обнаружение, может ли бот уйти в маджонг, еще более сложно, поскольку это комбинация обнаружения, если есть 4 набора и пара в его руке. И это просто стандартная рука маджонга. Есть также многочисленные "специальные" руки, которые нарушают эти правила, но все еще являются рукой маджонга. Например, «13 уникальных чудес» состоит из 13 конкретных плиток, "Jade Empire" состоит только из плиток зеленого цвета и т. д.

В идеальном мире я бы хотел иметь возможность просто заявить «правила»; маджонга, и иметь возможность сопоставить набор из 13 плиток с этими правилами, чтобы выяснить, какие правила он выполняет, например, проверять, является ли он рукой маджонга или содержит 4 типа. Может ли это помочь решить проблему соответствия шаблону в F #?

Ответы на вопрос(2)

Ваш ответ на вопрос