Обсуждение:Город Тумана — различия между версиями

Материал из Ролевая энциклопедии
Перейти к: навигация, поиск
(Алгоритм, которым я подсчитал вероятности: Тема! А может, переделать это на Lua и сделать шаблоном, который легко включить в любые статьи?)
(Алгоритм, которым я подсчитал вероятности: мысли про то, как может выглядеть универсальная система)
Строка 53: Строка 53:
 
</pre>
 
</pre>
 
: Тема! А может, переделать это на Lua и сделать шаблоном, который легко включить в любые статьи? [[Участник:EvilCat|EvilCat]] ([[Обсуждение участника:EvilCat|обсуждение]]) 09:52, 6 февраля 2024 (MSK)
 
: Тема! А может, переделать это на Lua и сделать шаблоном, который легко включить в любые статьи? [[Участник:EvilCat|EvilCat]] ([[Обсуждение участника:EvilCat|обсуждение]]) 09:52, 6 февраля 2024 (MSK)
 +
:: Спасибо! Мне нравится эта идея. Но сделать one-off код куда проще, чем сделать переиспользуемый модуль. Надо подумать, как это всё может выглядеть... [[Участник:Demetrius|Demetrius]] ([[Обсуждение участника:Demetrius|обсуждение]]) 16:44, 6 февраля 2024 (MSK)
 +
 +
Я пока что представляю себе примерно такой DSL, который можно было бы скармливать Lua:
 +
<pre>
 +
-- Year Zero Engine: вариант с пулом костей
 +
Столбец КоличествоКостей "Количество костей"
 +
Столбец "Шанс успеха"
 +
Столбец "Шанс успеха при переброске", вероятность: больший((КоличествоКостей * 2) раз d6) = 6
 +
 +
-- Year Zero Engine: вариант с атрибутами
 +
Столбец Атрибут "Бросаемые кости/Атрибут", список: d6, d8, d10, d12
 +
Столбец Умение "Бросаемые кости/Умение", список: 0, d6, d8, d10, d12
 +
Столбец "Шанс успеха", вероятность: Атрибут ≥ 6 или Умение ≥ 6
 +
Столбел "Шанс успеха при переброске", вероятность: больший(2 раза Атрибут) ≥ 6 или больший(2 раза Умение) ≥ 6
 +
 +
-- City of Mist
 +
Столбец Прибавка, список: -5, -4, -3, -2, -1, 0, +1, +2, +3, +4, +5, +6, +7
 +
Столбец "Неудача<br>(≤6)", вероятность: 2d6 + Прибавка ≤ 6
 +
-- условие для одного и того же броска; возможно, проще сделать 7 ≤ 2d6 + прибавка ≤ 9
 +
Столбец "Частичный успех<br>(7—9)", вероятность: [результат = 2d6 + Прибавка] результат ≥ 7 и результат ≤ 9
 +
Столбец "Полный успех<br>(≥10)", вероятность: 2d6 + Прибавка ≥ 10
 +
Столбец "«Динамит»<br>(≥12)", вероятность: 2d6 + Прибавка ≥ 12
 +
</pre>
 +
 +
Но это, кажется, чересчур амбициозно и сложно. Надо подумать, что можно упростить. [[Участник:Demetrius|Demetrius]] ([[Обсуждение участника:Demetrius|обсуждение]]) 16:44, 6 февраля 2024 (MSK)

Версия 16:44, 6 февраля 2024

Эта техническая страница
создана на RPGverse

Алгоритм, которым я подсчитал вероятности

Оставляю тут — чтобы было легче проверить, что я не совершил ошибок, и адаптировать для построения подобных табличек в других статьях. Demetrius (обсуждение) 21:41, 5 февраля 2024 (MSK)

const броскиОднойКости = [1, 2, 3, 4, 5, 6]
const суммы = броскиОднойКости.map(первая => броскиОднойКости.map(вторая => первая + вторая)).flat() 

const условияКолонок = [
  сумма => сумма <= 6,
  сумма => (сумма >= 7) && (сумма <= 9),
  сумма => сумма >= 10,
  сумма => сумма >= 12
]

const прибавки = []
for (i = -5; i <= 7; i++) прибавки.push(i)


function значенияКолонок(прибавка) {
  return условияКолонок.map(
    условие => {
      const подходящих = суммы.map(бросок => бросок + прибавка).filter(условие).length
      const всего = суммы.length
      return подходящих / всего
    }
   )
}

function вероятностьКакПроценты(вероятность) {
  return (Math.round(вероятность * 10000) / 100) + '%'
}

function отформатироватьСтрокуТаблицы(прибавка) {
  const ячейкиТаблицы = [
    (прибавка >= 0 ? '+' : '') + прибавка,
    ...значенияКолонок(прибавка).map(вероятностьКакПроценты)
  ]
  return `| ` + ячейкиТаблицы.join(' || ')
}

function отформатироватьТаблицу() {
  return [
  `
{| class="wikitable" style="margin:auto"
! Прибавка !! Неудача<br>(<6) !! Частичный успех<br>(7—9) !! Полный успех<br>(>10) !! «Динамит» (>12)`,
    ...прибавки.map(отформатироватьСтрокуТаблицы)
  ].join("\n|-\n") + '\n|}'
}

console.log(отформатироватьТаблицу())
Тема! А может, переделать это на Lua и сделать шаблоном, который легко включить в любые статьи? EvilCat (обсуждение) 09:52, 6 февраля 2024 (MSK)
Спасибо! Мне нравится эта идея. Но сделать one-off код куда проще, чем сделать переиспользуемый модуль. Надо подумать, как это всё может выглядеть... Demetrius (обсуждение) 16:44, 6 февраля 2024 (MSK)

Я пока что представляю себе примерно такой DSL, который можно было бы скармливать Lua:

-- Year Zero Engine: вариант с пулом костей
Столбец КоличествоКостей "Количество костей"
Столбец "Шанс успеха"
Столбец "Шанс успеха при переброске", вероятность: больший((КоличествоКостей * 2) раз d6) = 6

-- Year Zero Engine: вариант с атрибутами
Столбец Атрибут "Бросаемые кости/Атрибут", список: d6, d8, d10, d12
Столбец Умение "Бросаемые кости/Умение", список: 0, d6, d8, d10, d12
Столбец "Шанс успеха", вероятность: Атрибут ≥ 6 или Умение ≥ 6
Столбел "Шанс успеха при переброске", вероятность: больший(2 раза Атрибут) ≥ 6 или больший(2 раза Умение) ≥ 6

-- City of Mist
Столбец Прибавка, список: -5, -4, -3, -2, -1, 0, +1, +2, +3, +4, +5, +6, +7
Столбец "Неудача<br>(≤6)", вероятность: 2d6 + Прибавка ≤ 6
-- условие для одного и того же броска; возможно, проще сделать 7 ≤ 2d6 + прибавка ≤ 9
Столбец "Частичный успех<br>(7—9)", вероятность: [результат = 2d6 + Прибавка] результат ≥ 7 и результат ≤ 9
Столбец "Полный успех<br>(≥10)", вероятность: 2d6 + Прибавка ≥ 10
Столбец "«Динамит»<br>(≥12)", вероятность: 2d6 + Прибавка ≥ 12

Но это, кажется, чересчур амбициозно и сложно. Надо подумать, что можно упростить. Demetrius (обсуждение) 16:44, 6 февраля 2024 (MSK)