@ProLua

Страница 76 из 307
Vlad
09.04.2017
17:47:10
switch( values, caseValues, results ) for i = 1, #values do for j = 1, #caseValues do if(values[i] == caseValues[j]) then print( results[j] ) break else print( "not-case case" ) end end end end все то же но только много информации из элс блока

решимо if j == 6 then print( "not-case case" ) end ну или типа j == #caseValues

Alexander
09.04.2017
17:54:50
В классической науке, за счёт слишком большого количества факторов которые не всегда возможно учесть, за истину принимается факт который срабатывает в 95% случаев. Если меньше (даже 94%) - оно уже ложно. А если невозможно даже посчитать шанс - точно ложно. Собственно, по этой причине, исключения не подтверждают правило, а медленно ломают его.
на самом деле, исходная фраза имела значение "наличие исключения подтверждает, что некое правило существует". то есть, если где-то в договоре прописано исключение, то оно не могло бы там появиться, не будь некоего неупомянутого правила.

Snusmumriken
09.04.2017
17:56:21
Наличие исключений не подтверждает наличие правил, ибо правила строятся людьми. Ну, иначе я могу ввести правило: "Все люди - пидоры", и наличие не пидоров будет подтверждать наличие данного правила. Это ложное выражение. Хотя утверждение "Есть исключения среди множества людей, которые не являются пидорами" будет указывать на существование ложного правила. Хмм.

Google
Рома
09.04.2017
17:57:24
обалдеть, тридцаточка, спасибо за ЧСВ

Snusmumriken
09.04.2017
17:59:39
обалдеть, тридцаточка, спасибо за ЧСВ
Есть высказывание одного школьного учителя физики: "Мозг - он как анус. Если концепция не влезает - надо разрабатывать". Это восхитительно. А мозг разрабатывается, поэтому не унывай, лучше работай над собой :3

Philipp
09.04.2017
17:59:43
Исключение без правила не может быть, да

Snusmumriken
09.04.2017
17:59:54
Но само правило может быть ложным.

Philipp
09.04.2017
18:01:20
Естественно

Alexander
09.04.2017
18:01:31
именно так



Snusmumriken
09.04.2017
18:02:17
Хорошо что тут разные люди, есть чему учиться и чему учить.

Alexander
09.04.2017
18:02:20
(впрочем, этот тест я уже проходил лет пять назад)

где-то на 29 примерно

Snusmumriken
09.04.2017
18:03:57
Во-во, ребят, вы малацы что уделили время. Думаю, что даже тем у кого не те результаты которые они хотели - есть куда работать, и это отлично!

Vlad
09.04.2017
18:18:48
просто что б знать куда работать нужно глядеть на свои ошибки, тест наглядный тому пример мы получаем ответ но не конкретные результаты по каждому вопросу, для меня все ответы были заведомо истинными поскольку я в них не сомневался но система просто сказала что это не так —---------------------— хотя у меня в целом всегда были проблемы с логикой это как задача про двух стражников двери и один вопрос ты изначально не знаешь кто из них врет а кто нет потому и их ответы для тебя не решение, зато все время все эту задачу решают без проблем а у меня она вызывает непонимание

Philipp
09.04.2017
18:33:38
https://meduza.io/games/printsessa-ili-tigr

Google
Philipp
09.04.2017
18:33:41
Можешь вот эти пройти

Они простенькие

Но забавные

Vlad
09.04.2017
21:22:53
это вообще можна считать адекватным, или есть какие то более удобные\быстрые и тд тп способы? for k,v in pairs( tab ) do local tt = 'test' if v == 'ins' then table.remove( tab, k ) table.insert( tab, k, tt) end end

Рома
09.04.2017
21:33:31
local tt = 'test' for k,v in pairs( tab ) do if v == 'ins' then tab[k] = tt end end заменить все ins на test?

Vlad
09.04.2017
21:34:24
ну не, там в целом просто типа замена элементов при необходимости пробовал как то сделать

Рома
09.04.2017
21:34:57
ну не, но типа да

Vlad
09.04.2017
21:35:42
это пример, я в целом, нормален ли такой способ замены элементов таблицы?

Рома
09.04.2017
21:36:05
я набросал получше, то же самое должен делать

table.remove и table.insert далеко не всегда нужны, таблицам удобно так с помощью равно значения присваивать

Vlad
09.04.2017
21:37:07
оки, учтем

Рома
09.04.2017
21:37:52
и вообще одного не понимаю, зачем нужен этот table.insert, если я такой tab[#tab + 1] = x и все прекрасно?

Чай
09.04.2017
21:38:26
Можно вставлять в середину.

Vlad
09.04.2017
21:38:39
да, и остальное сдвигается

я типа где то видел что к примеру вродь по pairs работает где то в два раза медленнее чем по #table

хм и правда вродь, приверил насколько было по силам, вродь так и есть

Рома
09.04.2017
22:00:37
может потому что для массивов есть ipairs?

ну для числовых ключей, а pairs для всяких

Vlad
09.04.2017
22:20:19
а чет как то так вышло # 1 pairs 2 ipairs 1 -- считай что пустой # 5 pairs 4 ipairs 5 -- прогон с выводом или даже так # 0 | pairs 1 | ipairs 1 -- пусто # 4 | pairs 5 | ipairs 4 -- вывод

-- интересно а таким кто то занимается? local tab = { { { { { { {42}}}}}}} print(tab[1][1][1][1][1][1][1])

Google
Snusmumriken
09.04.2017
23:58:35
С pairs/ipairs есть один косяк, который сначала незаметен, если работать с таблицами коллекций. Если использовать массивы объектов, то всё очень здорово: rects = { {x = 10, y = 20, w = 30, h = 40}, {x = 100, y = 200, w = 300, h = 400}, {x = 20, y = 40, w = 60. h = 480}, } Допустим, чтобы сдвинуть все прямоугольники на 10 пикселей вправо, мы можем сделать так: for i, v in ipairs(rects) do v.x = v.x + 10 end Но если попробовать сделать так: array = {10, 20, 30, 40} for i, v in ipairs(array) do v = v + 10 end То массив array не изменится вообще. То есть, он всё ещё будет равен {10, 20, 30, 40}. Обоснование в том, что pairs/ipairs работают примерно так: for ipairs(array) do local i, v = n, array[n] v = v + 10 end Но таблицы и функции передаются по ссылкам, а всё остальное - по значениям. То есть, при работе с массивами стоит использовать обычные циклы: for i = 1, #array do array[i] = array[i] + 10 end С удалением значений хешей всё примерно так же: rects = { rect1 = {x = 10, y = 20, w = 30, h = 40}, rect2 = {x = 100, y = 200, w = 300, h = 400}, rect3 = {x = 20, y = 40, w = 60. h = 480}, } for k, v in pairs(rects) do v = nil -- не прокатит, потому что у нас тут как бы локальная переменная rects[k] = nil -- прокатит, потому что мы в конкретной таблице удаляем значения end Кстати, это относится не только к луа, но и, например, к питону и жаваскрипту.

Vlad
10.04.2017
00:44:48
А есть описание В офф документации стандартных библиотек Или чего то такого? Временами интересно посмотреть на реализацию тех же math

Snusmumriken
10.04.2017
01:36:24
Открываешь сурцы. И смотришь :3 Они просты для понимания, хоть и написаны на сишке. Снабжены комментариями и всем таким. Превосходный самодокументированный код.

Oleg
10.04.2017
02:54:07
Ну, это же просто регулярки. Они довольно магичны, конечно, но их незнание очень сильно мешает работе с текстом.
Регулярки я уж лет 20 использую. С этим проблем нет. А вот твой совет по раскукоживанию многомерного массива как раз в тему пришёл. Я про присвоения объектов знал, но почему-то к этому случаю с массивом не допетрил применить =)

Теперь надо обработку кнопок сделать.

Group Butler [beta]
10.04.2017
02:59:51
Добро пожаловать в чат pro.lua, Александр! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Oleg
10.04.2017
03:00:48
Колбасу типа «a and b or c» я тоже юзаю. Мне кажется такая конструкция выглядит более понятней, чем «a ? b : c».

yegorf1
10.04.2017
04:27:50
Вообще-то нет

Tverd
10.04.2017
06:24:54
в "a and b or c " есть одна проблема... если b ложно, то С не будет )

fgntfg
10.04.2017
06:33:24
Тернаную операцию лучше не использовать (сам любитель)

Group Butler [beta]
10.04.2017
08:53:26
Добро пожаловать в чат pro.lua, Кусь! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Vadim
10.04.2017
15:37:26
в "a and b or c " есть одна проблема... если b ложно, то С не будет )
a and (b and b or c) or c. Не уверен, можно ли внутри or c сократить, но, вроде...

Vadim
10.04.2017
15:38:02
Алсо: > =(true and false or "moo") [1] moo

Snusmumriken
10.04.2017
15:47:49
Да, потому что таки все элементы цепочки должны быть истинными, чтобы вытащить последний элемент.

Disinterpreter
11.04.2017
12:20:04
Интересно думаете?

#lua https://github.com/zeta0134/LuaGB

Group Butler [beta]
11.04.2017
16:17:51
Добро пожаловать в чат pro.lua, Aleksandr! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Vlad
11.04.2017
16:20:25
Чет вроде и идут, а общее количество людей вроде особо и не меняется

Snusmumriken
11.04.2017
16:21:13
Хех, расслабься. Раз в неделю по одному человеку - это немного. Цифра особо не изменится.

Vlad
11.04.2017
16:23:10
Тут еще нормально, люди как то сжато и по делу, а сижу в чате по blender'у тк там замутить пришлось, прям флуд, сотни сообщений, а по делу мелочь Людей там столько же

Google
Snusmumriken
11.04.2017
16:25:30
Ну, время от времени и тут есть флуд, так что да. Мне главное чтобы были те, кто задают вопросы, чтобы я мог на них отвечать :3 Хобби такое.

#lua https://github.com/zeta0134/LuaGB
Ох вау, и это на love2d. Действительно забавно, уже хочу в сурцы.

Snusmumriken
11.04.2017
16:30:37
Вот я и там!

Vlad
11.04.2017
17:20:29
есть что по json у кого?

Admin
ERROR: S client not available

Snusmumriken
11.04.2017
17:21:04
Дофига либ, от чисто lua до офигенно быстрых но нуждающихся в компиляции cjson.

Vlad
11.04.2017
17:21:26
не не, пока только в плане знакомства

Snusmumriken
11.04.2017
17:21:41
http://lua-users.org/wiki/JsonModules

Vlad
11.04.2017
17:22:10
с самым джейсоном в целом =) просто видимо плохо гуглю, что то мне крайне мало чего попадается, и то только в купе с джавой или пхп

Snusmumriken
11.04.2017
17:23:09
Да, как ты понимаешь, не стоит перегонять объекты напрямую в json, лучше экспортировать поля. Хм, кстати, можно добавить забавную функцию к своим классам "toTable", экспортирующую поля для дальнейшего восстановления.

Json - представление данных изначально из жаваскрипта. Инициализация - как будто код жаваскрипта. Ну там: [1, 2, 3, 4, 5, "foo", "bar"] или {"foo":"bar", "bar":[1, 2, 3, "foo"]} Единственное различие с луа-таблицами - ключи в кавычках, двоеточие вместо "равно", и квадратные скобки для списков. Умеешь в таблицы - умеешь в json.

Vlad
11.04.2017
17:26:03
просто видел в той же короне как с луа нормально можна с ним работать, а сам джейсон вроде как позволяет кучковать инфу в удобочитаемом виде но толком информации больше и не нашел, мне пока посмотреть почитать то такое json и как оно там все ага, ну вроде не страшно

Snusmumriken
11.04.2017
17:26:27
Ты знаешь для чего используется? В целом, что такое json и с чем его едят?

Технически, это преобразователь строчек в объекты нужного тебе языка и обратно. Ну, конвертер таблица -> строка -> таблица Зачем? В основном, чтобы сохранять на диск, передавать объекты/структуры по сети. Просто сохранять, просто загружать. Можно придумать ещё несколько способов применения.

Vlad
11.04.2017
17:28:34
ну те же к примеру тайловые проги для создания уровней хранят всю информацию в json файлах

Snusmumriken
11.04.2017
17:28:46
Да, да, например так. Darkest Dungeon хранит кучу конфигов в json'ах. Да и я тоже. Просто нужно грузить одну табличку из файлика при каждом запуске приложения. А при изменениях (громкость звука в игре повысили) - перезаписывать файл. Ну, ещё стоит иметь вшитую табличку дефолтных значений, шоб если файла нет - тут же записать. Вот и всё : )

О, избранные, кстати, делают полноценные сериализаторы, которые ещё и функции сериализуют, и мета-данные типа __index. Но это уже не json.

Vlad
12.04.2017
17:04:32
оффтоп но : только сел смотреть, и тут корочи как воткнуть одно в другое...ща "author" : {"f1" : "value","f2" : "value","f3" : "value"}, "book" : {"f1" : "value", "author", "f2" : "value"}

Рома
12.04.2017
17:06:10
оу, знакомые f'ки!

Google
Рома
12.04.2017
17:06:15
это ответ от БД?

Vlad
12.04.2017
17:06:41
не не не, вопрос про внедрение автора в книгу

Рома
12.04.2017
17:06:48
и я о том же!

это ответ от бд?

Vlad
12.04.2017
17:07:05
это на скору руку написаный пример

Рома
12.04.2017
17:07:15
тогда в чем проблема

Vlad
12.04.2017
17:07:57
вот так просто можно писать? "author" как потом с этим работать?

Рома
12.04.2017
17:08:20
"book" : {"f1" : "value", author: author, "f2" : "value"}

result.book.author — автор

Vlad
12.04.2017
17:09:48
а как выбирать если такого много? если там писало трое, то пишем всех отдельно а как потом заганять их

Рома
12.04.2017
17:11:04
не знаю в чем проблема, author = таблица, потом в другую таблицу присваевается tbl.author = author и все

но если вдруг нужны техники вытаскивания иерархий из постгреса - есть множество увлекательных наработок

он просто тоже неименованые поля выводит как f1, f2

вот про него и подумал

Vlad
12.04.2017
17:13:47
я просто сам запутался, мы ж по сути в джейсоне только храним данные в структурированной форме так?

Рома
12.04.2017
17:14:36
в том то и его задумка - в нем данные в НЕ структурированной форме - делай в нем как хочешь

{"book": {..., "author": {"name": "..."}, ...}}

Страница 76 из 307