qwertyMAN 1 723 Опубликовано: 7 января, 2016 (изменено) Универсальный конвертор систем счисления и цвета Добрый день, игроки. Если вы во время написания своей программы задавались вопросом: "А как же мне перевести один формат в другой", то эта тема для вас. Я бы хотел вам представить свою библиотеку, которая позволяет конвертировать совершенно любую систему счисления в десятичную и наоборот. А так же конвертировать RGB hex формат в обычный RGB и наоборот. Данная библиотека имеет следующие функции: Функции конвертации в десятичную систему счисления: conv.bin(input:number) Конвертирует бинарный код в десятичный conv.oct(input:number) Конвертирует восьмеричную систему счисления в десятичную conv.hex(input:string) Конвертирует шестнадцатиричную систему счисления в десятичную Необходимо вводить текстовый формат "FFFFFF" (не вводить формат 0x000000) conv.Engine(input:number/string, n:number) Движок для предыдущих функций - конвертирует число input:number/string из n системы счисления в десятичную. Необходима для нестандартных систем счисления. Настроена так, что можно вводить и текстовый hex формат "FFFFFF" Функции конвертации из десятичной системы счисления: conv.abin(input:number) Конвертирует десятичную систему счисления в двоичную conv.aoct(input:number) Конвертирует десятичную систему счисления в восьмеричную conv.ahex(input:number) Конвертирует десятичную систему счисления в шестнадцатиричную Возвращает текст в самодельном текстовом hex формата "FFFFFF" (не путать с форматом 0x000000) conv.aEngine(input:number, n:number) Движок для предыдущих функций - конвертирует число input:number из десятичной системы счисления в n-ную. Необходима для нестандартных систем счисления. Функции конвертации RGB кода: conv.getThreeColor(input:number/string) Возвращает три цвета RGB (обозначающие красный, зелёный, синий) Все три переменные имеют значения от 0 до 255 Принимает обычные числа, числа в формате 0x000000 и числа в текстовом hex формате "FFFFFF" conv.getColor(r:number/string, g:number/string, b:number/string) Возвращает цифровой формат RGB, который например можно использовать в component.gpu.setBackground(color) в своих программах Принимает обычные цифры, вот такой формат 0x00 и текстовый hex формат от "00" до "FF" на одну переменную conv.invertColor(input:number) Инвертирует цвет Может быть полезно, чтобы при отображении, текст всегда был виден на фоне. conv.sumColor(color_1:number, color_2:number) Принимает два цвета в формате 0x000000 или в виде обычных чисел Выводит средний цвет, который бы получился при смешивании Примечание: В lua стандартный hex формат 0x000000 автоматически преобразуется в десятичный. По этому поводу я создал свой текстовый hex формат "FFFFFF", вдруг кому пригодится, для отображения print() например. (можно вводить и большие и малые буквы в новом текстовом hex формате) Ссылка на код: http://pastebin.com/tzF3dr0M Ссылка на скачивание (если кому надо): https://yadi.sk/d/lAo2j9SwmjNxv P.S. Кто-то сегодня говорил про плюсы ООП и прочее. Ну что ж, если будет клон моей библиотеки на ООП, я только за. Изменено 8 января, 2016 пользователем qwertyMAN 8 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN Автор темы 1 723 Опубликовано: 7 января, 2016 P.P.S. Я бы мог разделить функции на две библиотеки, но дело в том, что функции работы с цветом связаны с конвертором Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 7 января, 2016 Кстати,а зачем отдельные функции для стандартных систем счисления? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN Автор темы 1 723 Опубликовано: 7 января, 2016 Кстати,а зачем отдельные функции для стандартных систем счисления? Чтобы повысить читаемость кода по идее. А вообще, расширяя алфавит можно сделать совершенно любую систему счисления. Ограничений тут нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах