Snusmumriken
Писать логику — сложнее. Работать быстрее.
Snusmumriken
Начни с того что попроще. Это просто полезно.
Hello, World! 🎄
Но насчет Си я думаю там простой динамический массив справится, 0 будет указатель на начало дробной части, а остальные числа - само число.
Сам массив динамический через malloc, realloc.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
просто запоминая без учителя, мы не знаем, как правильно произносить слова или хороший маршрут
Hello, World! 🎄
Написав несколько алгоритмов которые выполняют одну и туже работу, но по разному можно понять какой эффективнее или проще для реализации
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
нет, я не это имею в виду, у меня нет проблем с синтаксисом написания, но используемая логика похожа на самый простой пример, вы можете запомнить все шахматные ходы, но сможете ли вы победить Магнуса Карлсена?
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Конечно, я могу написать что угодно на Lua, но гораздо эффективнее будет то, что пишет snufkin.
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
@fhello_world Вы знаете, что это значит? Даже если вы усердно занимаетесь до поздней ночи. но ты можешь победить меня? если бы учитель дал мне все ответы
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
да, если я смогу подобраться к snufkin, мне будет легче освоить Lua.
Aqendo
кто это XD
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Aqendo
снуфкин блен
Hello, World! 🎄
Aqendo
кстати да
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
@fhello_world суть в том, чтобы побороться за первое место, если ты станешь одним из учеников моего класса, это просто метафора.
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Как я могу у вас учится?
Я имею в виду, если бы вы были одним из учеников, с которыми я тогда учился в одном классе. просто притча.
Nikolai
Где б вы еще узнали
Egor
И зачем я переписку прочел....мой мозг :(
Hello, World! 🎄
Пишу связный список на Си. Написал (вроде все работает), но первый элемент почему-то затирается.
Оказывается я вместо того, чтобы после выделения памяти под новую структуру и переместить указатель на новую выделенную память изменял текущую структуру и только потом переходил на новую:
tree_point->next = malloc(sizeof(struct tree));
tree_point->energy = 7;
tree_point = tree_point->next;
А нужно вот так:
tree_point->next = malloc(sizeof(struct tree));
tree_point = tree_point->next;
tree_point->energy = 7;
Hello, World! 🎄
Т.к я пытаюсь переписать симуляцию с деревьями (которую писал на Love2d), а деревья имеют свойства исчезать, то скорее всего мне нужен двусвязный список (Чтобы при удалении дерева по адресу можно было легко соединить 2 дерева которые были соединены с этим деревом).
Скорее всего будет два массива, один будет хранить информацию о активном гене и типе пиксиля (семя, дерево, отросток), второй массив будет содержать указатель на структуру с деревом.
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
@fhello_world вы когда-нибудь делали игру с единством?
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Unity C#?
Yes , при создании классов и методов все будет храниться в метаданных при компиляции игры
Hello, World! 🎄
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
А зачем мне эта информация?
у вас есть дополнительная информация, у меня есть немного информации, возможно, можно добавить
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
А зачем мне эта информация?
метаданные и библиотеки, похоже, рекомбинируются при запуске игры, в подключенной памяти это правильно? метаданные только как библиотека библиотеки
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Hello, World! 🎄
Hello, World! 🎄
Хотя вроде все верно работает:
1 - 2 - 3
1 -> next = 3 addr
Hello, World! 🎄
В отдельном файле написал код, пробовал добавлять\удалять значения все работает.
В симуляции где деревья все тоже работает, но с free почему-то отказывается адекватно удалять деревья (программа продолжает работать, но остаются артефакты), без free все работает (хз, почему free так влияет на работу, т.к предыдущий блок успешно связывается со след. если он есть).
Hello, World! 🎄
first это struct на адрес первого элемента
delete_tree_point адрес элемента который нужно удалить
if(first != 0){
while(first->next != delete_tree_point){
first = first->next;
}
}
Tree *tmp2 = delete_tree_point;
if(tmp2->next){
tmp2 = tmp2->next;
first->next = tmp2;
}else{
first->next = 0;
}
Hello, World! 🎄
Это все работает как нужно, но стоит только в конце добавить free(delete_tree_point) и программа работает, но работает не правильно.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
😂👍
Артём
Есть у кого-то опыт поиска работы на позицию луа разработчика где-то за границей?
Ищу сейчас площадки с вакансиями, может знает кто
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
@Snusmumriken many problems regarding the length of time reading large files, one of which I often use string.gmatch in lua and do not read repeatedly because it optimizes reading time. and unfortunately string.gfind has been replaced with string.gmatch I want to take the position of each string from start to finish. I can indeed make a function for it with string.gmatch but it will change some factors and become unbalanced in reading. if I just read the string then it wouldn't matter, but I also read some randomly located spaces.
Snusmumriken
@Snusmumriken many problems regarding the length of time reading large files, one of which I often use string.gmatch in lua and do not read repeatedly because it optimizes reading time. and unfortunately string.gfind has been replaced with string.gmatch I want to take the position of each string from start to finish. I can indeed make a function for it with string.gmatch but it will change some factors and become unbalanced in reading. if I just read the string then it wouldn't matter, but I also read some randomly located spaces.
local pattern = "end of chunk pattern"
local start, cursor = 0, string.find(text, pattern)
while cursor do
local chunk = text:sub(start, cursor)
...
local a, b = string.find(text, pattern, cursor + 1)
start, cursor = cursor, b
end
Snusmumriken
Something like this.
Snusmumriken
Well. Time to read doc for you.
Welcome to large file universe.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
local pattern = "end of chunk pattern"
local start, cursor = 0, string.find(text, pattern)
while cursor do
local chunk = text:sub(start, cursor)
...
local a, b = string.find(text, pattern, cursor + 1)
start, cursor = cursor, b
end
function string.gfind(str,ptr)
local start, cursor = 0, string.find(str,"")
while cursor do
local a, b = string.find(str,ptr,cursor)
if b==nil then
os.exit()
end
c=b-ptr:len()+1;
start, cursor = cursor, b
end
end
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Snusmumriken
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
to be honest i never saw this sir using find 2x and it works wonders and 2 sticks under it seems to give off power.
Aqendo
Snusmumriken
Also more advanced thing:
https://github.com/HDPLocust/snus_stuff/blob/main/snus_string.md#lines
Separator can be pattern
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Igor
Даже мем сделал, заморочился прям
Aqendo
Aqendo
Кабута в пеинте кстати
Snusmumriken
Так и есть, лол
Aqendo
Snusmumriken
зачем выдумывать сложную херню когда можно простую
Aqendo
lua in a nutshell
Igor
Блин, когда уже хайлайт синтаксиса в мобилки впилят
Igor
Было бы неплохо
Aqendo
я даже помню был как будто
Snusmumriken
Монофонта достаточно же
Igor
С хайлайтом повыёбистее
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
good viewed from the screen like android and computer users 🤣😅