Chat:Ru/2021-06-18

From CG community
Jump to navigation Jump to search

[]_rw.bash: кста за что тут банят?

Uljahn: за мат и флуд не по делу

Uljahn: ещё за спам, но это клинические случаи

[]_rw.bash: а как определяется мат по делу и без дела?

Uljahn: коллективным решением экспертов :)

[]_rw.bash: ну лан тогда

[]_rw.bash: а как часто обновляются версии языков на сайте?

Uljahn: редко, раз в пол-года примерно

Uljahn: есть тема на форуме

[]_rw.bash: название темы помнишь?

Uljahn: https://www.codingame.com/forum/t/languages-update/1574

[]_rw.bash: спасибоо:yum:

Uljahn: проблема с обновлением языков на CG в том, что платформу создавали очень давно, когда ещё контейнеров не было, поэтому все языки в одной куче, когда один обновляют - другие могут сломаться

[]_rw.bash: контейнеры это docker и ему подобные?

Uljahn: ага

Uljahn: докер примерно в то же время создавался, что и CG

[]_rw.bash: в 13 14 году

Uljahn: технология была малоизвестная и новая, поэтому CG решили написать своё решение, теперь с легаси страдают

Uljahn: угу

[]_rw.bash: легаси?

Uljahn: устаревшие архитектурные решения, которые приходится поддерживать по необходимости, потому что переписать с нуля сложно

Uljahn: они с нуля написали запускалку скриптов на tech.io, там всё отлично

Uljahn: https://tech.io/snippet

[]_rw.bash: жалко ассемблер на подобных сайтах редкость

[]_rw.bash: так было бы не плохо если бы добавили

Uljahn: народ как-то инлайнит в плюсы, даже AVX2 юзают

Uljahn: тут выделяют одно ядро для кода, GPU нет, векторизация только на AVX возможна

[]_rw.bash: то есть компилятор юзает процессор пользователя а не запускается у них на серверах

Uljahn: не, запускается на серверах, но на одном физическом ядре

[]_rw.bash: и поэтому он иногда тормозит понятно

Uljahn: когда нажимаешь play, код отправляется на сервер, компилится, запускается, результат приходит в браузер в виде JSON и показывается реплей, если предусмотрена визуализация, или просто текст в консоли

[]_rw.bash: виртуализация в браузере или системная

Uljahn: код запускается на разных серверах, на процессорах с разной частотой и кэшем, поэтому результаты между запусками могут различаться

Uljahn: визуализация в браузере

Uljahn: виртуализация? хз

[]_rw.bash: извеняй перепутала не много

[]_rw.bash: у меня отключена поэтому реплеев нет печально:crying_cat_face:

Uljahn: в браузере? кем отключена? админов?

Uljahn: админом?

[]_rw.bash: не прост она не встроена здесь наверно

Uljahn: на хроме и лисе должно показывать, если она предусмотрена

[]_rw.bash: brave если что

Uljahn: а что за игра/пазл?

[]_rw.bash: любая

Uljahn: https://www.codingame.com/multiplayer/bot-programming/coders-strike-back

Uljahn: и здесь тоже не показывает?

Uljahn: может плагин-адблокер какой режет

[]_rw.bash: не ничего

Uljahn: тут с поддержкой браузеров всё плохо, т.к. команда маленькая, только хром и лису поддерживают

[]_rw.bash: здесь встроенный адблок но я вырубила его для cg

[]_rw.bash: ну лан не велика потеря главное тренажеры робят

[]_rw.bash: лан пойду осваивать шифр Чака

Default avatar.png TTeaLL: объясните плез, питон, объект не поддаётся подписка, вот есть строка, я хочу передать значения в скобках в функцию, spear, spear_x, spear_y = move_spear(int(ally_unit_id[1]), int(ally_unit_final_xposition[1]), int(ally_unit_final_yposition[1]), int(enemy_unit_id[3]), int(enemy_unit_pos_x[3]), int(enemy_unit_pos_y[3])) но он пишет TypeError: 'int' object is not subscriptable, что значит не подписывемый

Default avatar.png TTeaLL: а не, я затупил, извиняйте

Default avatar.png TTeaLL: не, не получается, вот не пойму смысла этой ошибки, что значит не подписываемый объект TypeError: 'int' object is not subscriptable

Uljahn: это значит в переменной int, а ты пытаешься сделать доступ по индексу как для списка int[1]

Uljahn: проверь, что ally_unit_id и прочие аргументы - это списки

Uljahn: вообще, желательно такую функцию разбить на более мелкие, чтобы проще было отлаживать

Uljahn: и зачем везде преобразования в int? у тебя в списках строки или флоаты?

Uljahn: тогда лучше внутрь функции всё поместить, чтобы агрументы не загромождать

Default avatar.png TTeaLL: вот, интов не было и не работало, и я думал может инт поможет

Uljahn: я так и понял, тоже раньше таким страдал

Uljahn: когда плохо понимал нюансы, пытался пофиксить на месте костылями

Default avatar.png TTeaLL: не, не помогло

Uljahn: короче, subscriptable objects - это те, в которых реализован доступ по индексу, это списки и кортежи

Default avatar.png TTeaLL: а, спасибо

Default avatar.png TTeaLL: ну тогда странно

Default avatar.png TTeaLL: в боте даётся на вход следующее

Default avatar.png TTeaLL: for i in range(number_units):

       ally_unit_id, ally_unit_pos_x, ally_unit_pos_y, ally_unit_direction, ally_unit_life, ally_unit_type, ally_unit_moving, ally_unit_final_xposition, ally_unit_final_yposition = [int(j) for j in input().split()]

Default avatar.png TTeaLL: for i in range(number_units):

       enemy_unit_id, enemy_unit_pos_x, enemy_unit_pos_y, enemy_unit_direction, enemy_unit_life, enemy_unit_type, ally_unit_moving = [int(j) for j in input().split()]

Default avatar.png TTeaLL: это полюбому списки

Default avatar.png TTeaLL: с числами

Uljahn: нет, это несколько раз считываются инты, и х надо сохранять в свой список

Uljahn: *и их

Default avatar.png TTeaLL: то есть в форе надо дописать x.append(ally_unit_id)

Default avatar.png TTeaLL: предварительно создав пустой список

Uljahn: типа того

Default avatar.png TTeaLL: всё, понял

Default avatar.png TTeaLL: спасибо, чёт я затупил

Uljahn: можно ещё свой класс замутить, и в список сохранять уже инстансы

Uljahn: или даже в словарь

Uljahn: я так часто делаю в мультиплеерах

Default avatar.png TTeaLL: мммм, я бы рад, но я не на столько ркутой ещё в плане классов)

Uljahn: ну, постепенно нужно осваивать

Uljahn: почитай про namedtuple, про data classes

Uljahn: dunder methods

Uljahn: очень полезные штуки, позволяют здорово упростить логику

Uljahn: на питоне нужно стремиться к тому, чтобы писать логику как на обычном английском языке

Uljahn: все преобразования и тонкости спрятать под капот

Uljahn: я считаю, что сложность программы нельзя полностью устранить, можно только перераспределить по участкам кода, размазать так, чтобы понимать без усилий, что происходит в каждом месте и в целом

Default avatar.png TTeaLL: полезная инфа

Uljahn: на начальном этапе мне помогли онлайн-туториалы, прошёл несколько штук, потом тут практиковался, и постепенно стал офигевать, как скилл прокачивается, когда в него вкладываешь время и усилия

Uljahn: смотрю иногда свои старинные решения пазлов и плакать хочется

amurushkin: Uljahn: пазлы это еще что. тут бывает поработе смотришь свой код 8-летней давности в который надо что то добавить и думаешь как ты мог это написать

Uljahn: иногда бывает и наоборот, когда смотришь на код, написанный под влиянием вдохновения и концентрированной инфы в кратковременной памяти (когда одну фичу досконально гуглишь), потом-то инфа выветривается, а от когда офигеваешь

Uljahn: *от кода

Uljahn: хаха, температуры загольфировал в 83 символа через utf компрессию, было 116

Uljahn: Automaton2000: бань читора!

Automaton2000: я просто не знаю как

Uljahn: ой, не температуры, а тора

Uljahn: чак ужался со 127 до 89

Uljahn: don't panic 128->114, немного похуже

Uljahn: а, 177->144

Uljahn: а, 177->114

MadKnight: я кстати приложуху под айос пилю

MadKnight: мне на работе выдали айфон

MadKnight: чтобы на нём тестить всякую фигню что я пилю