Сообщения

Сообщения за 2012

Пишем компилятор ассемблера на Java

Изображение
Последние две лабораторные работы по системному программированию были посвящены разработке анализатора и компилятора для языка Assembler. Тема интересная, а поскольку я ничего подобного никогда в жизни не делал, то с удовольствием взялся за дело. Писал, конечно же на Java, так как понимал, что придётся много работать со строками. В прочем, обо всём по порядку.

ScreenWeather - погодный информер с Metro-подобным интерфейсом

Изображение
 Эта запись - дневник разработки. В ней я хотел бы осветить подробности создания программы: от возникновения идеи до её реализации. Если Вы пришли сюда исключительно чтобы скачать программу, то смело листайте в конец записи (а еще лучше сюда (версия 2.0) , там приведена ссылка на загрузку.  День первый. Идея. "Идея. Она живуча и очень заразна." (К/ф Начало).  Всё началось с того, что мои родители перед походом на дачу смотрели погоду, чтобы узнать, не застанет ли их дождь и чтобы знать, стоит ли поливать участок или же дождь сделает это за них. Для этих целей у нас был только один виджет погоды, и он не всегда соответствовал действительности. Вот тут-то у меня и возникла идея написать программу, где будет сразу несколько погодных информеров, чтобы можно было сравнить данные. Идея положена, теперь нужно найти информацию. На первом же запросе Google выдал мне несколько хороших погодных сервисов со свободными API, я в них успешно зарегистрировался и уже через два часа бы

Универсальный бот для игры Flood-It

Изображение
 В последнее время увлёкся игрой Flood-It . Это простенькая логическая игра, целью которой за минимальное количество шагов разукрасить всё поле одним из шести цветов. Игровое поле Flood-It  Прочитав на Хабре статью  про автоматизацию игры Flood-It, мне захотелось написать подобную программу, но более универсальную. Вооружившись тетрадкой и ручкой, я расписал план действий: распознать игровое поле и его параметры; перевести графическое представление поля в логическое (массив чисел); найти последовательность оптимальных вариантов заливки; автоматизировать процесс игры.  Отобразить результат.  По поводу последнего пункта: автоматизировать процесс, значит автоматически кликать на кнопки, отвечающие за заливку. Как правило, эти кнопки находятся за пределами игрового поля, но поскольку мы пишем универсальную программу, то кнопки также придётся находить автоматически. Немного подумав, я пришел к выводу, что лучше этого не делать, а просто вывести результат - последовательность з