убрал объявление глобальной переменной; добавил вызов math.randomseed, которого так не хватало для math.random
завернул все внешние функции на local переменные