С кем-то тут переговаривался по поводу "редактора диалогов"
Иронично, а ведь его действительно удалили. Ну близзы... не себе в катсценах, раз не потянули, так людям бы оставили для их проектов.
Во-первых, я уже упоминал, что для него нужен софт для лицевой анимации, который стоит десятки тысяч долларов.
Во-вторых, им нужно поддерживать даже то, что они сами не используют, а тулза там была далеко не готовая.
Пишу о качестве наработки: "A closure is a poor man’s object; an object is a poor man’s closure". Учитывая что эти кложуры нужно оборачивать в макросы, которые при изменении сигнатуры функции нужно еще и поддерживать, куда-то сохранять, а затем еще и удалять, намного проще вручную создать структуру. Не нужно. Речь о луа была только потому, что там тоже есть кложуры, только их использование во много много раз проще и имеет больше смысла (анонимные функции, например). Тащить подобные костыли в жасс не советую.
Помнится я несколько постов назад скидывал вариант кода, который подтверждает то, что ты неправ, но ты упорно не хочешь это признавать. Тебя попросили скинуть карту, где несколько источников "влияют" на случайное распределение - ты этого не делаешь, хотя сказал, что сделаешь. Причина проста, ты просто неправ, поэтому свою правоту подтвердить не можешь.
prog, почему тогда я уже несколько раз пробовал генерить ряд из 100 чисел, и каждый раз он отлично подходил для работы одной такой пассивки? Последний раз был вчера вечером
Я вчера вечером не видел от тебя пруфа с картой и сейчас не вижу
Нет, блин, нахрена он мне?
Пока ты не написал про него, я даже не знал, что это такое, пришлось гуглить и то влом было разбираться что там к чему. Так то оно не надо мне и вряд ли когда либо пригодится
Достаточно для чего? Что я должен вынести из твоего ответа?
Сори, но ты судя по всему просто недостаточно квалифицирован для того, чтобы заявлять о подобных "теориях" с позиции правильности, так что доказывать свои каляки придется тебе, я свои пруфы базовой теории вероятности предоставил.
function random(a: number) {
return function() {
a ^= a << 25; a ^= a >>> 7; a ^= a << 2;
return (a >>> 0) / 4294967296;
}
}
type Unit = {
random_chances: number[]
}
const rnd_for_units = random(3637);
const rnd = random(1337);
const units: Unit[] = [];
for (let i = 0; i < 100; i++) {
units.push({ random_chances: [] });
}
const chiSquaredTest = require('chi-squared-test');
for (let i = 0; i < 10000000; i++) {
const unit = units[Math.floor(rnd_for_units() * units.length)]
unit.random_chances.push(rnd());
}
for (const unit of units) {
const expected: number[] = [];
for (let i = 0; i < unit.random_chances.length; i++) expected.push(0.5);
const test = chiSquaredTest(unit.random_chances, expected, 1);
console.log("Chi squared probability", test.probability);
}
Вот такой код может быть понятнее. 100 "юнитов" и 10000000 попыток на крит у рандомного из них. У всех них средний шанс - 0.5 +- epsilon.
Ясно
Ты по ходу вообще не осмыслил, то что я писал выше
Вместо того, чтобы сделать, что я тебе говорил выше, ты сейчас маешься ерундой, пытаясь доказать, что ты дофига математик или хз что
Может быть это ты не понял моего ответа? :)
Но его действие распыляется, когда он работает сразу на нескольких абилках и юнитах. Поэтому я и говорю, что для каждого случая хорошо бы свою последовательность такого рандома
Я доказал, что "распыление" одной случайной последовательности на несколько никак не влияет на распределение результатов.
function random(a: number) {
return function() {
a ^= a << 25; a ^= a >>> 7; a ^= a << 2;
return (a >>> 0) / 4294967296;
}
}
type Unit = {
random_chances: number[]
}
const rnd_for_units = random(3637);
const rnd = random(1337);
const units: Unit[] = [];
for (let i = 0; i < 100; i++) {
units.push({ random_chances: [] });
}
for (let i = 0; i < 10000000; i++) {
const unit = units[Math.floor(rnd_for_units() * units.length)]
unit.random_chances.push(rnd());
}
for (const unit of units) {
console.log("Unit avg chance", unit.random_chances.reduce((a, b) => a + b, 0) / unit.random_chances.length);
}
Вот такой код может быть понятнее. 100 "юнитов" и 10000000 попыток на крит у рандомного из них. У всех них средний шанс - 0.5 +- epsilon. PT153:
Doc, тут нет вызова GetRandomReal, а речь идёт про вариковский рандом, а не луа.
Я сказал человеку - учи математику, речь о том как раз, что
Random uniformly distributed subsequence of a random uniformly distributed sequence is uniformly distributed.
От генератора это не зависит, если он выдает правильную последовательность.
function random(a: number) {
return function() {
a ^= a << 25; a ^= a >>> 7; a ^= a << 2;
return (a >>> 0) / 4294967296;
}
}
const rnd = random(1337);
const sequence: number[] = [];
for (let i = 0; i < 1000000; i++) {
sequence.push(rnd());
}
console.log("Sequence", sequence.reduce((a, b) => a + b, 0) / sequence.length);
for (let i = 0; i < 100; i++) {
const subsequence: number[] = [];
for (let j = 0; j < 100; j++) {
subsequence.push(sequence[Math.floor(rnd() * sequence.length)]);
}
console.log("Subsequence", i, subsequence.reduce((a, b) => a + b, 0) / subsequence.length);
}
Все результаты этого кода стремятся к 0.5. Random uniformly distributed subsequence of a random uniformly distributed sequence is uniformly distributed.
А не надо никакой мой код проверять. Ты по ходу не понял о чём была речь. Зайди в варик и 100 раз например выведи на экране GetRandomReal и скорее всего (как было у меня) ты увидишь, что это оптимальный рандом. Но его действие распыляется, когда он работает сразу на нескольких абилках и юнитах. Поэтому я и говорю, что для каждого случая хорошо бы свою последовательность такого рандома
И когда я добавлял в "систему" (ставил больше одного героя и заставлял их драться) других героев, то замечал сбои в работе пассивок. И как оказалось, ряд рандомных чисел, который генерит Варик оказывается достаточно оптимален, но только когда эта последовательность используется для одного конкретного случая. Например, если у героя есть две способности и Крит и Уклонение, то это уже два разных случая и по сути, нам нужно уже 2 ряда случайных чисел. Если в эксперимент к Герою с Критами и Уклонением добавить, например, союзника с Аурой Крита (типа все союзники рядом имею шанс нанести Крит), то и этому юниту и каждому союзнику для этого нужна своя последовательность чисел. И тогда будет оптимальная работа.
Какую же ты хрень написал братишка и хоть бы один пруф. quq_CCCP:
Вот почему игроки всегда ожидают рандом в свою сторону, вроде 4 раза за 10 атак. Насколько помню в варе псевдослучайное распределение, и баш то с критами (ну кроме совсем низких шансов) работает вполне адекватно (баш бары в дотке был триггерным, и кривым, потому прокал ультрачасто).
Низкие шансы сейчас кстати поправили, есть флаг в настройках карты
Doc, ну про большую выборку я согласен, но зачем мне рисковать и быть какой-то выборки, мне хватает того что я вообще не беру героев с какими либо рандомными способностями, пусть враг испытывает судьбу на фантомке, а я нанесу свой крит на БХ в 100% случаев,и буду иметь винрейт в 60+% Doc:
факты есть факты:
Факты фактами, но про доту 2 и я сам скинул про ПСР, в Варкрафте же у нас что? Hate, вот и это же куда лучше, молодцы близы
чтобы не было такой несправедливости, в Доте 2 ввели понятие псевдорандом
Она есть и в варкрафте 3.
Реальность такова, что рандом добавляет интереса игре, если он применен в разумных количествах и местах. Гемблинг - часть человеческой культуры. Риск это очень часто интересно, а выигрывать в подобных казино просто приятно.
Сори чел, твоя выборка нерепрезентативна, а пост откровенно глупый. Насчет неинтересности мили - зашел сейчас на твитч в раздел вк3, топ1 стример хеппи (стримит молча без вебки), играет только в мили, топ2 - грабби, играет только в мили. Очевидно, что люди это смотрят. Я сам не умею играть в мили и никогда не интересовался, но варкрафт 3 сам по себе отлично задизайненая игра, которая жива сама по себе даже сейчас, в него бы играли даже без кастомок (хоть и далеко не столько людей), потому что игроки в кастомки это совершенно отдельная категория людей.
ну это инфа от разработчика. Это был эксперимент, от него отказались. К тому же лицевые анимации бы потребовали проприетарного софта, которые покупается студиями. Кет:
меню на реакте
=О это нормально?
Нет это абсолютно кончено и тот, кто решил это делать - идиот.
Ну если семантика сохраняется. У модулей/библиотек есть например инициализаторы, без них код поломается. Опять же совпадение имен в разных скоупах. Если эти проблемы решаются, то ок.
Это продукт для паверюзеров изначально, совершенно нассать как там код воспринимают молодые и неопытные. Закрывающие кейворды, разные для каждого блока, очень мешают при рефакторинге. В цинке есть пара хороших идей, но в сумме это тоже говно, объявлять все локалки в начале функции - треш. В сжассе при этом есть полезные фичи вроде форича по группам.
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
Во-вторых, им нужно поддерживать даже то, что они сами не используют, а тулза там была далеко не готовая.
» WarCraft 3 / Сохранение функции со списком аргументов
» WarCraft 3 / Сохранение функции со списком аргументов
Ред. Doc
» WarCraft 3 / Сохранение функции со списком аргументов
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
Ред. Doc
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
PT153: Я сказал человеку - учи математику, речь о том как раз, что От генератора это не зависит, если он выдает правильную последовательность.
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
quq_CCCP:
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
Ред. Doc
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
Ред. Doc
» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....
Ред. Doc
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
Кет: Нет это абсолютно кончено и тот, кто решил это делать - идиот.
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
Maxsavin:
» WarCraft 3 / cJass2Lua(v1.12) - Преобразователь кода cJass и JASS в Lua
» WarCraft 3 / cJass2Lua(v1.12) - Преобразователь кода cJass и JASS в Lua