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

Немного не по теме, но я использую это:

template<typename T>
constexpr int sgn(const T &a, const T &b) noexcept{
    return (a > b) - (a < b);
}

template<typename T>
constexpr int sgn(const T &a) noexcept{
    return sgn(a, T(0));
}

и я обнаружил, что первая функция - с двумя аргументами - гораздо более полезна из "стандартного" sgn (), потому что она чаще всего используется в коде, подобном этому:

int comp(unsigned a, unsigned b){
   return sgn( int(a) - int(b) );
}

против

int comp(unsigned a, unsigned b){
   return sgn(a, b);
}

нет броска для неподписанных типов и дополнительного минуса.

На самом деле у меня есть этот кусок кода с использованием sgn ()

template <class T>
int comp(const T &a, const T &b){
    log__("all");
    if (a < b)
        return -1;

    if (a > b)
        return +1;

    return 0;
}

inline int comp(int const a, int const b){
    log__("int");
    return a - b;
}

inline int comp(long int const a, long int const b){
    log__("long");
    return sgn(a, b);
}
10
задан animuson 2 October 2012 в 03:02
поделиться

2 ответа

Если вы знакомы с функциональными языками, это отличный способ написать игровой ИИ, а если нет, то изучение одного из них поможет вам вырасти и уйти ты программист лучше, чем был. (Я мог бы честно сказать то же самое для декларативных языков, подобных Prolog, и языков динамического программирования / OO / мультипарадигм, таких как Ruby или Python! -).

Ваша задача, как вы ее описываете, должна быть легкой в ​​любой из этих групп языков - так что выберите один и дерзайте! Мы коллективно будем рады помочь с любыми вопросами, которые могут возникнуть в результате этих попыток (я лично не знаком с F # или Scala, но был бы рад помочь с Haskell, любым языком семейства ML, Scheme или Erlang) и аналогично для других групп; -).

Серьезно:

8
ответ дан 4 December 2019 в 01:57
поделиться

Нет ничего из того, что вы не могли бы сделать, что появляется на другом языке.

Я уже пытался создать ИИ с использованием java, основываясь на том, что я делал в Пролог. Я подумал, что кодировать будет сука. Однако у меня была всего пара методов, которые выполняли большую часть рутинной работы, исключая их из основных методов, и они прекрасно работали.

Возможно, вам придется изобрести колесо, но в C # не должно быть многого, что можно сделать в F #.

примечание: я никогда раньше не слышал о F #, но все не так уж плохо. Я могу / не могу дуть из собственной задницы.

1
ответ дан 4 December 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: