[01:19:28] <ada_ru> (avkvlru) Подскажите пожалуйста, в аде есть механизм блокировки файлов, наподобие flock?
[02:03:27] <ada_ru> (I_vlxy_I) А можно у массива узнать тип его элементов?
[02:03:56] <ada_ru> (I_vlxy_I) У меня массив скажем стрингов. Мне бы у этих стрингов 'Length спросить. Стринги фиксированной длины.
[02:10:45] <ada_ru> (t91x0) отвечает (wladlos) на <О чём вообще здесь р…>
О, да вы здесь новенький
[04:33:17] <ada_ru> (avkvlru) отвечает (I_vlxy_I) на <У меня массив скажем…>
A(i)'Size - если нужен размер в битах
[05:48:48] <ada_ru> (avkvlru) или что-то другое надо, не совсем понял вопроса?
[08:28:19] <ada_ru> (mister_alexander) отвечает (Shreeshant) на <>
Ада, Раст или Модула 4 ?
[08:35:13] <ada_ru> (reznikmm) отвечает (avkvlru) на <Подскажите пожалуйст…>
Нет, по моему
[08:39:38] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <У меня массив скажем…>
Ну только если у тебя есть не пустой объект X этого типа, тогда X (X'First)'Length. По идее ты эту длинну и так знаешь, т.к. она жестко привязанна к типу. Такие массивы неудобны 😕
[08:48:38] <ada_ru> (avkvlru) отвечает (reznikmm) на <Нет, по моему>
То есть язык с развитыми средствами для многозадачности не поддерживает параллельной рпботы с файлами ?
[08:52:11] <ada_ru> (reznikmm) отвечает (avkvlru) на <То есть язык с разви…>
По умолчани, кажется, один и тотже файл вообще нельзя открыть два раза одновременно.
[08:52:58] <ada_ru> (reznikmm) В GNAT есть параметр FORM, который может ослабить это ограничение.
[08:55:26] <ada_ru> (reznikmm) https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/the_implementation_of_standard_i_o.html#shared-files
[09:57:11] <ada_ru> (avkvlru) эти ограничения работают только в пределах одной программы. Речь шла о совместном использовании. Например как в perl /питоне и других современных языках, где можно блокировать файл для чтения или полностью, для других программ поддерживающих этот интерфейс. Причём этот механизм в общем-то работает и между языками. Например заблокировав в питоне, вы не сможете выполнить flock в перле/дельфи/си-шарп...
[10:01:49] <ada_ru> (reznikmm) Perl/питон/делфи/си-шарп не работают на bareboard, в отличии от... Импортируйте flock, в стандартной либе такого нет.
[10:07:51] <ada_ru> (reznikmm) Как вариант, можно поставить Florist
[13:39:32] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Ну только если у теб…>
Смотри:
type Elem_Old is String(1..20);
type Elem_New is String(1..200);
type Str_Arr is array (1..666) of Elem_Old;
И мне нужно узнать какой ширины элемент массива Str_Arr, чтобы, например что-то там вычислить. И я не хочу чтобы у меня все развалилось в момент, когда кто-то в объявлении типа Str_Arr заменит Elem_Old на Elem_New. Также я не хочу что-то аллоцировать в рантайме. У компилятора есть эта информация которая мне нужна, и я хочу её гарантированно и надежно достать.
В С++ например я знаю как такое сделать. В Аде тоже должно быть. Тут вроде бы типы и работы с ними довольно богатая. Я не верю, что о таком простом кейсе не подумали.
[13:44:29] <ada_ru> (LoKi_MoKi1337) Добрый день!
Подскажите пожалуйста, как на Аде взять системные дату и время и записать их к имени файла. В инете внятных примеров нет
[13:45:28] <ada_ru> (I_vlxy_I) отвечает (LoKi_MoKi1337) на <Добрый день!
Подскаж…>
тебе наверно Ada.Calendar нужен
[13:46:03] <ada_ru> (I_vlxy_I) http://www.cs.uni.edu/~mccormic/AdaEssentials/example_2.htm
[13:46:06] <ada_ru> (I_vlxy_I) что-то такое
[13:46:29] <ada_ru> (I_vlxy_I) а уж строчку из этого думаю догадаешься как слепить 🙂
[13:46:43] <ada_ru> (LoKi_MoKi1337) Ну вот в spec файле есть типы и процедуры, но из того что я видел в инете, там задают вручную время, а мне надо как на Си, чтобы прога сама могла время отловить и добавить его к названию файла
[13:47:18] <ada_ru> (LoKi_MoKi1337) Спасибо за ссылку, буду разбираться
[14:06:49] <ada_ru> (nitrocerber) отвечает (I_vlxy_I) на <Смотри:
type Elem_Ol…>
Str_Arr_Obj (Str_Arr_Obj'First)'Length
[14:07:20] <ada_ru> (I_vlxy_I) нету Str_Arr_Obj
[14:07:36] <ada_ru> (nitrocerber) Тогда не пиши 1 .. 200
[14:07:41] <ada_ru> (nitrocerber) А объяви рейндж
[14:08:06] <ada_ru> (I_vlxy_I) И кто мне даст гарантию что именно этот ренж будет использован при конструировании этих типов?
[14:08:27] <ada_ru> (nitrocerber) А кто тебе даёт гарантию ,что вместо всей программы долбоящер не напишет хелло ворлд?)
[14:08:38] <ada_ru> (nitrocerber) или не удалит твою строчку с проверкой размера?)
[14:09:01] <ada_ru> (I_vlxy_I) я не проверяю размер, я его использую для вычислений 🙂
[14:09:34] <ada_ru> (I_vlxy_I) У меня же простое желание - есть тип полностью определенный в compile time, я хочу выцепить его свойство. Всё
[14:09:50] <ada_ru> (nitrocerber) ну бери 'Range от типа
[14:10:33] <ada_ru> (I_vlxy_I) ок. я взял Range от Str_Arr, а мне нужен Range (точнее Length) у его элемента взять. Для этого мне нужно из Str_Arr вытащить ТИП его элементов. Как это сделать?
[14:10:46] <ada_ru> (nitrocerber) бери рейндж от типа элемента)
[14:10:54] <ada_ru> (nitrocerber) ты его видишь
[14:11:10] <ada_ru> (nitrocerber) ты пытаешься какую-то проблему создать, которой нет
[14:11:16] <ada_ru> (nitrocerber) или я чего-то не понимаю
[14:11:46] <ada_ru> (nitrocerber) тебе очень size_of хочется вкорячить?) освободись от сишного мышления, падаван
[14:11:50] <ada_ru> (I_vlxy_I) у меня нет переменной типа Str_Arr
[14:11:57] <ada_ru> (I_vlxy_I) у меня есть только тип Str_Arr
[14:12:36] <ada_ru> (I_vlxy_I) Грубо говоря, я хочу так: Str_Arr'Element_Type'Length
[14:13:46] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <тебе очень size_of х…>
мне хочется хотя бы decltype 🙂
[14:14:51] <ada_ru> (I_vlxy_I) Давай с другой стороны: как мне создать переменную типа элемента этого массива?
[14:16:02] <ada_ru> (nitrocerber) объявить
[14:16:13] <ada_ru> (I_vlxy_I) как? для этого мне надо знать его тип
[14:16:31] <ada_ru> (nitrocerber) объяви объемлющий
[14:16:38] <ada_ru> (nitrocerber) возьми первый элемент
[14:17:22] <ada_ru> (I_vlxy_I) ничего не понимаю 🙂
foo : КАКОЙ_ТИП_СЮДА_НАПИСАТЬ?
[14:17:40] <ada_ru> (nitrocerber) отвечает (nitrocerber) на <Str_Arr_Obj (Str_Arr…>
жи
[14:18:02] <ada_ru> (I_vlxy_I) погодь. я сейчас про другое
[14:18:19] <ada_ru> (nitrocerber) Ты хочешь не видеть тип, и без динамики от него статически что-то получить. Ты хочешь магии)
[14:20:08] <ada_ru> (I_vlxy_I) type Elem_Old is String(1..20);
type Elem_New is String(1..200);
type Str_Arr is array (1..666) of Elem_Old;
-- тут хочу объявить переменную типа одного элемента массива
-- если считерить, то это так:
e : Elem_Old;
-- но это не будет работать хорошо
-- хочется объявить это так:
e : Str_Arr'Element_Type;
-- но такого в языке, кажется, нет 🙁
[14:20:48] <ada_ru> (nitrocerber) Нет, такого точно нет. И слава богу
[14:21:03] <ada_ru> (nitrocerber) я себе представляю, чего можно наговнокодить с таким "инструментом"
[14:23:16] <ada_ru> (nitrocerber) При явных объявлениях и изменении типа компонентов Str_Arr с любой сущностью Elem_Old тебя компайлер схватит за руку. А при такой отсылке к типам появляется существенно больше способов стрельнуть себе в ногу, кмк
[14:24:27] <ada_ru> (I_vlxy_I) Чаво? Где он тут меня схватит и за что?
[14:24:46] <ada_ru> (I_vlxy_I) у меня вычисления от длины типа элемента зависят. Компилятор никогда не сможет проследить эту связь.
[14:25:17] <ada_ru> (I_vlxy_I) поэтому эту связь нужно создать и поддерживать. А Ада не дает достаточных статических гарантий и инструментов тут.
[14:25:21] <ada_ru> (I_vlxy_I) В отличие от С++
[14:25:50] <ada_ru> (t91x0) отвечает (I_vlxy_I) на <В отличие от С++>
Напишите пример на с++, как вы там это сделаете
[14:27:48] <ada_ru> (nitrocerber) Я никак не пойму, что именно ты хочешь с этим рейнджем делать.
[14:28:14] <ada_ru> (nitrocerber) Просто чтобы он у тебя был, в консоль напечатать? Или ты с ним что-то делать собираешься
[14:29:17] <ada_ru> (nitrocerber) Если ты с ним что-то делать будешь, значит у тебя есть все объекты. Если есть объекты, значит от них можно получить рейндж...
[14:30:00] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Просто чтобы он у те…>
рисовать на экране
[14:36:07] <ada_ru> (I_vlxy_I) отвечает (t91x0) на <Напишите пример на с…>
https://godbolt.org/z/o3oJLp
[14:36:09] <ada_ru> (I_vlxy_I) вот так
[14:36:44] <ada_ru> (I_vlxy_I) это если даже просто недомассивами пользоваться плюсатыми. если юзать std::array, то всё будет сильно проще
[14:38:01] <ada_ru> (I_vlxy_I) вот так будет еще корректней: https://godbolt.org/z/t3xVVT
[14:38:26] <ada_ru> (I_vlxy_I) но я не уверен, что написанное хоть как-то помогло пониманию проблемы 🙂
[14:39:09] <ada_ru> (t91x0) отвечает (I_vlxy_I) на <https://godbolt.org/…>
Ну круто, что уж. В Аде такого нет, в C# оно ограничено применимо.
[14:39:37] <ada_ru> (nitrocerber) Практический смысл от меня ускользнул. Но да, в аде нету такого
[14:40:21] <ada_ru> (I_vlxy_I) практический смысл - в надежности. ты создаешь связи между частями программы, которые компилятор теперь может проверять на согласованность.
[14:40:29] <ada_ru> (t91x0) С другой стороны, это делается через дженерики
[14:40:37] <ada_ru> (I_vlxy_I) но тут не нужны дженерики
[14:40:39] <ada_ru> (t91x0) Подобное
[14:40:49] <ada_ru> (t91x0) Не нужны, но похожи
[14:41:39] <ada_ru> (I_vlxy_I) в том смысле, что, наверное, можно написать дженерик которые создаст в Аде адекватный array-тип и array-пакет у которого можно будет узнать тип элемента массива.
[14:42:11] <ada_ru> (I_vlxy_I) типа как у С++ у std::array есть value_type: https://en.cppreference.com/w/cpp/container/array
[14:42:21] <ada_ru> (I_vlxy_I) сейчас пример накидаю
[14:43:25] <ada_ru> (t91x0) Кстати говоря. Это применение decltype в какой версии С++ появилось?
[14:46:00] <ada_ru> (I_vlxy_I) https://godbolt.org/z/ewYs2z
[14:46:18] <ada_ru> (I_vlxy_I) отвечает (t91x0) на <Кстати говоря. Это п…>
В С++11: https://en.cppreference.com/w/cpp/language/decltype
[14:48:08] <ada_ru> (nitrocerber) А можно пример,с использованием этого полученног рейнджа для чего либо, кроме печати в консоль?
[14:51:32] <ada_ru> (nitrocerber) Хоцца понять упущенную выгоду. Для самообразования
[14:52:12] <ada_ru> (I_vlxy_I) Ты реально хочешь на мой говнокод адский посмотреть?
[14:52:34] <ada_ru> (t91x0) Вообще это просто копирование типа. Или же взятие ссылки на тип. Вполне себе хаскельный подход
[14:52:55] <ada_ru> (nitrocerber) Нет, на сишный
[14:53:31] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Нет, на сишный>
ПОЗДНО
[14:53:32] <ada_ru> (I_vlxy_I) https://gist.github.com/valexey/4ff4f4fc00b67ff4064d26638ad46732
[14:53:36] <ada_ru> (nitrocerber) Я хочу понять, как используется этот полученный рейндж, кроме как для печати в консоль, чтобы он "повысил целостность"
[14:54:04] <ada_ru> (I_vlxy_I) погодь, без мапы радость не будет полной
[14:54:33] <ada_ru> (I_vlxy_I) https://gist.github.com/valexey/4ff4f4fc00b67ff4064d26638ad46732
[14:54:35] <ada_ru> (I_vlxy_I) во
[14:54:52] <ada_ru> (I_vlxy_I) советы по совершенствованию говнокода приветствуются
[14:55:14] <ada_ru> (nitrocerber) Ну сразу по рукам
[14:55:18] <ada_ru> (nitrocerber) За анонимные типы
[14:55:27] <ada_ru> (I_vlxy_I) если их даже назвать - лучше не станет
[14:55:43] <ada_ru> (I_vlxy_I) ибо между ними не будет связи
[14:55:54] <ada_ru> (nitrocerber) Всё равно. Всё анонимное - зло)
[14:56:11] <ada_ru> (I_vlxy_I) я понял и принял сий аргумент 🙂
[14:56:29] <ada_ru> (I_vlxy_I) Ада вообще склоняет к поименовыванию всего. И это гут
[14:56:57] <ada_ru> (nitrocerber) Ну и чем с точки зрения целостности for Y in Map(X)'Range отличается от for Y in Map'Element_Type'Range?
[14:58:15] <ada_ru> (I_vlxy_I) да забей ты на цЫклы и ренжи
[14:58:22] <ada_ru> (I_vlxy_I) посмотри на Cell_W и Cell_H
[14:58:26] <ada_ru> (I_vlxy_I) и вычисления
[14:58:35] <ada_ru> (I_vlxy_I) сиклы не нужны
[15:03:05] <ada_ru> (I_vlxy_I) отвечает (t91x0) на <Вообще это просто ко…>
вот так еще правильней при юзании std::array: https://godbolt.org/z/s33Bqf
[15:03:39] <ada_ru> (I_vlxy_I) по кода справа, который асм, видно что кода не генерируется 🙂 то есть нет вычислений никаких. хотя все оптимизации отключены
[15:18:32] <ada_ru> (nitrocerber) Ладно,надо заканчивать цирк и рассказать про аттрибут Length с параметром)
[15:19:01] <ada_ru> (I_vlxy_I) а у меня тут разве не одномерный массив?
[15:19:18] <ada_ru> (I_vlxy_I) массив массивов, а не двумерный массив
[15:20:14] <ada_ru> (nitrocerber) Хм, да, может и не сработать
[15:20:24] <ada_ru> (nitrocerber) 🤔
[15:21:12] <ada_ru> (nitrocerber) Фигачь двухмерный кэрэктарами)
[15:21:40] <ada_ru> (I_vlxy_I) и карту рисовать как '0','1','0', и далее? это ж капец будет
[15:22:11] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Ладно,надо заканчива…>
Length с параметром это вообще первое что я попробовал 🙂
[15:23:11] <ada_ru> (nitrocerber) Ну это рофл уже
[15:23:32] <ada_ru> (nitrocerber) Я бы вообще, если Map нерушим, перво наперво бы константами задал его размеры
[15:23:41] <ada_ru> (nitrocerber) И их же использовал в функции
[15:24:02] <ada_ru> (nitrocerber) Выстрелить себе в ногу всё равно можно будет. Но сложнее
[15:24:45] <ada_ru> (LoKi_MoKi1337) Товарищи, а подскажите плез.
Я системную дату получаю, а ее можно в массив распарсить или преобразовать в string, а то Ада мне говорит что я не могу файл с моим названием прочитать?
[15:24:55] <ada_ru> (I_vlxy_I) надо брать те свойства, которые на самом деле есть у сущности которую используешь, а не предполагать, что кто-то наделил эту сущность именно вот такими вот свойствами, которые называются W и H например
[15:26:20] <ada_ru> (nitrocerber) отвечает (I_vlxy_I) на <надо брать те свойст…>
шашечки или ехать?) если брать от конкретной сущности, какой уж она оказалась - добро пожаловать в динамику.
[15:26:33] <ada_ru> (nitrocerber) но это не наши методы жи
[15:26:42] <ada_ru> (nitrocerber) всё явно объявить! в 10 местах
[15:26:45] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <шашечки или ехать?) …>
тут чистая статика. это ж все в compile time выводится и проверяется. никакой динамики
[15:27:07] <ada_ru> (nitrocerber) ну так в твоём примере и все рейнджи посчитаются на этапе компиляции
[15:27:10] <ada_ru> (I_vlxy_I) я согласен с явными объявлениями. но я не согласен рвать цепочки зависимостей
[15:27:53] <ada_ru> (I_vlxy_I) отвечает (LoKi_MoKi1337) на <Товарищи, а подскажи…>
можно. посмотри как в примере по ссылке выше это дело в консоль выводят. Там как раз в строку преобразуют
[15:27:58] <ada_ru> (nitrocerber) Я бы ещё и промежуточный элемент бы зафигачил.
[15:28:19] <ada_ru> (nitrocerber) в цикле. неоптимально конеш с точки зрения этих ваших быстродействий
[15:28:31] <ada_ru> (I_vlxy_I) это как?
[15:29:00] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <Смотри:
type Elem_Ol…>
Elem_Old'Lenght
[15:29:18] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Elem_Old'Lenght>
а потом массив станет не Elem_Old, а Elem_New
[15:29:21] <ada_ru> (I_vlxy_I) и привет
[15:29:33] <ada_ru> (LoKi_MoKi1337) отвечает (I_vlxy_I) на <можно. посмотри как …>
Только там день, месяц, год, а мне еще надо время в формате ЧЧ:ММ:СС
[15:29:38] <ada_ru> (I_vlxy_I) причем скорее всего даже в рантайме не крашнется, просто отобразится только кусок карты
[15:29:58] <ada_ru> (I_vlxy_I) отвечает (LoKi_MoKi1337) на <Только там день, мес…>
а времени в календаре разве нет?
[15:30:25] <ada_ru> (LoKi_MoKi1337) Там есть ada.calendar.clock
[15:30:40] <ada_ru> (LoKi_MoKi1337) Но это выводит всю инфу целиковэм
[15:33:22] <ada_ru> (nitrocerber) type Line_Type is new String (1 .. 16);
type Map is constant array (1 .. 16) of Line_Type;
Line : Line_Type;
begin
for X in Map'Range loop
Line := Map (X);
for Y in Line'Range loop
if Line(Y) /= ' ' then
[15:33:37] <ada_ru> (nitrocerber) и на строчку Line := получишь по рукам за несовпадение типов
[15:34:23] <ada_ru> (nitrocerber) А если хотите инкапсуляции - пакуйте в приватный тип и давайте геттеры
[15:34:30] <ada_ru> (I_vlxy_I) а нельзя какой-нибудь просто static_assert запились и типы сравнить?
[15:36:02] <ada_ru> (I_vlxy_I) отвечает (LoKi_MoKi1337) на <Там есть ada.calenda…>
глянь сюда: https://en.wikibooks.org/wiki/Ada_Programming/Libraries/GNAT.Calendar.Time_IO
[15:36:17] <ada_ru> (I_vlxy_I) там этот Image принимает еще форматную строку
[15:36:31] <ada_ru> (I_vlxy_I) Picture_String
[15:37:01] <ada_ru> (LoKi_MoKi1337) Но это ГНАТовские вещи, а мне надо именно пакеты Ada
[15:41:10] <ada_ru> (I_vlxy_I) Ну, тут уже вопрос к знатокам :-) Я в Аде пока, как видишь, не особо разбираюсь. Я тут нуб
[15:48:01] <ada_ru> (LoKi_MoKi1337) Вот и так же😄
[15:52:46] <ada_ru> (nitrocerber) нет ады без гната. и кто-то там пророк его
[15:53:11] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <нет ады без гната. и…>
АдаКора пророк его!
[15:55:47] <ada_ru> (LoKi_MoKi1337) Есть Ада без ГНАТа
[15:55:54] <ada_ru> (LoKi_MoKi1337) Называется ObjectAda
[15:56:21] <ada_ru> (LoKi_MoKi1337) И вот именно из-за нее, я не могу пакеты ГНАТа использовать
[15:59:38] <ada_ru> (I_vlxy_I) отвечает (LoKi_MoKi1337) на <Называется ObjectAda>
А какой стандарт Ады оно держит?
[16:00:55] <ada_ru> (LoKi_MoKi1337) 95 у меня
[16:01:12] <ada_ru> (I_vlxy_I) Сурово
[16:01:17] <ada_ru> (LoKi_MoKi1337) Дыы
[16:01:53] <ada_ru> (I_vlxy_I) /me представил что бы сказал тому, кто предложил бы сейчас на с++98 писать
[16:03:11] <ada_ru> (I_vlxy_I) А такое есть? https://www.adaic.org/resources/add_content/standards/05rm/html/RM-9-6-1.html
[16:03:38] <ada_ru> (I_vlxy_I) procedure Split
[16:03:42] <ada_ru> (I_vlxy_I) Вот это
[16:03:59] <ada_ru> (I_vlxy_I) Это прям стандартный стандарт
[16:04:08] <ada_ru> (I_vlxy_I) Никаких гнусов/гнатов
[16:16:42] <ada_ru> (avkvlru) function TToS_Full ( T:Time) return String is
-- включая расшифровку минут и секунд
D,M,Y:Integer;
DD:Day_Duration;
Min,Hour, Sec:Natural;
begin
Split(T,Y,M,D,DD);
Hour:=Natural(DD)/3600;
Min:=(Natural(DD)/60 ) mod 60;
Sec:=Natural(DD) mod 60;
return IToS(D)&'.'&IToS(M)&'.'&IToS(Y)&" "&ItoS(Hour)&":"&ItoS(Min)&":"&ItoS(Sec);
end;
[16:16:43] <ada_ru> (avkvlru) это искали?
[16:18:47] <ada_ru> (LoKi_MoKi1337) отвечает (avkvlru) на <function TToS_Full (…>
Сча попробую ваш вариант
[16:19:00] <ada_ru> (geniepro) отвечает (LoKi_MoKi1337) на <Называется ObjectAda>
а под какую платформу он генерирует бинарники? на своременной винде софт, сделанный на этой аде-95, хоть запустится?
[16:19:04] <ada_ru> (avkvlru) Да.
[16:19:14] <ada_ru> (avkvlru) Он под виндоус генерирует
[16:19:41] <ada_ru> (LoKi_MoKi1337) отвечает (geniepro) на <а под какую платформ…>
На 7-ке арбайтен, на 10-ке сама среда не арбайтен, но бинарники арбайтен
[16:19:43] <ada_ru> (avkvlru) отвечает (LoKi_MoKi1337) на <Сча попробую ваш вар…>
Вместо Itos в аде 95 можно использоувать Integer'Image(i)
[16:20:06] <ada_ru> (avkvlru) object ada пашет под xp, дальше не проверял
[16:20:32] <ada_ru> (avkvlru) Я когда искал старые компиляторы (помните проблему с фиксированными типами) - её тоже запытал
[16:20:34] <ada_ru> (I_vlxy_I) @LoKi_MoKi1337 а почему такие ограничения? Почему именно ObjectAda и только Ада95?
[16:20:54] <ada_ru> (avkvlru) Судя по всему кто-то с железкой подобной нашей ипётся)
[16:21:30] <ada_ru> (geniepro) отвечает (I_vlxy_I) на <@LoKi_MoKi1337 а поч…>
ну там GUI же можно делать )))
[16:22:19] <ada_ru> (avkvlru) А народ вопрос- никто не экспериментировал по совмещению ады с питоном средствами gnatcall . script
[16:22:35] <ada_ru> (LoKi_MoKi1337) отвечает (I_vlxy_I) на <@LoKi_MoKi1337 а поч…>
Таков путь ...😄
На самом деле не могу всех карт открыть. Но могу сказать, что код скачет то в ГНАТ то в ОбжектАду
[16:22:37] <ada_ru> (avkvlru) Оно чё реально также хорошо как и с Си работает?
[16:22:54] <ada_ru> (I_vlxy_I) отвечает (LoKi_MoKi1337) на <Таков путь ...😄
На с…>
Неплохо :-)
[16:23:51] <ada_ru> (avkvlru) Вячеслав - можно спрошу на случай если мы с одной фигнёй работаем- это тематика связанная с грэями ? :)
[16:24:20] <ada_ru> (avkvlru) А то мы поначалу тоже туды-сюды метались, пока не портировали всё под свежий гнат)
[16:39:01] <ada_ru> (LoKi_MoKi1337) отвечает (avkvlru) на <Вячеслав - можно спр…>
Нет)
[16:39:28] <ada_ru> (LoKi_MoKi1337) Просто квест, сделать так, чтобы логи велись с датой и времением в автомате)
[16:42:40] <ada_ru> (avkvlru) а что верхний код не подошел? У нас прекрасно работает, ещё на аде 83)
[16:42:55] <ada_ru> (LoKi_MoKi1337) Ну функция сама работает)
[16:43:15] <ada_ru> (LoKi_MoKi1337) Но консоль после запуска выдает ошибку range check failed
[16:47:29] <ada_ru> (LoKi_MoKi1337) отвечает (avkvlru) на <а что верхний код не…>
Во, заработало
[16:47:31] <ada_ru> (LoKi_MoKi1337) Спасибо
[16:47:43] <ada_ru> (LoKi_MoKi1337) А как от пробелов лишних избавиться?)
[16:51:24] <ada_ru> (avkvlru) отвечает (I_vlxy_I) на <type Elem_Old is Str…>
e:String(Str_arr'Last'Range) - что в этом решении не устраивает, уточните плиз?
Если нужно определить размеры и тип изначально вообще неизвестен, то что мешает потребовать определить к типу функцию с размером?
function the_type(E:Elem_old) return Natural is (20);
function the_type(E:Elem_new) return Natural is (200);
[16:53:56] <ada_ru> (avkvlru) ну или если совсем хардкор
Str_arr'Size/Str_arr'Length
[16:56:29] <ada_ru> (LoKi_MoKi1337) отвечает (avkvlru) на <а что верхний код не…>
Подскажите плез, данные выводятся, но с пробелами, от них можно как-то избавится?
[16:56:37] <ada_ru> (avkvlru) Есть функция трим
[16:57:11] <ada_ru> (LoKi_MoKi1337) И как мне не присобачить к Вашему верхнему коду?
[16:57:23] <ada_ru> (avkvlru) А какие в нём пробелы-то?
[16:58:52] <ada_ru> (LoKi_MoKi1337) <прислал документ>
[16:59:30] <ada_ru> (nitrocerber) Trim (your_string, Both);
[17:00:22] <ada_ru> (nitrocerber) трим из Ada.Strings_Fixed
[17:01:34] <ada_ru> (LoKi_MoKi1337) А у меня Си-строка
[17:01:54] <ada_ru> (avkvlru) ну пробел после подчёркивания- он там прямо в код забит
[17:02:06] <ada_ru> (avkvlru) return IToS(D)&'.'&IToS(M)&'.'&IToS(Y)&" "&ItoS(Hour)&":"&ItoS(Min)&":"&ItoS(Sec); - его надо просто выкинуть
[17:02:41] <ada_ru> (LoKi_MoKi1337) Я вместо пробела черту поставил
[17:02:56] <ada_ru> (avkvlru) код можно глянуть?
[17:04:36] <ada_ru> (LoKi_MoKi1337) картинка https://www.ada-ru.org/files/bot/2020-04-20-x7.jpg
[17:05:19] <ada_ru> (avkvlru) function itos (N:Natural) return String is
begin
return Trim( Integer'Image(N),Both);
end;
[17:05:21] <ada_ru> (avkvlru) как-то так.
[17:05:41] <ada_ru> (LoKi_MoKi1337) 5 минут
[17:09:48] <ada_ru> (avkvlru) в 95-м пакет Ada.strings.Fixed-- поддерживается? Если нет, могу кинуть функцию трим из архива для 83го
[17:10:44] <ada_ru> (LoKi_MoKi1337) Есть она
[17:10:50] <ada_ru> (LoKi_MoKi1337) А Both это что?)
[17:10:55] <ada_ru> (avkvlru) с обеих сторон
[17:11:48] <ada_ru> (LoKi_MoKi1337) Блин. Действительно...😄
[17:27:47] <ada_ru> (LoKi_MoKi1337) Благодарю всех за помощь!)
[17:28:42] <ada_ru> (I_vlxy_I) You are welcome!
[17:28:43] <ada_ru> (I_vlxy_I) 🙂
[17:36:11] <ada_ru> (nitrocerber) Прям пахнуло студенческими временами, 5 минут до сдачи практикума, некогда вникать, надо срочно докодить))
[17:36:52] <ada_ru> (nitrocerber) Так-то интегеры можно резать тока слева. Справа нету пробелов.
[17:39:31] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Прям пахнуло студенч…>
пффф. вся индустрия так работает!
[17:39:37] <ada_ru> (I_vlxy_I) катить в продакшн! срочна!
[17:39:52] <ada_ru> (nitrocerber) опять я не так всё делаю((
[17:40:00] <ada_ru> (nitrocerber) и как меня занесло в эту профессию
[17:40:05] <ada_ru> (I_vlxy_I) сейчас вот требуют срочна выкатить в продакшн лекарства и вакцину от вируса
[17:40:07] <ada_ru> (I_vlxy_I) очень срочна!
[17:40:14] <ada_ru> (I_vlxy_I) сократить время любыми путями!
[17:40:18] <ada_ru> (I_vlxy_I) к черту тестирование!
[17:40:59] <ada_ru> (I_vlxy_I) хотя вроде до сокращения времени на тестирования вакцины пока не дошло вроде как
[17:41:06] <ada_ru> (I_vlxy_I) пока только цепочки оптимизируют
[17:41:15] <ada_ru> (I_vlxy_I) что хорошо
[17:42:22] <ada_ru> (I_vlxy_I) точнее как, в британии например вакцина еще даже не начала проверяться а её в прод уже запустили. пока её изготавливают в проде, она будет тестироваться. если тест провалится - ее уничтожат
[17:42:32] <ada_ru> (I_vlxy_I) если нет, то сразу будет готовая партия вакцины
[18:03:22] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <и как меня занесло в…>
Ты находишься в очень странном месте просто :-)
[18:03:59] <ada_ru> (I_vlxy_I) Скажем медтех активно двигается в сторону CI/CD, Agile, частых релизов и прочего подобного
[18:27:35] <ada_ru> (I_vlxy_I) rusTrusTRUST!
[18:29:23] <ada_ru> (sergundo) Замем там agile?
[18:31:25] <ada_ru> (I_vlxy_I) отвечает (sergundo) на <Замем там agile?>
Чтобы быстро адаптироваться к требованиям рынка
[18:32:41] <ada_ru> (geniepro) отвечает (I_vlxy_I) на <к черту тестирование…>
юзеры всё протестируют же! зачем своё время зря тратить? )))
[18:33:53] <ada_ru> (I_vlxy_I) отвечает (geniepro) на <юзеры всё протестиру…>
Не своё. Их.
[18:35:59] <ada_ru> (sergundo) отвечает (I_vlxy_I) на <Чтобы быстро адаптир…>
В общем, нам следует ждать очередного коллапса в медицине
[19:04:40] <ada_ru> (I_vlxy_I) отвечает (sergundo) на <В общем, нам следует…>
с чего бы? этого все хотят
[19:06:14] <ada_ru> (I_vlxy_I) и это не медицина, это медтех
[19:09:02] <ada_ru> (I_vlxy_I) в частности такая гибкая методология позволяет например прекратить производство дивайсов которые были спроектированы в эру когда все было ПОФИГ на уязвимости. и начать выпускать таки новые, которые взломать и атаковать сильно сложнее. этого хочет рынок
[19:10:53] <ada_ru> (nitrocerber) рынок много чего хочет..) не всё из этого по итогу полезно людишкам
[19:11:01] <ada_ru> (I_vlxy_I) не все, это правда
[19:11:24] <ada_ru> (I_vlxy_I) но медтех и так зарегулирован аццки, сделал сейчас - в медицине будет применяться лет через 10
[19:12:25] <ada_ru> (I_vlxy_I) естественно если есть монопольное положение, то велик соблазн сесть толстой жопой в свою нишу и ничего не делать и не менять. производить один и тот же кривой неудобный и дырявый продукт десятки лет. ну а чо, медики учатся долго, вот пусть и приспосабливаются
[19:12:37] <ada_ru> (I_vlxy_I) но, к счастью, рыночек тут таки решает и конкуренция есть
[19:16:49] <ada_ru> (I_vlxy_I) медицина и медтех вообще довольно закостенелая штуковина. там мед дивайсы тестируют также как лекарства те же. то есть как черный ящик, внутри хоть на си хоть на асме пиши - всем плюс-минус пофиг. пройдет клиникал трайл (а значит процент отказов будет не больше вот такого вот) и если у тебя процесс разработки (про код там ничего нет) и бюрократии построен кошерно, как в доках описано - то и ок.
это все легаси, так было всегда.
[19:19:45] <ada_ru> (I_vlxy_I) собственно, как я понимаю, раньше было даже менее строго.
[19:24:26] <ada_ru> (I_vlxy_I) интересно, если Боинг и Airbus сильно пострадают из за кризиса и свернут часть разработок, штат и проч - сильно ли пострадает Adacore? Есть ли деверсификация? Насколько сильно от авионики она зависит?
[19:26:14] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Ну сразу по рукам>
кстати, ты учти, что я это писал в стиле - хуяк и в продакшн. Поздно ночером и как можно быстрее 🙂
Ну, то есть в обычном продакшн-стиле, как все и пишут 🙂 Скорость разработки - маттерс!
[21:47:38] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <https://gist.github.…>
Объяви двумерный массив вместо массива массивов и делай Map'Length (2)
[21:50:02] <ada_ru> (reznikmm) отвечает (LoKi_MoKi1337) на <Товарищи, а подскажи…>
Ada.Calendar.Formating есть для преобразования в строку
[21:50:55] <ada_ru> (LoKi_MoKi1337) отвечает (reznikmm) на <Ada.Calendar.Formati…>
Между датой и временем есть пробел, плюс, Windows посылает, когда в названии файлов появляются двоеточия и всякое такое. Я пробовал)
[21:52:46] <ada_ru> (Gourytch) отвечает (reznikmm) на <Объяви двумерный мас…>
плюсую. всяко будет понятнее.
другой вопрос, что инициализация будет не строчками, а отдельными символами, но для 16x16 это невелика проблема =)
[21:55:56] <ada_ru> (reznikmm) отвечает (avkvlru) на <А народ вопрос- никт…>
Увы, приходится. Весь gps промазан этой субстанцией
[21:59:16] <ada_ru> (Gourytch) отвечает (reznikmm) на <Увы, приходится. Вес…>
"Вы это так говорите, будто это что-то плохое" (ц) Г.Симпсон =)
[22:05:15] <ada_ru> (Oleg) отвечает (sergundo) на <В общем, нам следует…>
Так уже наступил же
[22:05:59] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Объяви двумерный мас…>
А как его инициализировать? Можешь пример показать?
[22:06:07] <ada_ru> (I_vlxy_I) Хочется вот такую же адекватную инициализацию
[22:06:17] <ada_ru> (Oleg) Вы тут крассавчеги смотрю про аду пишите :-)
[22:06:31] <ada_ru> (I_vlxy_I) В идеале бы, чтобы вообще размер массива не задавать, а чтобы он автоматом вычислялся из того как его инициализировали.
[22:11:31] <ada_ru> (I_vlxy_I) `
a : Arr :=
("0000"
[22:13:02] <ada_ru> (I_vlxy_I) a : Arr :=
("0000",
"0 0",
"11 0",
"1111");
[22:13:17] <ada_ru> (I_vlxy_I) что-нибудь такое
[22:13:41] <ada_ru> (I_vlxy_I) вот можно было бы что-то адекватное вместо Arr написать тут.. чтобы числа 4 нигде не фигурировало бы...
[22:20:48] <ada_ru> (Gourytch) хм... разве что делать парсер и он будет делать квадратный массив с вычисленным диапазоном
[22:21:22] <ada_ru> (I_vlxy_I) ну вот в крестах богомерзких можно и без этого
[22:24:39] <ada_ru> (I_vlxy_I) в каком-нибудь расте небось тоже. но я еще не проверял
[22:24:42] <ada_ru> (I_vlxy_I) rustRustRUST!
[22:25:26] <ada_ru> (Gourytch) а богомерзкие кресты наумелись нативно в многомерные массивы?
[22:25:50] <ada_ru> (I_vlxy_I) нет. но им и не особо нужно
[22:26:11] <ada_ru> (I_vlxy_I) хотя вру - если бы было можно, то было бы хорошо
[22:26:28] <ada_ru> (I_vlxy_I) ну или в стандартну либу бы чего более адекватное чем valarray положили бы
[22:27:17] <ada_ru> (Gourytch) ну или было бы клёво если б можно было перекрыть так:
T operator[](int, int, ...)
=)
[22:28:16] <ada_ru> (I_vlxy_I) ну, как бы и [][] тоже ок 🙂
[22:28:27] <ada_ru> (I_vlxy_I) ну или даже через кругляшки
[22:28:39] <ada_ru> (I_vlxy_I) см какой-нибудь cv::Mat например
[22:29:15] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <ну, как бы и [][] то…>
не фи же. эдак будет массив массивов. или НЁХ через оператор возвращающий другую НЁХ
[22:29:59] <ada_ru> (Gourytch) operator()(int, int...) - это эрзац нимношка, но всё лучше чем ничего
[22:30:46] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <см какой-нибудь cv::…>
смотрел, было дело. кстати годная реализация. можно хоть dense, хоть sparse
[22:31:10] <ada_ru> (I_vlxy_I) угу
[22:31:36] <ada_ru> (Gourytch) ещё был бы ок вариант наверное - это прекрывать оператор запятую. мастерить кортежи и ими индексировать =)
[22:34:28] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <a : Arr :=
("000…>
(('0', '0'),
('1', '1'));
[22:35:20] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <(('0', '0'),
('1', …>
слишком жирно. вместо 00 писать 0','0
[22:35:40] <ada_ru> (I_vlxy_I) 60 процентов пространства займет шум и мусор
[22:36:37] <ada_ru> (reznikmm) Жирно графику в строковые литералы забивать :)
[22:36:52] <ada_ru> (I_vlxy_I) ну, это не графика, это ж карта! 🙂
[22:36:58] <ada_ru> (I_vlxy_I) графика таки в файликах лежит 🙂
[22:37:08] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <слишком жирно. вмест…>
согласен. то ли дело
Кортинко = '''
.0000000.
0.......0
0.1...1.0
0.......0
0.......0
.0000000.
'''
=)
[22:37:33] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <согласен. то ли дело…>
пахнет змеёй!
[22:37:55] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <пахнет змеёй!>
это факт.
[22:38:25] <ada_ru> (I_vlxy_I) но эту дрянь тоже парсить придется
[22:38:31] <ada_ru> (I_vlxy_I) ибо это одномерный массив
[22:38:33] <ada_ru> (Gourytch) но вообще это всё недостойно олдов.
нужно #2#0000000
[22:38:37] <ada_ru> (I_vlxy_I) и нужно будет цеплять концы строк
[22:39:01] <ada_ru> (Gourytch) и работать с битовыми массивами =)
[22:39:03] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <но вообще это всё не…>
не, не прокатит. у меня ж там разного типа ячейки на карте. 1 и 0 не достаточно
[22:39:09] <ada_ru> (Gourytch) а конпилять карту - в уме =)
[22:39:39] <ada_ru> (Gourytch) у тебя может быть и 8 и 16 вариантов =)
всё от базы исчисления зависит )
[22:40:13] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <60 процентов простра…>
Зато границы массива можно не указывать!
[22:42:49] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Зато границы массива…>
а тип то какой задать?
[22:43:28] <ada_ru> (I_vlxy_I) a : что-тут-писать? := (('a','b'),('c','d'));
[22:43:59] <ada_ru> (reznikmm) array (Positive range <>, Positive range <>) of Character
[22:44:23] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <a : что-тут-писать? …>
зато хоть в Spark его скорми =)
[22:45:11] <ada_ru> (Gourytch) ну и, да, писать литералы через 'x' - это моветон
надо константы проинитить
[22:45:33] <ada_ru> (Gourytch) и тогда уже будет красивше:
((A, B), (C, D))
[22:45:44] <ada_ru> (I_vlxy_I) не будет 🙂
[22:46:07] <ada_ru> (Gourytch) чё-й то не будет? вона как красиво! =)
[22:46:33] <ada_ru> (Gourytch) а если проинитить ещё раз - то можно даже
(AB, CD) писать =)
[22:47:27] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <array (Positive rang…>
Кстати! Прокатило!
a : array (Positive range <>, Positive range <>) of Character :=
("hello",
"world");
[22:47:35] <ada_ru> (I_vlxy_I) внезапно 😄
[22:47:59] <ada_ru> (I_vlxy_I) https://godbolt.org/z/wmqdT6
[22:49:27] <ada_ru> (I_vlxy_I) @reznikmm спасибо 🙂 и никаких лишний ',' не надо
[22:51:46] <ada_ru> (Gourytch) а если разного размера стрчки будут - не заругается?
[22:52:36] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <а если разного разме…>
будет пердупреждение, что оно шлепнется в рантайме
[22:52:48] <ada_ru> (I_vlxy_I) скорее всего шлепнется, если проверки не отключить 🙂
[22:52:54] <ada_ru> (Gourytch) ну. это вполне гуманно
[22:52:57] <ada_ru> (I_vlxy_I) я хз с какой радости это не еррор
[22:53:17] <ada_ru> (I_vlxy_I) меня Ада периодически удивляет толерантностью тут
[22:53:28] <ada_ru> (Gourytch) а я подозреваю что оно банально склеит строчки в один массив
[22:53:58] <ada_ru> (Gourytch) вдруг ты в одну недоложил, а в другую переложил - в среднем будет ок =)
[22:54:19] <ada_ru> (I_vlxy_I) дык почему не ошибка компиляции то? компилятор же все видит.
[22:56:03] <ada_ru> (I_vlxy_I) в каком случае это НЕ ошибка?
[22:57:13] <ada_ru> (reznikmm) Сделал бы двумерный массив была бы ошибка 🤡
[22:57:32] <ada_ru> (I_vlxy_I) дык это ж двумерный массив
[22:57:34] <ada_ru> (I_vlxy_I) нет?
[22:57:39] <ada_ru> (I_vlxy_I) два индекса же
[22:58:20] <ada_ru> (nitrocerber) Ну варнинг будет 100%, а поскольку рил посанчики компиляют с -gnatwe, то и не соберётся)
[22:58:48] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Ну варнинг будет 100…>
в подобных вещах я чую родство Ады и С++ 🙂
[22:59:08] <ada_ru> (I_vlxy_I) влияние тех допотопных времен откуда они родом, когда компиляторы были тупыми, а машины - слабыми
[23:00:12] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <нет?>
Нет. В Аде это две разные вещи
[23:00:55] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Нет. В Аде это две р…>
не понял
array (Positive range <>, Positive range <>) of Character -- вот это сколькимерный массив?
[23:01:45] <ada_ru> (reznikmm) 2. Я думал ты про свой вариант
[23:02:31] <ada_ru> (I_vlxy_I) я про твой модифицированный:
a : array (Positive range <>, Positive range <>) of Character :=
("hello",
"world");
[23:02:58] <ada_ru> (I_vlxy_I) одно измерение отлично жрет не только буковки, но и строковые литералы
[23:03:12] <ada_ru> (I_vlxy_I) a(1,2) := 'w'; -- корректно
[23:04:03] <ada_ru> (I_vlxy_I) a : array (Positive range <>, Positive range <>) of Character :=
("hello",
"worldddd");
[23:04:19] <ada_ru> (I_vlxy_I) вот такое - будет warning, а не error к сожалению
[23:05:09] <ada_ru> (Gourytch) но асмовый код ни на йоту не изменится (ну, разве что в какойнть .data)
[23:05:18] <ada_ru> (reznikmm) отвечает (I_vlxy_I) на <a : array (Positive …>
Не знал, что так можно ☹️
[23:05:31] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Не знал, что так мож…>
и я не знал. но подозревал! 🙂
[23:05:45] <ada_ru> (Gourytch) ночь открытий =)
[23:05:50] <ada_ru> (I_vlxy_I) исходя из предпосылок, что стринг объявлен как массив
[23:06:14] <ada_ru> (nitrocerber) берём вектор стрингов, солим его б-дь.. ну вы понЕли
[23:06:28] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <берём вектор стринго…>
может не надо?
[23:06:49] <ada_ru> (Gourytch) кстати ещё интересный вопрос: какой будет диапазон у индекса?
[23:06:59] <ada_ru> (Gourytch) там есть \0 или нету?
[23:07:28] <ada_ru> (nitrocerber) никакой
[23:07:32] <ada_ru> (nitrocerber) оно рухнет
[23:07:40] <ada_ru> (nitrocerber) как и обещано
[23:07:52] <ada_ru> (Gourytch) ненене. я про валидную, квадратную версию.
[23:07:57] <ada_ru> (I_vlxy_I) не, имееццо ввиду, когда оно пропервалид
[23:09:14] <ada_ru> (nitrocerber) от одного и до последнего фактического
[23:09:35] <ada_ru> (I_vlxy_I) думаю никаких еретических нулей там быть не должно
[23:09:39] <ada_ru> (nitrocerber) inb4 МаСсИвЫ нАчИнАюТсЯ с НуЛя
[23:09:41] <ada_ru> (I_vlxy_I) нафига там сишная штрока?
[23:10:04] <ada_ru> (Gourytch) ну мало ли чего.
[23:10:18] <ada_ru> (I_vlxy_I) там исторически не сложилось так 🙂
[23:10:33] <ada_ru> (Gourytch) интересно, а Кокос2Д умеет в аду?
[23:10:46] <ada_ru> (I_vlxy_I) даже std::string нонче может в хранение длины штроки 🙂
[23:11:01] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <интересно, а Кокос2Д…>
хочешь гамесу аццкую замутить?
[23:12:27] <ada_ru> (Gourytch) ну я так думаю что если есть, то там можно глянуть как мастера пиксельного перестроения мастерят свои адские шедевры (хотя подозреваю что там плюсы-питоны-обжси всякие только)
[23:13:29] <ada_ru> (Gourytch) Lua вот ещё. но Lua это ок. луа - няшечка )
[23:14:27] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <ну я так думаю что е…>
дык гамесы то не только на коксе2д ваяют
[23:15:16] <ada_ru> (Gourytch) внутренность игорей обычно предопределена. в самом-самом унутре у них кресты обычно. хотя иногда это и не так
[23:15:56] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <внутренность игорей …>
https://github.com/AdaDoom3/AdaDoom3
и никаких крестов
[23:16:01] <ada_ru> (I_vlxy_I) например
[23:16:46] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <https://github.com/A…>
да я знаю, ещё какой-то проект был, который 3в-движок адский. и пуксельный-воскельный тоже
[23:16:53] <ada_ru> (I_vlxy_I) https://github.com/Fabien-Chouteau/ada-voxel-space-demo
[23:17:01] <ada_ru> (I_vlxy_I) ну, это сложно назвать движком
[23:17:06] <ada_ru> (I_vlxy_I) это всего несколько строчек кота
[23:17:22] <ada_ru> (I_vlxy_I) то есть на порядки (не на порядок, а порядка на 3) меньше чем адский дум 3
[23:17:53] <ada_ru> (Gourytch) не, там другой был какой-то. более древнючий.
[23:18:24] <ada_ru> (I_vlxy_I) вот еще норкоманство на gtk: https://blog.adacore.com/make-with-ada-the-eagle-has-landed
[23:18:31] <ada_ru> (I_vlxy_I) https://github.com/Fabien-Chouteau/eagle-lander
[23:18:35] <ada_ru> (Gourytch) вот жалко что сидюшки покоцались, там я на них архивы хранил, поверив вербатиму про их чутьлиневечность
[23:19:26] <ada_ru> (Gourytch) а, во
https://globe3d.sourceforge.io/
[23:20:35] <ada_ru> (I_vlxy_I) а, да. тоже было
[23:21:03] <ada_ru> (Gourytch) swagger-ada, фигассе. прогресс неукротим
[23:21:16] <ada_ru> (I_vlxy_I) короче, нонче для игры тебе нужен только SDL2 по сути. или и того меньше, можно на голом OpenGL фигачить. но SDL все же приятней
[23:22:07] <ada_ru> (I_vlxy_I) но можно конечно возжелать именно игру сделать и пофиг на программирование, тогда велком ту юнити ворлд!
[23:22:23] <ada_ru> (I_vlxy_I) в крайнем случае на шарпе наговнякать скриптов пачку
[23:22:31] <ada_ru> (Gourytch) я, к своему стыду, последний раз трогал SDL когда он был 1.1.4 (или что-то вроде того)
[23:24:37] <ada_ru> (nitrocerber) рпгкреатор ван лав!
[23:25:06] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <рпгкреатор ван лав!>
? https://www.ada-ru.org/files/bot/2020-04-20-x8.jpg
[23:25:42] <ada_ru> (nitrocerber) https://www.rpgmakerweb.com/
[23:26:03] <ada_ru> (nitrocerber) кодить даж не надо. и лампово, восьмибитненько
[23:26:14] <ada_ru> (I_vlxy_I) дык кодинг наше ффсйо!
[23:26:29] <ada_ru> (I_vlxy_I) оппа, говнокот!
[23:26:32] <ada_ru> (I_vlxy_I) оп-оп!
[23:27:43] <ada_ru> (Gourytch) нужен диплёрнинг!
берёшь аморфную сетку, кормишь её клёвыми игрушками и заставляешь делать шедевры =)
[23:28:01] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <нужен диплёрнинг!
бе…>
запираешь в подвале...
[23:28:13] <ada_ru> (I_vlxy_I) вроде примерно так игры все и делаются. не?
[23:28:25] <ada_ru> (nitrocerber) ITS FBI OPEN UP!!!
[23:28:44] <ada_ru> (Gourytch) https://thesecatsdonotexist.com/
а то котиков оно уже умеет,
а игрушек пока нет
[23:29:50] <ada_ru> (Gourytch) правда получается порою крипота, ну так и игрушки бывают так себе )
[23:29:53] <ada_ru> (Gourytch) картинка https://www.ada-ru.org/files/bot/2020-04-20-x9.jpg
[23:30:06] <ada_ru> (Gourytch) картинка https://www.ada-ru.org/files/bot/2020-04-20-x10.jpg
[23:31:40] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <ITS FBI OPEN UP!!!>
ФИГУ! ТОЛЬКО ПОСЛЕ РЕЛИЗА, А СЕЙЧАС У НАС КРАНЧ!
[23:33:57] <ada_ru> (I_vlxy_I) интересно. это всегда так бывает, когда приходишь в другой ЯП, и хочешь чего-то сильно странного. настолько, что тебя часто даже и не понимают те, кто на этом ЯП пишут? 😉
[23:34:23] <ada_ru> (nitrocerber) бытие определяет сознание. жи
[23:35:25] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <интересно. это всегд…>
наверное это про хаскелитов
[23:39:17] <ada_ru> (I_vlxy_I) а что такое с хаскелистами?
[23:41:17] <ada_ru> (I_vlxy_I) и где ты их тут видел? 😉