Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Начните с маленькой подводной лодки: устанавливайте бомбы, избавляйтесь от врагов и старайтесь не попадаться на глаза своим плавучим врагам. Вас ждет еще несколько игровых вселенных, много уникальных сюжетов и интересных загадок.

Пикабомбер

Аркады, Пиксельная, 2D

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
13
Hakain
Hakain
Лига программистов

Решаем задачу из Codewars⁠⁠

3 года назад

Задача называется Pipe and tap chaining operators

[моё] Codewars Программирование Scala Linux Задача Видео YouTube
1
6
Hakain
Hakain
Лига программистов

Решение задачки Directions Reduction (5 kyu) из Codewars⁠⁠

5 лет назад

С подробным объяснением решения

Codewars Scala Программирование Спортивное программирование Видео
5
Hakain
Hakain
Лига программистов

Решаем задачи по программированию на Codewars⁠⁠

5 лет назад

На языке Scala

Scala Codewars Программирование Видео
1
35
DELETED
IT-юмор

Машинный перевод как способ скоротать вечер⁠⁠

5 лет назад

Вступление


Всем бобра. В промежутках между своими увольнениями работаю разработчиком. Сейчас пребываю в поисках следующего промежутка, а свободное время заполняю решением тестовых задачек на алгоритмизацию с Codewars - специального сервиса для таких вот скучающих IT-безработных.


Одна из таких задачек - разработать алгоритм пути улитки, возвращающейся домой. Проще, конечно, показать:

Думаю, идея понятна. Мы начинаем путь с левого верхнего угла, пока не окажемся в конечной точке в районе середины. Мы должны пройти весь этот путь (просчитать), последовательно сохранить все пройденные шаги и вернуть их в ответ программе, которая проверит корректность результата. Пример такого ответа для левой картинки: 1, 2, 3, 6, 9, 8, 7, 4, 5.


А пока мы в лице улитки гуляем по поле (нагуливаем результат работы), промежуточные данные о пройденных шагах нужно где-то хранить и накапливать. Для этого я использовал переменную - $distanceTravelled. В нее улитка будет бережно записывать все пройденные шаги, пока не доползет до кровати конца, а затем вернет ее содержимое проверяющий программе, чтобы получить заслуженный чупа-чупс (или по лбу, если приползла не туда или не тем маршрутом).


Стоит отметить, что выразительное имя для переменной (да и вообще для любого объекта в коде) - это залог успешного понимания работы кода и т.о. комфортного сопровождения со стороны других разработчиков. Пусть в нашем случае сей код кроме таких же странствующих бездельников никто не увидит (а уж тем более не будет пытаться дорабатывать), руку стараюсь не сбивать, ибо к переменным вроде i, r, c привыкаешь очень быстро и легко, а отвыкаешь долго и страдальчески. В этот раз я решил, что имя переменной мой утонченный вкус решительно не устраивает и с этим надо что-то делать.


В качестве отступления могу сказать, что не сильно большой я англичанин и нередко компенсировать это вынужден в Google Translate. Многие типичные для отрасли выражения и слова оседают быстро, но как минимум не мешает получить подтверждение со стороны. Так вот альянс моего дефицита языка и болванистого машиноперевода порой знатно доставляют.



Планирование


Собственно, $distanceTravelled - пройденное расстояние, путь. Вроде бы все хорошо, но два момента меня смущали:

distance - слишком неопределенно. Что есть distance? метры, километры, световые годы? безобразие

travelled - пройденное расстояние, но обычно используется в том же контексте, что у нас - путешествие, т.е. больше с развлекательно-познавательными целями, нежели с деловыми


Ну ок, какие идеи? Посовещавшись с самим собой я решил, что было бы неплохо, ежели бы переменная читалась как $пройденныеКвадраты [улиткой]. Звучит информативнее размытых пропутешествованных дистанций, мм? На том и порешили. Теперь переходим к финальной части - переводу.



Реализация


Начнем с существительного - дистанции. Коли приговорили его к замене, не будем медлить. Поскольку в нашем случае речь идет о слегка абстрактном и заточенном под задачу расстоянии, логичнее будет дистанцию измерять в squares - квадратиках (а вся доска, по коей рассекает улитка - папа-квадрат площадь, square). С этим все ясно, топаем дальше.


Следующая жертва у нас - travelled. Тут уже неоднозначнее. Улитка у нас вряд ли ходит (walked), и вряд ли кто-то видел бегающих (ran) улиток (во всяком случае без запрещенных веществ). Улитка, пожалуй, скорее ползает - creep. Однако в прошедшем времени - crept - у нас получится подкрадывающаяся улитка-ниндзя, потому гугл мне предлагает юзать crawled, что в данный контекст вполне вписывается:

Ок, гугл, как скажешь. Теперь переходим к самому главному - к женитьбе существительного с глаголом.


Вбиваем первое, что приходит в сумнящуюся голову и одновременно самое очевидное:

Хм, квадраты не желают быть пройденными, более того - уверены, что куда-то ползут. Попытка дубль два - спускаем вниз регистр у Crawled (гугл на это нередко живо реагирует):

квадраты по-прежнему порываются от нас уползти. Вечер переставал быть томным. Попытка №3:

и опять квадраты норовят прикинуться улиткой. Ладно, сжалимся над болванчиком и явно намекнем, в чем тут дело:

События развивались стремительно. Квадраты мало того что ползают без спроса, так еще и улитку оседлали! Запашные от улиток нашлись тут, понимаешь. Но мы не сдаемся и продолжаем верить в искусственный интеллект:

Тем временем упрямые квадраты продолжают свое вероломный поход с улиткой в качестве транспорта.


Больше всего несправедливости, конечно, досталось улитке. Она-то думала, это она тут главное действующее лицо, а ее запрягают как ломовую лошадь и гоняют туда-обратно какие-то неодушевленные наездники, когда должно быть ровно наоборот. Никакого уважения к главной звезде задачи.


В принципе, уже понятно, что название переменной $squaresCrawled в контексте задачи вполне корректно отражает суть переменной, но лишняя проверка лишней не бывает, так что предпринимаем последнюю попытку найти компромисс:

Подытожил напоследок гугл. И ведь не поспоришь. И еще предприимчивые.

Показать полностью 7
[моё] Юмор IT Длиннопост Codewars Скриншот IT юмор Google Translate
46
17
dCart
Задачки для изучающих Java

Когда Hello world уже не достаточно.⁠⁠

7 лет назад

Привет всем кто учит какие либо языки программирования, а в особенности Java.

Я далекий от про уровня человек, но люблю на досуге писать код. И вот я не так давно (благодаря упоминанию тут), открыл для себя ресурс codewars.


Ресурс поддерживает много языков программирования, так что одни и те же задачи можно решать разными языками. Пользователи сами могут создавать задачи для других и тд.


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

Когда Hello world уже не достаточно.
Java Codewars Программирование Логическая задача
15
tvoygospodin

Не могу найти ошибку в коде.⁠⁠

8 лет назад

Код низкого качества, но вполне понятный. В спорах пишут, что шестой тест сломан, но у всех нормальных людей получается же.

Помогите пожалуйста и утопите в минусах.

https://www.codewars.com/kata/vasya-clerk/train/python

https://pastebin.com/UKNRN6Ke

Показать полностью 2
[моё] Python Codewars Программирование
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии