Page 93 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 93

let  winnings   О ;
       for ( l et  die=O ;  die  <  hand . l ength;  die++ )  {
                            e
           let  face  =  hand [di ] ;
                t
           if ( b e s [ f ace]  >  0 )   winnings   winnings  +  bets [ f ace] ;
       funds  =  funds  +  winnings ;
          Обратите внимание, что вместо счета до 3 в цикле for мы считаем до hand. length
       (что также дает 3). Задача этой части программы - вычислить выигрыш для любого
       расклада. Хотя правила игры требуют набора из трех игральных костей, правила мог­
       ли измениться ... или, возможно, появятся дополнительные игральные кости в качестве
       бонуса или  меньше игральных костей в качестве штрафа. Дело в том, что совсем не
       сложно сделать этот код более обобщенным. Если правила позволят изменять коли­
       чество игральных костей, то нам не придется заботиться об изменении этого кода: он
       будет работать правильно независимо от количества костей в игре.


       Объед и н и м   все вместе
          Чтобы собрать все части блок-схемы вместе, понадобится большой лист бумаги,
       но мы можем написать целую программу сравнительно легко.
          В приведенном ниже коде программы (включающем вспомогательные функции)
       есть также несколько вызовов console . log, так вы сможете наблюдать за игрой Т о ­
       маса (не волнуйтесь о понимании работы системы вывода диагностических сообще­
       ний: она использует некоторые дополнительные методики, которые мы рассмотрим
       в последующих главах).
          Мы также добавим переменную round для подсчета количества раундов, которые
       сыграл Т о мас, исключительно для демонстрации.
       //  возвращает  случайное  целое  число  в  диапазоне  [т,  п]  (включительно)
       function  rand (m,  n)  {
                                                     m
           return  m  +  Math . f loor ( ( n  - m  +  l ) *Math . rando ( ) )  ;

       //  случайно  возвраща ет  строку,  представляющую  одну  из  шести
       //  граней  Короны  и  Якоря
       function  randFace ( )    {
                                          t
                       n
           return  [ " c row " ,   " a nchor" ,   "hear " ,   " s pad " ,   "clu " ,   "diamond ]
                                                                      "
                                                          b
                                                  e
                [ r and ( O ,   5 ) ] ;
       let  funds   5 0 ;   //  Начальные  условия
       let  round   О ;
            (
         i
       wh l e  f unds  >  1  & &   funds  <  1 0 0 )   (
           round++ ;
                                   d
           console . l o ( ' round  $ ( r oun } : ' )  ;
                     g
           console . l o ( ' \tstart ing  funds :  $ { fund } p  ' )  ;
                     g
                                               s
       92       Глава 4. Управление потоком
   88   89   90   91   92   93   94   95   96   97   98