Как известно, функцию InitHashtable() можно вызывать ограниченное количество раз. Поэтому для динамического выделения нативных хеш-таблиц нужен буфер, с помощью которого можно было бы переиспользовать уже созданные хеш-таблицы. Данная библиотека предоставляет 2 метода:
Дан неориентированный граф G с n вершинами и m рёбрами. Требуется найти в нём все компоненты связности, т.е. разбить вершины графа на несколько групп так, что внутри одной группы можно дойти от одной вершины до любой другой, а между разными группами — пути не существует.
Алгоритм решения:
Для…
22 окт 2020
Пусть дан ориентированный или неориентированный граф без петель и кратных рёбер. Требуется проверить, является ли он ациклическим, а если не является, то найти любой цикл.
Решим эту задачу с помощью поиска_в_глубину за O(M).
Алгоритм
Произведём серию поисков в…
21 июл 2020
Библиотека геометрии, реализованная на Lua в ООП формате.
Из вкусного:
- Functions - вспомогательные функции типа обрезки и вычисления разного вида интерполяций
- Vector3 - класс 3D вектора с перегруженными мат. операторами, поддержкой 3D конверсии из игровых структур и обратно, интерполяциями, применениями сферических оффсетов, проверок нахождения в сфере и ящике, трансформаций матриц и другое
- Matrix3 - класс 3x3 матрицы с множеством разных конструкторов типа осей вращения и оператором перемножения
- Matrix4 - класс 4x4 матрицы, он самый простой - с операторами сравнения и перемножения
- Box - класс для работы с кубоидами, содержащий методы получения объёма, расширения, включения, пересечения с другими фигурами и др.
- Sphere - класс для работы со сферами, содержащий методы получения объёма, включения, пересечения с другими фигурами и др.
- Ray - класс для работы с лучами и получение точек пересечения с объектами
- Camera - класс для хранения данных о камере и возможностью конвертировать оконные координаты и координаты сцены между собой
В данный момент невозможно в одно действие проверить удерживается ли конкретная клавиша на клавиатуре или кнопка мышки, данная библиотека призвана помочь в решении проблемы.
Можно использовать в карте в качестве визуальной изюминки в своем нике, меняя цвет ника прямо во время игры…
Небольшая наработка, где представлены два, как на мой взгляд, красивых спелла, сделанные с помощью частиц-"даммиков" и колдунством математики.
Функция, позволяющая задать зданию поворот во время игры. Работает за счет какой-то внутриигровой ошибки.
Зачастую в стратегиях применяют точные значения, чтобы подчеркнуть необходимость точного расчёта. Но как часто такая точность встречается нам в реальной жизни? Никогда. Именно поэтому каждый уважающий себя командир должен учитывать фактор вероятности и уметь её считать.
А каждый уважающий себя модмейкер должен уметь предоставить такую возможность командиру. Эта статья научит Вас основам работы с вероятностью в Starcraft II посредством эффектов, а также раскроет невиданные доселе возможности.
Данные функции позволяют запускать таймер, присоединяя к нему число и брать это число в функции-обработчике.
Сразу скажу, что этому эксплоиту уже много-много лет, но я не заметил интенсивного его использования. Зачем тратить время, если есть данный хак ?
Самая быстрая функция расчета числа однотипных предметов в шестислотном инвентаре.
работа через (GetItemTypeId(UnitItemInSlot(u, slot ))== typeId))
работа через (GetItemTypeId(UnitItemInSlot(u, slot ))== typeId))
Ошибок нет, написано под перенасыщением мозга кровью для толстых алгоритмов дабы снизить затраты ресурсов машины.
Слабым не изучать
Возможен всплеск…
Возможен всплеск…
Функции для проверки принадлежности координат к кругу.
function IsCoordsInCircle takes real x,real y,real rad,real cx,real cy returns boolean
return (SquareRoot((cx-x)*(cy-y)) < rad)
endfunction
Вращение юнита в 3D.
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
""
void RotateUnit(unit u, float X1, float Y1, float Z1, float A, float B, float C){
float a1, b1, a2, b2, a3, b3, X2, Y2, Z2
X2 = GetUnitX(u)
Y2 = GetUnitY(u)
Z2 =…
float a1, b1, a2, b2, a3, b3, X2, Y2, Z2
X2 = GetUnitX(u)
Y2 = GetUnitY(u)
Z2 =…
`
ОЖИДАНИЕ РЕКЛАМЫ...