Winner Code
Veni, vidi, programmare!
Veni, vidi, programmare!
18 мая 2013
В прошлой статье мы обсуждали тела. Примером было создано простое динамическое тело, в этой статье мы поговорим о других возможных типах тел в физическом мире Box2d.
Просмотров: 72
18 мая 2013
Тела - основные объекты в физической сцене, но они не сталкиваются между собой и не взаимодействуют с миром. Звучит странно? В этой статье я все объясню.
Просмотров: 54
22 марта 2013
Знаю, задача простая, в интернете куча примеров, но вы посмотрите на них. Пару листов кода, зачем? Моей задачей было быстро написать код для прилипания окна к краям экрана.
Просмотров: 2844
21 марта 2013
Сегодня мы создадим логику для игры шашки, с помощью скриптового языка программирования Python. Я пока не буду описывать алгоритм AI для этой игры (он же подойдёт для шахмат). Рассмотрим только организацию игровой доски а проверку ходов на валидность.
Просмотров: 3780
18 марта 2013
Сегодня мы познакомимся с физическим движком Newton Game Dynamics и графическим Ogre3D. Конкретно – с их связкой OgreNewt, которая написана walaber’ом. Во время написании статьи, я брал OgreNewt из svn. Версия была совместима с Newton 2.15 (последняя – 2.17). Надеюсь, автор и далее будет активно разрабатывать библиотеку. Для примера, разрушения мне придётся писать вручную.
Просмотров: 2484
18 марта 2013
Как и обещал недавно, опишу в этой статьей алгоритмы поиска ходов в играх подобных шашкам и шахматам. Т.е. мы напишем AI, с которым потом сможем сыграть.
Просмотров: 2313
7 марта 2013
C++11 содержит два языка для метапрограммирования. Один основывается на шаблонах, другой - на constexpr.
Просмотров: 2682
7 марта 2013
С новым стандартом C++1x, программисты получили возможность использовать ключевое слово constexpr, который указывает на то, что функция или конструктор возвращают константу времени компиляции. Подробнее о свойствах и ограничениях функций с этим ключевым словом вы можете прочитать на википедии.
Просмотров: 2367
5 марта 2013
Что же нового мы можем сказать о многомерных массивах в C++? С внедрением С++11 мы получили новый класс в стандартной библиотеке: std::array. Мы также получили другие "фичи" языка, как, например, template aliases (псевдонимы шаблонов) и variadic templates (шаблоны с неограниченным количеством аргументов). В статье опишется метод их взаимодействия.
Просмотров: 2403
4 марта 2013
Мемоизация - специальная оптимизационная методика, которая позволяет увеличить скорость выполнения компьютерных программ. Данная методика заключается в том, чтобы исключить повторное вычисление результатов предыдущих вызовов. (wikipedia).
Просмотров: 2763
4 марта 2013
В новом стандарте C++1x появилась отличная "фича", именуемая Perfect Forwarding, которая стала доступна из-за введения rvalue-ссылок.
Просмотров: 1962
4 марта 2013
Добавлен новый пакет qt4 в репозитории [extra]. Он заменяет уже существующий qt.
Просмотров: 2187
13 мая 2012
Всем привет! Давно наша команда ничего не писала в блог. Сейчас правила и стиль написания немного упростятся, поэтому мы планируем написать еще много мелких, но интересных публикаций в ближайшем будущем. Сегодня я хочу рассказать вам об одной из самых интересных тем — парсинг сайтов. Делать мы это будем на моем любимом скриптовом языке Python. Заинтересовавшихся прошу под кат.
Просмотров: 14877
5 сентября 2011
Алгоритмы теории множеств нередко применяются в программировании. В этой статье я хочу поговорить о генерации подмножеств множества. Множество — это набор элементов. Все элементы множества различны, то есть один элемент не может встретиться в множестве дважды. Программно реализовать множество можно разными способами: в виде класса, в виде массива с функциями для операций над ним и т.д. В языке Pascal имеется готовая реализация и синтаксис для работы со множествами.
Генерация подмножеств множества может пригодиться, допустим, в логике игры, когда из набора персонажей необходимо выбрать случайную их группу. Допустим, имеется множество M = {1, 2, 3}. Все подмножества множества M (их совокупность называют булеаном) следующие:
{}
{1}
{2}
{3}
{1, 2}
{1, 3}
{2, 3}
{1, 2, 3}
Просмотров: 30177
6 августа 2011
И снова всем привет! После вводной статьи самое время рассмотреть какую-нибудь задачку. Для первого раза возьмем простенькую, чтобы, так сказать, войти в курс дела.
Итак, задача о ящике. Условие задачи взято из системы Cats сайта ДВГУ. Оно на английском языке, я кратко опишу суть. Имеется шесть досок определенного размера (ширина и высота). Необходимо определить, можно ли из этих досок собрать ящик. Входной файл box.in содержит шесть строк, каждая описывает размер доски и состоит из двух чисел w и h — ширины и высоты. Выходной файл box.out должен содержать слово POSSIBLE, если возможно из данных шести досок собрать ящик, либо IMPOSSIBLE, если это невозможно. Ограничение по времени выполнения: 2 секунды, по памяти: 64 Mb. 1 ≤ w, h ≤ 10000.
Просмотров: 9585
4 августа 2011
Добро пожаловать в мир паранойи, мои маленькие друзья. Так как пока мы почти ничего не знаем, но очень хотим чему-нибудь научиться, то начнём с самого примитивного, а именно, сделаем шифрованную флешку. Поможет нам в этом TrueCrypt. Программа кроссплатформенная, имеется версия как под Linux, так и под Windows и MacOS, что не может не радовать.
Просмотров: 27540
2 августа 2011
Мне посчастливилось стать одним из обладателей 250-ти девелоперских телефонов Nokia N950.
Этот телефон является модификацией анонсированного Nokia N9, но был выпущен минимальной партией и предоставлен разработчикам для того, чтобы они заранее могли начать работу над своими приложениями для новой платформы, MeeGo 1.2 Harmattan.
Чтобы попасть в конкурс, я заполнил заявку на meego.com, и после двухнедельного нервного ожидания мне сообщили, что моё приложение было одобрено. Из-за особенностей российской таможни пришлось подождать ещё пару недель, прежде чем телефон наконец попал мне в руки.
Просмотров: 22248
31 июля 2011
С программированием приходится порой сталкиваться и в системном администрировании. Сегодня я хочу рассказать об одной такой истории.
Захотелось мне однажды увидеть единую и наглядную картину об электропитании серверов на работе, а также получать оперативные уведомления в случае его перебоев. В силу своей симпатии к системам на базе Linux решил двигаться в этом направлении. Дома я уже имел удачный опыт использования Apcupsd — демона для контроля ИБП фирмы APC, но здесь меня ждала несколько иная задача.
Дело в том, что данный демон не предусматривает работу с несколькими ИБП, а на работе у меня их три, и не хотелось каждый мониторить разным сервером. Решил поближе познакомиться с устройством этого демона.
Просмотров: 120897
27 июля 2011
PDF (Portable Document Format) — этот формат хорошо подходящий для документов, имеющих четкую заранее определенную структуру (квитанции, анкеты и т.д.). Для работы с PDF в .NET существуют свободная библиотека PDF Clown, опытом работы с которой я и поделюсь в этой статье.
Просмотров: 17991
26 июля 2011
ACM/ICPC (или просто ICPC) — крупнейшая студенческая командная олимпиада по программированию. Это мероприятие приравнивается к чемпионату мира по программированию. Данная статья открывает новую одноименную категорию на сайте, где мы будем разбирать интересные олимпиадные задачи.
Начну с небольшого экскурса в историю и правила проведения чемпионата. Четвертьфинальные и полуфинальные этапы чемпионата проходят независимо в своих регионах, победители которых проходят в следующий этап. Лучшие команды из каждого региона по итогам полуфинала собираются вместе в одном из городов мира и выясняют отношения в финале. Чемпионат командный, в каждой команде три участника. В распоряжении команды один ПК, некоторое количество времени (обычно 5 часов) и ряд поставленных задач (как правило, 5-10 задач). Каждая задача имеет условие, формат входных и выходных данных, ограничение по времени и по памяти. Решением задачи является программа, написанная на одном из доступных правилами языков программирования (обычно пишут на C). Программы-решения проверяются в автоматическом режиме. Система автоматической проверки выполняет несколько тестов, подавая проверяемой программе входные данные и анализируя выходные согласно условию задачи. Если программа на выходе дает неправильный ответ, превышает лимит допустимой оперативной памяти, выполняется дольше положенного времени (не компилируется, выпадает в runtime error, ну и так далее), то тест не пройден. Задача считается решенной, если программа удачно проходит все тесты, предложенные системой. Вариантов “почти решенная”, “наполовину решенная”, как вы понимаете, нет. При подсчете баллов учитывается количество решенных задач, время и количество попыток, затраченных на их решение.
Просмотров: 12069