Вспомогательные функции программы «Дуэль»
Участник дуэли, придерживающийся второй (хитрой) тактики, перед выстрелом в цель или перед намеренным промахом должен пересчитать противников, стреляющих лучше его. Эту работу выполняет функция Меткие. В нее заложен такой же алгоритм перебора противников, как и в функции Самый_меткий. Функции Самый_меткий и Меткие в качестве аргументов имеют вектор Меткость, вектор Статус и скаляр Стрелок. Функции при своей работе вызывают логическую функцию And (логическое И ¾ см. пункт 1) с агрументом-вектором, которая возвращает 0 (логическое «нет»), если хотя бы один из элементов вектора (аргумента) равен нулю (см. главку «Mathcad и булевы (логические) функции» в этюде 3). Для реализации математической модели дуэли нам еще понадобится функция логического отрицания Not, определяемая также в пункте 1 на рис. 6.36.
Функция Победитель (пункт 3 на рис. 6.37) возвращает номер победителя в одиночной дуэли. При этом учитывается меткость и тактика каждого участника дуэли (два вектора-аргумента функции Победитель).