Ещё хорошо бы DateTime.Now вынести за пределы запроса, и использовать одно и то же значения для всех сравнений, а не запрашивать у системы новое время каждый раз.
Какой результат вернёт алгоритм, если набор данных для усреднения состоит из равного количества значений с азимутами X и X+180° и одинаковыми амлитудами?
Это осознанное решение, переводить fabric как фабрика? Вроде бы «fabric» — это «ткань», метафора, символизирующая множество возможных путей коммутации интерфейсов — ниток этой самой ткани. Фабрика как бы не при чём. Или дело обстоит как-то иначе?
Вероятно, наглядность и «интересность» Windcatcher карты можно улучшить, если заодно показывать уже установленные ветряки, расцвеченные по мощности. Было бы очень любопытно посмотреть, насколько успешно программа находит «неочевидно» выгодные места.
В формуле в случае Innocents == 0 возможно деление на ноль, обращающая Stolen в бесконечность. Может, в знаменатель надо поместить общее количество оставшихся игроков?
«V3022 Expression 'RowsCount > 100000' is always false. ProcessingEngine.cs 559»
Это неверное утверждение. Выражение само по себе будет истинным при RowsCount свыше 100000, нельзя утвеждать что это «always false». Другое дело, что ветка условия действительно никогда не будет выполнена.
Возможно, было бы лучше перефразировать предупреждение как-нибудь так: «V3022 Unreachable conditional operator branch identified by expression 'Expression 'RowsCount > 100000' (overridden by prior expression 'RowsCount > 20000')».
«V3022 Expression 'RowsCount > 100000' is always false. ProcessingEngine.cs 559»
Это неверное утверждение. Выражение само по себе будет истинным при RowsCount свыше 100000, нельзя утвеждать что это «always false». Другое дело, что ветка условия действительно никогда не будет выполнена.
Возможно, было бы лучше перефразировать предупреждение как-нибудь так: «V3022 Unreachable conditional operator branch identified by expression 'Expression 'RowsCount > 100000' (overridden by prior expression 'RowsCount > 20000')».