Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
64 3 38

Говнокод /memes/ Валера Жмышенко 15/11/19 Птн 10:07:14 15214681
photo2019-11-15[...].jpg (122Кб, 640x1136)
640x1136
Работаешь с напарником, и он присылает тебе такой код, твои действия?
Аноним 15/11/19 Птн 10:24:17 15214702
>>1521468 (OP)
Тут один дебил мне как-то пытался доказать, что такой вид более понятен.
Аноним 15/11/19 Птн 10:26:30 15214713
>>1521470
Оптимальность, видимо, для пидоров
Аноним 15/11/19 Птн 10:36:56 15214724
Аноним 15/11/19 Птн 11:11:19 15214935
>>1521468 (OP)
> Работаешь с напарником, и он присылает тебе такой код, твои действия?
Если это его часть сборки, то мне будет похую. Ведь код рабочий сам по себе и при компиляции хоть такая построчная хуйня, хоть аналитическое выражение однохуйственно скомпилируются.
Аноним 15/11/19 Птн 11:29:59 15215096
>>1521468 (OP)
А какие ты еще варианты видишь?
Формулу написать для первого параметра вектора?
А если поменяется логика параметров этого вектора?
Опять к тому же виду приводить?

Короче, до пизды.
Я бы только в отдельную фабрику вынес это все. Чтобы получать вектор в зависимости от параметра.
Ее можно рефакторить, не засирая всю остальную логику.
Аноним 15/11/19 Птн 11:31:52 15215147
Прикольно
Аноним 15/11/19 Птн 11:39:01 15215248
>>1521509
Даже бы ретурн не дописал чтобы от лишних проверок избавится?
Аноним 15/11/19 Птн 11:54:45 15215429
>>1521524
а
я в этой простыне не заметил отсутствия else
так-то да. ты прав.
как прав и в том, что этот код неудобно читать, чему я и стал примером
Аноним 15/11/19 Птн 12:07:36 152155710
>>1521468 (OP)
С сирешёткадебилами не работаю.
Аноним 15/11/19 Птн 12:09:48 152155911
>>1521509
Как минимум свернуть конченный копипаст

"hp.transform.localScale = new Vector3()"
hpScale x y = new Vector(x,y)

Кейсы/значения вектора в лукап массива
Аноним 15/11/19 Птн 12:13:32 152156412
>>1521559
Если ты такой умный, почему ты не работаешь тем напарником?
Аноним 15/11/19 Птн 12:15:57 152156713
>>1521559
>hpScale x y = new Vector(x,y)
hpScale x y = hp.transform.localScale = new Vector(x,y)
фикс

>>1521564
Не понимаю о чем ты
Аноним 15/11/19 Птн 12:25:31 152157514
>>1521567
Он о том, что ты теоретик комнатный. С начала иди поднимай проект с колён, а потом свои солюшен вкидывай на форумах. Вот тебе анон и говорит, если такой умный, почему тогда ТЫ ДАЖЕ НЕ НАПАРНИК в том проекте и стать им не смог. А то мы таких знаем, паттерны, архитектура, а на деле: поднять интернет-магазин за неделю не смогут.
Аноним 15/11/19 Птн 12:27:06 152157615
>>1521542
>как прав и в том, что этот код неудобно читать
Да я мимо шел
Аноним 15/11/19 Птн 12:40:02 152158916
>>1521468 (OP)
Перепишу на что-то более вменяемое, объяснив зачем и как. Не все же такие охуенно умные, как я.
Аноним 15/11/19 Птн 15:15:04 152170917
>>1521468 (OP)
Посему не switch-case? Обычно для такого говна его лучше использовать, если лень алгоритм делать и говнюк гонится по пути карательной оптимизацией
Аноним 15/11/19 Птн 15:17:18 152171318
15735421098170.png (420Кб, 512x360)
512x360
Аноним 15/11/19 Птн 16:05:21 152175219
>>1521567
>Не понимаю о чем ты
Спасибо, посмеялся.
Ты не понимаешь, а охуительные решения давать осмеливаешься.
Держи в курсе.
Аноним 15/11/19 Птн 16:06:00 152175320
>>1521709
по какому условию свитчить будешь?
Аноним 15/11/19 Птн 16:07:05 152175521
Аноним 15/11/19 Птн 16:21:46 152176022
>>1521493
он не рабочий, например при 90 нихуя не сделает.

решение этой хуйни довольно простое на самом деле: floor(hp / 10), но горе погромистами не познать всю сложность матана
Аноним 15/11/19 Птн 16:39:04 152177323
>>1521760
Вообще-то ceil(x/10.0)/10.0. А его код хотя бы работает. Только else не хватает
Аноним 15/11/19 Птн 16:39:55 152177424
>>1521760
>floor(hp / 10)
Как-то так:
var hpBarX = Mathf.Floor( Mathf.Clamp( life, 0.0f, 150.0f ) 0.1f ) 0.1f;
Но это обычно слишком сложно для рядового юнитидебика из /gd.
Аноним 15/11/19 Птн 16:42:09 152177725
>>1521773
При чем ceil соснет с нулем.
Аноним 15/11/19 Птн 16:42:53 152177926
>>1521773
> Вообще-то ceil(x/10.0)/10.0. А его код хотя бы работает. Только else не хватает
какие ceil? какие /10? ты его код вообще видел? проанализируй

>>1521774
> var hpBarX = Mathf.Floor( Mathf.Clamp( life, 0.0f, 150.0f ) 0.1f ) 0.1f;
это что? или чеза mathf? я просто как раз таки не юнити дебил из gd, мимо проходил
Аноним 15/11/19 Птн 16:44:30 152178327
>>1521773
> А его код хотя бы работает. Только else не хватает
подставь любое число с mod 10 = 0 или 1
Аноним 15/11/19 Птн 16:44:30 152178428
>>1521468 (OP)
>live
>Комменты на русике
Напарника сразу пристрелить надо (и тебя тоже), так для мира будет лучше. Меньше говна в стиме и аппсторах.
Аноним 15/11/19 Птн 16:45:47 152178629
Аноним 15/11/19 Птн 16:58:23 152180130
>>1521509
Когда говорят, что программистов на рынке переизбыток, надо помнить, что 95% из них -- это клинические идиоты типа этого, либо оп-пика.
Аноним 15/11/19 Птн 17:05:31 152181031
>>1521801
Игорь, ты? Помнишь меня? Я твой одноклассник. Я узнал тебя по твоим шизоидным словам и высерам. А помнишь, как мы всем классом нассали тебе в кружку в третьем классе, на сладкоежке? Ты ещё выпил, облизнулся и попросил добавки. А потом тебя пришёл забирать твой отец, тот самый дворник, который на Вернадского изнасиловал собаку и получил условный срок за то, что украл плавленный сырок в магазине. Он зашёл в класс, все стали смеяться, а ты обосрался под себя от стыда, а потом сказал, что всю жизнь будешь ненавидеть дворников, но в 9м классе, когда ты пошёл на рейд, чтобы их отпиздить, то они пустили тебя по кругу, после чего тебе наложили на анус восемь швов. Как поживаешь, Игорян?
Аноним 15/11/19 Птн 17:06:31 152181232
ОП-хуй должен быть доволен.
Вкинул какую-то хуету, теперь проигрывает над ебланами, всерьез обсуждающими, как улучшить этот говнокод.
И каждый, ведь, охуенно умный, сеньор, и все такое.
Аноним 15/11/19 Птн 17:12:41 152181533
>>1521779
>какие ceil? какие /10? ты его код вообще видел? проанализируй
Собственно, весь тред доказывает, что код в оппосте - это лучшее, на что могут рассчитывать местные типа тебя
Аноним 15/11/19 Птн 17:19:35 152182134
>>1521774
Вообще-то, у тебя характерный пример говнокода.
На картинке хуево написанный, но сразу понятно, что происходит.
У тебя блядь, скобка за скобкой за скобкой, так, падажжи, сколько тут параметров, а, да, а это к чему, а, да, блядь, и что нахуй за хуйня?

А завтра тебе говорят, что правила отрисовки изменились, и ты начинаешь думать, какую бы тебе еще формулу приспособить.

Пиздец, вот из-за таких уебков-оптимизаторов, как ты, все вечно и рассыпается из-за глупых багов, которые потом за тобой должны подтирать другие.
Аноним 15/11/19 Птн 17:23:53 152183035
>>1521821
Если бы он у него еще правильно работал. У него при 149 ответ будет 1.4
Аноним 15/11/19 Птн 17:36:42 152184736
hqdefault.jpg (30Кб, 480x360)
480x360
>>1521821
>так, падажжи, сколько тут параметров, а, да, а это к чему, а, да, блядь, и что нахуй за хуйня?
Аноним 15/11/19 Птн 18:00:45 152188437
>>1521753
Ну это проблема, да. Если присутствует нагромождение if это само по себе проблема и говорит о том, что с логикой что-то не так.
И почему бы не сделать (141 < live <= 150) или джава так тоже не умеет?
Аноним 15/11/19 Птн 18:12:15 152189238
Аноним 15/11/19 Птн 18:37:25 152190539
>>1521468 (OP)
Ты еблан. Либо ты выводишь зависимость при построении вектора в цикле, либо затыкаешься нахуй, потому что код читаемый и понятный. Или ты думал, что в реальности у тебя будет все, как в школьных задачках по программированию, где цикл и a = i * 2 ?
Аноним 15/11/19 Птн 18:39:59 152190940
>>1521905
>a = i 2
a [ i ] = i
2

быстрофикс
Аноним 15/11/19 Птн 18:40:25 152191241
>>1521909
на двачике умножение * уже не отображается? о_О
Аноним 15/11/19 Птн 18:40:42 152191342
Аноним 15/11/19 Птн 18:41:59 152191543
>>1521912
Ньюфаг, какое нахуй "уже"
Аноним 15/11/19 Птн 18:50:32 152192144
>>1521912
Два умножения схлопываются в разметку.
Аноним 16/11/19 Суб 15:05:03 152262845
проблема кода на ОП пике не в том, как он выглядит, а то что он пытается делать.. казалось бы читать удобно, но нахуя все это? ради того чтобы полоска хелбара меняла скейл в зависимости от хп? ок тогда почему не использовать hp.transform.localscale = new Vector3((currentHp / maxHp) * MAX_HP_BAR_SCALE_X, 1, -1); ? зависимость от конкретных цифр исчезает, читается норм и понятно что происходит..
Аноним 20/11/19 Срд 23:31:43 152570646
>>1522628
Деление. В гейдеве хардкорные ограничения на время отрисовки, if-else/switch по таблице выходит быстрее деления. Правда, в ОП пике всё равно хуёво, потому что долбич забыл else.
Вот почему я люблю раст; там вместо такой хуйни красивый match:
fn foo() {
let tmp: f32 = match live {
150.. => 1.6,
140..150 => 1.5,
130..140 => 1.4,
/ snip /
..1 => 0,
};
hp.transform.LocalScale = Vector3::new(tmp, 1, -1);
}
К слову, я тут пересмотрел код из ОП-пика, и у меня появился вопрос: что будет, если хп будет равно 141, 131, 121 или другое ..1?
Аноним 21/11/19 Чтв 01:03:39 152574147
>>1525706
Деление дороже простыни ифов? Совсем там поехали?
Аноним 21/11/19 Чтв 02:18:32 152575448
>>1525741
Для сравнения двух интов не надо вообще нихуя копировать, только несколько битов сравнить. А теперь гугли, как реализуется деление побитовыми операциями.
Аноним 21/11/19 Чтв 04:57:43 152577249
>>1525754
Деление делается одной командой в процессоре, оно в железе реализовано. Плюс нет зависимости от того в кэше твоя таблица или нет.
Аноним 21/11/19 Чтв 09:47:00 152579950
>>1521468 (OP)
> хелбар меняеться
Там и с обычным языком проблемы
Аноним 21/11/19 Чтв 10:19:22 152580451
>>1525772
То есть, ты думаешь, что в ALU сидит волшебный гномик, который одним махом руки считает деление? Конечно, в современных процессорах алгоритм деления эффективнее, чем "вычитай, пока не останется число меньше делителя", но эта операция всё равно выполняется дольше пачки из нескольких if-else. Особенно, если у тебя в if сравнение с константой, а в делителе не константа. И шансы на то, что этот десяток констант вывалится из кэша низковаты.
Аноним 22/11/19 Птн 06:51:46 152641552
>>1521468 (OP)
Типичные юнитидевы блять. Мой мозг уже начал воспринимать такой высер, как что-то нормальное
Аноним 22/11/19 Птн 07:14:31 152642153
>>1525804
>в ALU сидит волшебный гномик, который одним махом руки считает деление
Что-то вроде, в этом и есть суть ALU. Плюс еще процессор умеет выполнять параллельно несколько команд и не особо любит ветвления.

Так что не факт что
>эта операция всё равно выполняется дольше пачки из нескольких if-else.
Аноним 05/12/19 Чтв 17:04:52 153836354
>>1525754
Ебать, нахуй!
ЭТО ЖЕ ДЕЛЕНИЕ
Д
Е
Л
Е
Н
И
Е
ТЫ ПРОЕБЁШЬ ТАКТ, КАРЛ, ТАКТ! ЭТО ЖЕ ПИЗДЕЦ ПРОЁБ! ТАКТ!
Аноним 05/12/19 Чтв 18:20:48 153842755
>>1521468 (OP)
Не шарю в этом языке, но разве не должно быть какой-то стандартной штуки, которая меняет положение по кастомному алгоритму ?
Аноним 07/12/19 Суб 22:52:55 154054356
>>1521468 (OP)
> твои действия?

нихуя не делаю, если влазит в один экран и ни от чего не зависит то похуй че там
Аноним 08/12/19 Вск 00:06:55 154058657
>>1538427
А алгоритм мы в коллбек этой штуки захуячим, так то читабельно будет!
Аноним 08/12/19 Вск 10:17:55 154073758
Аноним 08/12/19 Вск 11:35:20 154076159
>>1521468 (OP)
NDA подписывал?
Пиши объяснительную и встречаемся в суде
Аноним 10/12/19 Втр 00:03:33 154237160
>>1540737
Я не оп, и вообще в сишарпе шарю немного, но вычислял бы процент куррент хп/макс хп и отоброжал на экран в процентах от максимально возможного, было бы всего несколько строчек кода, а не куча проверок.
Аноним 10/12/19 Втр 05:47:15 154251661
>>1540737
hp.transform.localScale = new Vector3(live/100, 1, -1);
Аноним 10/12/19 Втр 07:32:52 154253462
Вот вы все думаете о решении, а о любви к брату своему не полумали. А нужно бы сказать: брат, давай придумаем универсальную формулу, которая будет отображать хелс на хелсбар и напишем тест для нее? Чтобы не писать много ифов.
Аноним 10/12/19 Втр 08:18:50 154254463
>>1525706
Тут я бы поспорил, современные процессоры обычно выполняют код наперед и большими блоками, поэтому много ифов мешают ему эффективно предсказывать что будет дальше, а значит выполнять код в холостую.
Плюс код в пике вообще говно, там вместо 1 проверки десяток.
И если уж оптимизировать такую хуйню для проца, то лучше замутить массив и оттуда получать значения, это будет куда быстрее чем эти ИФы.
И если это делается для кучи врагов, скажем 1000+ на экране хп баров, то от массива может быть и будет какой-нибудь да выигрыш.
Аноним 10/12/19 Втр 08:38:49 154254664
>>1542371
Он высчитывает размер самого хелбара в коде
Аноним 10/12/19 Втр 09:49:41 154255665
>>1542544
Предсказатель ветвлений угадывает ифы с 90% вероятностью, так что никаких проблем из-за ифов быть не должно.
К тому же не факт, что компилятор не заменит это полотно на таблицу, как
для свичей.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов