Дуэль

Материал из RunaWFE
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Задание по разработке бизнес-процесса "Дуэль"

Замечание: Эта задача предназначена для выполнения в системе RunaWFE, начиная с версии 4.2

Описание начальных условий дуэли:

Обоим дуэлянтам выдаются пистолеты с одним зарядом каждый. Изначально дуэлянты находятся на расстоянии 9 шагов друг от друга. В четырех шагах перед каждым дуэлянтом находится барьер (то есть, расстояние между барьерами - один шаг).


Описание последовательностей действий в бизнес-процессе:

Бизнес-процесс начинается с того, что "Первый дуэлянт" в стартовой форме выбирает "Второго дуэлянта" (Выбор происходит из списка, полученного применением отношения "Обидчики" к Первому дуэлянту). Далее происходит дуэль:


Первый и второй дуэлянт по очереди делают ходы (первый ход делает второй дуэлянт). Ход состоит в том, чтобы либо сделать 1 шаг навстречу противнику, либо произвести выстрел. Выстрел может быть успешным, либо не успешным. Вероятность успешности выстрела равна единице минус количество шагов между противниками, деленное на десять. После каждого выстрела обоим дуэлянтам направляются задания на ознакомление с результатом выстрела.

Если выстрел успешный, то дуэль заканчивается, противник выстрелившего дуэлянта считается проигравшим.

Если дуэлянт дошел до барьера, то дальше он идти не может, он может только сделать выстрел.

Если выстрел не успешный и второй противник ранее тоже сделал неуспешный выстрел, то дуэль заканчивается с результатом "Ничья".

Если выстрел не успешный, а второй противник еще не стрелял, то второй противник получает задание подойти к барьеру, после чего стреляет от барьера.


После окончания дуэли первому и второму дуэлянту направляются задания на ознакомление с результатом дуэли.


Замечание. В данном бизнес-процессе для определения результата выстрела надо воспользоваться функцией random() формулы-обработчика. Функция random() возвращает случайное вещественное число от 0 до 1 (псевдослучайное число с плавающей запятой из диапазона [0, 1), то есть, от 0 включительно до 1, но не включая 1), которое затем можно отмасштабировать до нужного диапазона.

Если возвращенное случайное число меньше или равно единице минус количество шагов между противниками, деленное на десять, то выстрел успешный, иначе – нет.