2016-11-29 4 views
0

Я работаю над игрой, которая требует случайного направления; либо влево, вправо, вверх или вниз. В зависимости от определенных переменных меняется вероятность выбора какого-либо конкретного направления. Моя первая мысль была сделать объект с различными типами направления шансов:Вызов объекта, который находится в объекте

  • Типа L: 70% слева 10% справа, 10% до, 10% вниз
  • Тип R: 10% слева, 70% вправо, 10% вверх, 10% вниз
  • Тип U: 10% левый, 10% правый, 70% вверх, 10% вниз
  • Тип D: 10% слева, 10% справа, 10% 70% вниз

Моя первая мысль - сделать объект со всеми типами направлений, а каждый тип - объект.

var directions = { 
      L: {Left: 70, Right: 10, Up: 10, Down: 10}, 
      R: {Left: 10, Right: 70, Up: 10, Down: 10}, 
      U: {Left: 10, Right: 10, Up: 70, Down: 10}, 
      D: {Left: 10, Right: 10, Up: 10, Down: 70}}; 

где каждый номер является шансом на то, что направление будет вызвано. Я попытался назвать вероятность типа L, оставив с помощью:

console.log(directions.L.Left); 

Но это не сработало. Если есть лучший способ сделать это или помочь в любом случае, пожалуйста, скажите мне. Благодарю.

+4

Вы имели в виду 'directions.L.Le ft' против 'direction.L.left'? – Wondercricket

+1

сделать его столицей 'L' – Mahi

ответ

2

Javascript чувствителен к регистру. Ваш код работал бы с правым корпусом

console.log(directions.L.Left); // note L in Left 

Пример ниже

var directions = { 
 
      L: {Left: 70, Right: 10, Up: 10, Down: 10}, 
 
      R: {Left: 10, Right: 70, Up: 10, Down: 10}, 
 
      U: {Left: 10, Right: 10, Up: 70, Down: 10}, 
 
      D: {Left: 10, Right: 10, Up: 10, Down: 70}}; 
 

 
console.log(directions.L.Left);

Слово совет - использовать десятичные для проценте (т.е. 0,7 на 70%) - это сделает ваш код намного проще позже, когда вам не нужно постоянно помнить, разделили ли вы переменную на 100.

+0

Спасибо за совет по процентам, я понял, что при вызове функции в коде я обнаружил ошибочные« направления ». –

Смежные вопросы