Студент и преподаватель играют в 21 очко: различия между версиями

Материал из RunaWFE
Перейти к навигации Перейти к поиску
 
Строка 17: Строка 17:
* Закончить игру
* Закончить игру
Если игрок выбрал "Взять карту", то датчик случайных чисел генерирует случайное число в диапазоне от 6 до 11 включительно  
Если игрок выбрал "Взять карту", то датчик случайных чисел генерирует случайное число в диапазоне от 6 до 11 включительно  
* воспользуйтесь для получения этого случайного числа задачей-сценарием с обработчиком "Выполнить формулу" ramdom() - возвращает псевдослучайное число с плавающей запятой из диапазона [0, 1), то есть, от 0 (включительно) до 1 (но не включая 1), которое затем можно отмасштабировать до нужного диапазона.
* воспользуйтесь для получения этого случайного числа задачей-сценарием с обработчиком "Выполнить формулу" random() - возвращает псевдослучайное число с плавающей запятой из диапазона [0, 1), то есть, от 0 (включительно) до 1 (но не включая 1), которое затем можно отмасштабировать до нужного диапазона.
* конфигурацией, например, такой: " КоличествоОчков = round( 5.51 + random() * 5.98 ). Далее это число прибавляется к текущей сумме очков.
* конфигурацией, например, такой: " КоличествоОчков = round( 5.51 + random() * 5.98 ). Далее это число прибавляется к текущей сумме очков.



Текущая версия на 08:28, 2 мая 2024

Задание по разработке бизнес-процесса "Игра в 21 очко"

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


Бизнес-процесс начинается с того, что «Преподаватель» в стартовой форме выбирает (из группы "Студенты") «Студента», с которым будет играть, и запускает бизнес-процесс.


Далее Студент и Преподаватель по очереди делают ходы в игре. Первый ход делает Студент. После окончания Студенту и Преподавателю направляются задания на ознакомление с результатом игры.


Игра состоит в следующем: Для каждого игрока ведется текущая сумма очков. Игрок не знает текущую сумму очков другого игрока, но знает свою. Изначально для обоих игроков эта величина равна нулю. Игроки ходят по очереди. За один ход игрок должен сделать выбор из двух вариантов:

  • Взять карту
  • Закончить игру

Если игрок выбрал "Взять карту", то датчик случайных чисел генерирует случайное число в диапазоне от 6 до 11 включительно

  • воспользуйтесь для получения этого случайного числа задачей-сценарием с обработчиком "Выполнить формулу" random() - возвращает псевдослучайное число с плавающей запятой из диапазона [0, 1), то есть, от 0 (включительно) до 1 (но не включая 1), которое затем можно отмасштабировать до нужного диапазона.
  • конфигурацией, например, такой: " КоличествоОчков = round( 5.51 + random() * 5.98 ). Далее это число прибавляется к текущей сумме очков.

Пояснение. Диапазон 6 - 11 выбран по аналогии с одним из вариантов реальной карточной игры в 21 очко. В этой игре используется следующее соотношение получаемых карт и даваемых за них очков:

  • 6 – шесть очков.
  • 7 - семь.
  • 8 – восемь.
  • 9 –девять.
  • 10 - десять.
  • Валет – десять.
  • Дама – десять.
  • Король – десять.
  • Туз – одиннадцать очков.

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

Игра прекращается в случае, если:

  • Оба игрока выбрали "Закончить игру" (выигравшим является игрок, у которого больше текущая сумма очков)
  • Текущая сумма одного из игроков превысила 21 очко (этот игрок является проигравшим)

Если оба игрока выбрали "Закончить игру" и текущая сумма очков у них одинакова, то бизнес-процесс должен сообщить им об этом, обнулить у обоих игроков текущую сумму очков, и начать игру заново.

Замечание. Допустимо вместо использования датчика случайных чисел ввести новую роль "Банкующий" (определяется членством в группе "Заведующий кафедрой") и узел в схеме, в котором "Банкующий", после выполнения игроком задания "Взять карту", будет вводить количество очков, соответствующих взятой карте.