Страницы

Гениальная простота Тетриса

    Недавно при разговоре возник вопрос — просто ли воплотить Тетрис. Мой собеседник считал, что сложно, но я думал иначе. Мне стало интересно, и я решил его написать.


    Поскольку я хотел минимизировать время создания, мне нужен был простой набор библиотек. В памяти всплыла информация об игровом движке Love для языка Lua. И хотя до сих пор практики работы как с библиотекой, так и языком у меня не было, общее представление о них я имел.

    Приблизительно через 8 часов первая играбельная версия в 300 строк была готова. Ещё где-то столько же времени я потратил на улучшение кода в сторону понятности и переиспользуемости. В результате код был разнесён по трём модулям и увеличился до 400 строк.

    В целом, Love оправдал надежды на простоту, а Lua как для сценарного языка преподнёс не так уж и много неожиданностей. Но да, динамическая типизация вкупе с другими прелестями скриптовой сущности ощутимо затрудняют отлов ошибок.

 Код: https://github.com/ComdivByZero/tetris
 Получение и запуск:
 $ git clone https://github.com/ComdivByZero/tetris.git                  
 $ love tetris/lua/tetris                                                                      
 Управление - интуитивное: стрелки, p, n, esc

Продолжение — перенос на HTML5

Комментариев нет:

Отправить комментарий