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. Управление потоком
   78   79   80   81   82   83   84   85   86   87   88