Chat:Ru/2021-06-18
[]_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: лан пойду осваивать шифр Чака
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, что значит не подписывемый
TTeaLL: а не, я затупил, извиняйте
TTeaLL: не, не получается, вот не пойму смысла этой ошибки, что значит не подписываемый объект TypeError: 'int' object is not subscriptable
Uljahn: это значит в переменной int, а ты пытаешься сделать доступ по индексу как для списка int[1]
Uljahn: проверь, что ally_unit_id и прочие аргументы - это списки
Uljahn: вообще, желательно такую функцию разбить на более мелкие, чтобы проще было отлаживать
Uljahn: и зачем везде преобразования в int? у тебя в списках строки или флоаты?
Uljahn: тогда лучше внутрь функции всё поместить, чтобы агрументы не загромождать
TTeaLL: вот, интов не было и не работало, и я думал может инт поможет
Uljahn: я так и понял, тоже раньше таким страдал
Uljahn: когда плохо понимал нюансы, пытался пофиксить на месте костылями
Uljahn: короче, subscriptable objects - это те, в которых реализован доступ по индексу, это списки и кортежи
TTeaLL: в боте даётся на вход следующее
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()]
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()]
Uljahn: нет, это несколько раз считываются инты, и х надо сохранять в свой список
Uljahn: *и их
TTeaLL: то есть в форе надо дописать x.append(ally_unit_id)
TTeaLL: предварительно создав пустой список
Uljahn: типа того
TTeaLL: спасибо, чёт я затупил
Uljahn: можно ещё свой класс замутить, и в список сохранять уже инстансы
Uljahn: или даже в словарь
Uljahn: я так часто делаю в мультиплеерах
TTeaLL: мммм, я бы рад, но я не на столько ркутой ещё в плане классов)
Uljahn: ну, постепенно нужно осваивать
Uljahn: почитай про namedtuple, про data classes
Uljahn: dunder methods
Uljahn: очень полезные штуки, позволяют здорово упростить логику
Uljahn: на питоне нужно стремиться к тому, чтобы писать логику как на обычном английском языке
Uljahn: все преобразования и тонкости спрятать под капот
Uljahn: я считаю, что сложность программы нельзя полностью устранить, можно только перераспределить по участкам кода, размазать так, чтобы понимать без усилий, что происходит в каждом месте и в целом
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: чтобы на нём тестить всякую фигню что я пилю