¿Es F # un buen lenguaje para el juego de cartas AI? [cerrado]

Estoy escribiendo un juego de Mahjong en C # (el juego tradicional chino, no del tipo solitario). Mientras escribo el código para la IA del jugador bot, me pregunto si un lenguaje funcional como F # sería un lenguaje más adecuado que el que uso actualmente, que es C # con mucho Linq. No sé mucho sobre F # por lo que pregunto aquí.

Para ilustrar lo que trato de resolver, aquí hay un breve resumen de Mahjong:

Mahjong juega un poco como Gin Rummy. Tienes 13 fichas en tu mano, y cada turno, dibujas una ficha y descartas otra, intentando mejorar tu mano hacia una mano ganadora de Mahjong, que consiste en 4 conjuntos y un par. Los conjuntos pueden ser 3 de una clase (pungs), 4 de una clase (kongs) o una secuencia de 3 fichas consecutivas (chows). También puedes robar el descarte de otro jugador, si puede completar uno de tus sets.

El código que tuve que escribir para detectar si el bot puede declarar 3 conjuntos de fichas consecutivas (chow) es bastante tedioso. Tengo que encontrar todas las fichas únicas en la mano y luego comenzar a comprobar si hay una secuencia de 3 fichas que contienen esa en la mano. Detectar si el bot puede irse Mahjong es aún más complicado ya que es una combinación de detectar si hay 4 sets y un par en su mano. Y eso es sólo una mano estándar de Mahjong. También hay numerosas manos "especiales" que rompen esas reglas pero siguen siendo una mano de Mahjong. Por ejemplo, "13 maravillas únicas" se compone de 13 fichas específicas, "Jade Empire" se compone solo de fichas de color verde, etc.

En un mundo perfecto, me encantaría poder establecer simplemente las "reglas" de Mahjong, y hacer que el lenguaje pueda hacer coincidir un conjunto de 13 fichas con esas reglas para recuperar las reglas que cumple, por ejemplo, verificando si Es una mano de Mahjong o si incluye un 4 de una clase. ¿Es esto algo que la función de comparación de patrones de F # puede ayudar a resolver?

Respuestas a la pregunta(2)

Su respuesta a la pregunta