ex04-01-1j

ex04-01-1の日本語版です。
変数名などを日本語にしてみました。

ソース

// m以上n以下のランダムな整数を返す
function ランダムに整数を返す(m, n) {
  return m + Math.floor((n - m + 1)*Math.random());
}

// 「サイコロ」の目のどれかひとつを表す文字列をランダムに返す
function ランダムにマス目を返す() {
  return ["王冠", "錨", "ハート", "スペード", "クラブ", "ダイヤ"]
            [ランダムに整数を返す(0, 5)];
}

let 残り資金 = 50;     // 開始時の条件
let ラウンド = 0;

while(残り資金 > 0 && 残り資金 < 100) {
  ラウンド++;
  console.log(`第${ラウンド}ラウンド:`);
  console.log(`  手持ち資金: ${残り資金}`);
  // 賭ける
  let 各マスの賭け金 = { 王冠: 0, 錨: 0, ハート: 0,
		     スペード: 0, クラブ: 0, ダイヤ: 0 };
  let 今回の賭け金の合計 = ランダムに整数を返す(1, 残り資金);
  if(今回の賭け金の合計 === 7) {
    今回の賭け金の合計 = 残り資金;
    各マスの賭け金.ハート = 今回の賭け金の合計;
  } else {
    // 賭け金を振り分ける
    let 残りの賭け金 = 今回の賭け金の合計;
    do {
      let このマスの賭け金 = ランダムに整数を返す(1, 残りの賭け金);
      let 出たマス目 = ランダムにマス目を返す();
      各マスの賭け金[出たマス目] = 各マスの賭け金[出たマス目] + このマスの賭け金;
      残りの賭け金 = 残りの賭け金 - このマスの賭け金;
    } while(残りの賭け金 > 0)
  }
  残り資金 = 残り資金 - 今回の賭け金の合計;
  console.log(`  賭け金: ${今回の賭け金の合計}(` +
              Object.keys(各マスの賭け金).map(出たマス目 => `${出たマス目}: ${各マスの賭け金[出たマス目]}`).join(', ') +
              ")");

  // サイコロを振る
  const 出目 = [];
  for(let 何回目か = 0; 何回目か < 3; 何回目か++) {
    出目.push(ランダムにマス目を返す());
  }
  console.log(`  出目: ${出目.join(', ')}`);

  // 払戻金をもらう
  let 払戻金 = 0;
  for(let die=0; die < 出目.length; die++) {
    let 出たマス目 = 出目[die];
    if(各マスの賭け金[出たマス目] > 0) 払戻金 = 払戻金 + 各マスの賭け金[出たマス目];
  }
  残り資金 = 残り資金 + 払戻金;
  console.log(`  払戻金: ${払戻金}`);
}
console.log(`  残金: ${残り資金}`);
if (100 <= 残り資金) console.log("意気揚々と船に戻る。\n");
else console.log("トボトボと船に帰る。\n");