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. Управление потоком

