Page 83 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 83
Ставка, пенсов Выпало Выплата, пенсов
5 на Корону Корона, Корона, Корона 1 5
5 на Корону Корона, Корона, Якорь 1 0
5 на Корону Корона, Черва, Пика 5
5 на Корону Черва, Якорь, Пика о
3 на Корону, 2 на Пики Корона, Корона, Корона 9
3 на Корону, 2 на Пики Корона, и ка, Якорь 5
П
По 1 на все поля Любые 3 (не лучшая стратегия!)
Я выбрал этот пример потому, что он не слишком сложен и при небольшом коли
честве воображения демонстрирует основные операторы управления потоком. Хотя
и маловероятно, что вам когда-либо придется моделировать игорные предпочтения
моряков XIX столетия, подобный тип моделей весьма распространен во многих при
ложениях. В случае данной игры, возможно, понадобится построить математическую
модель, чтобы определить, должны ли выпасть Корона и Якорь, чтобы выплатить
деньги или перейти к следующему событию игры. Создаваемая в этой главе модель
применяется для подтверждения правильности нашего выбора.
Сама игра проста, но есть много тысяч способов, которыми она может начинать
ся. Наш моряк, давайте назовем его "Томас" (хорошее солидное британское имя),
сначала будет очень обобщенным, но со временем его поведение станет более дета -
лизированным.
Давайте начнем с основ: условий начала и остановки. При каждом увольнении
на берег Томас получает по 50 пенсов и тратит их на Корону и Якорь. У Т о маса есть
лимит: если повезет, его деньги удвоятся и он уйдет по крайней мере со 1 0 0 пенса
ми в кармане (примерно половина его месячной зарплаты). Если он не удвоит свои
деньги, то проиграет их до конца.
Давайте разделим игру на три этапа: размещение ставок, бросок костей и полу
чение выигрыша (если он есть). Теперь, имея очень простое, общее представление
о поведении Т о маса, мы можем составить описывающую его блок-схему, представ
ленную на рис. 4.1 .
Н а блок-схеме ромбами обозначены решения "да или нет': а прямоугольники
представляют действия. Мы используем круги для обозначения начала и конца.
'
Блок-схема (как мы ее нарисовали) еще не готова для превращения непосред
ственно в программу. Изложенные здесь этапы понятны для человека, но слишком
сложны для компьютеров. Например, "Бросок костей" вовсе не очевиден для ком
пьютера. Что такое игральная кость? Как вы ее бросаете? Для решения этой зада
чи этапы "размещение ставок': "бросок костей" и "получение выигрыша" требуют
собственных блок-схем (я обозначил это на блок-схеме, закрасив соответствующие
действиям прямоугольники). Если у вас есть достаточно большой лист бумаги, то
можете поместить их все вместе, но в этой книге мы представим их по отдельности.
82 Глава 4. Управление потоком

