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

Пикабу Игры +1000 бесплатных онлайн игр

Открой для себя волшебный мир реальной рыбалки. Лови реальную рыбу на реальных водоемах! Исследуй новые рыболовные места и заполучи заветный трофей.

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть

Копай Дыру в России

Симуляторы, Приключения, Экшены

Играть
Динамичный карточный батлер с PVE и PVP-боями онлайн! Собери коллекцию карточных героев, построй свою боевую колоду и вступай в бой с другими игроками.

Cards out!

Карточные, Ролевые, Стратегии

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

Пикман

Аркады, На ловкость, 2D

Играть
Классический арканоид для любителей ретро-игр. Защитите космический корабль с Печенькой (и не только) на борту, проходя уровни в арканоиде.

Арканоид Пикабу

Арканоид, Аркады, Веселая

Играть

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

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

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

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

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

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

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Java книги

973 поста сначала свежее
2
Bot0FF
1 год назад

Свой собственный mmorpg мир ч.2⁠⁠

Привет всем!

Продолжаю работу над своей игрушкой в телеграме. На этот раз решил переработать весь код, потому как со старой версией было не очень удобно добавлять новые функции. А из новых функций это добавление умений и их применение в бою, в основном. В процессе реализации умений столкнулся с проблемой действия умения на протяжении нескольких раундов. Перед тем, как рассказать о реализации, несколько слов о том как реализована боевая система в целом. Есть сущность пользователь и противник (моб). Обе эти сущности сохраняются в бд и имеют такие характеристики как: hp, защита, id приемов, id противника с которым идет сражение и другие, которые относятся к сражению. Сначала сделал отдельные таблицы в базе для боев с мобом и живым игроком. Идея хорошая, потому как можно вести статистику и смотреть результаты боев, но у меня пока проблемы с взаимосвязями таблиц, так как надо сохранять в них те приемы, которые были использованы, а это значит, что в одном из столбцов таблиц надо хранить список с объектами "прием", а с этим пока есть сложность, поэтому на сегодня обошел ее созданием HashMap боев прямо в коде. В этом тоже есть плюсы, так как запросов к базе поменьше, а для статистики боев сделана отдельная таблица и есть логи, где можно посмотреть результаты, пока идет тестирование.

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

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

Ну да ладно, отвлекся немного. Еще несколько слов об изменениях. Формат боя решил тоже переделать. Раньше было как, выбрал куда бьешь, выбрал что защищаешь, после видишь результат. Идею эту подсмотрел, если честно. Интересная, но псевдослучайная какая-то. Можно жать одну и ту же кнопку атаки и защиты и после пары боев понятно, что ты уже ничего не решаешь, поэтому вернулся к первоначальной модели: после выбора удара сразу результат раунда.

Еще добавил ману, куда же без нее. Мана тратится на использование умений. Их несколько, как говорил, в будущем увеличу количество умений, благо теперь можно спокойно добавлять их, так как это отдельный класс и при создании нового умения просто наследуешься от базового класса и добавляешь в расчете результата боя эффект, который имеет умение.

В общем продолжаю работу, изучение и буду рад, если кто-нибудь заглянет и посмотрит что получается: https://t.me/vzland_bot.

Показать полностью
[моё] MMORPG Telegram Игры Текстовые игры Java Развлечения Текст
3
4
ChooChooLoco
ChooChooLoco
1 год назад
Серия Мемуары говнокодеров

Пейте, дети, молоко! Пользуйтесь стандартной библиотекой И будьте бдительны!⁠⁠

Забавную ситуацию вспомнил: как-то на ревью коллега стал меня убеждать в необходимости своих правок. Обосновывал тем, что "из теста вернули с комментарием — очень долго работает запрос, не можем дождаться ответа и обрубаем". Поэтому он решил изменить способ итерации, чтобы всё ускорилось 🚀

Краткая суть: был метод, возвращавший некие данные за период (12 месяцев с отмоткой назад, endDate = 12 месяцев назад, нижняя граница). Внутри себя - он итерировался по этим месяцам, дергал другой метод для получения помесячных наборов, и агрегировал их. Конструкция была такая:

LocalDate startDate = LocalDate.of(2022, 11, 1);

LocalDate endDate = startDate.minusMonths(12);

for (LocalDate date = endDate; date.isBefore(startDate); date = date.minusMonths(1))

Подобный метод-агрегатор был не один, и на ревью первого из них я коллеге посоветовал генерировать набор дат вызовом библиотечного АПИ datesUntil с шагом в месяц, и дальше сгенерированный набор использовать. Это дело благополучно забылось, даты продолжали создаваться внутри for и кочевали с копипастой, дожив до обсуждаемого момента 🤷🏻‍♂️

Я сильно засомневался, что в совершенно ненагруженном вызове, при итерации по 12 элементам — иной способ итерации даст какую-то заметную разницу. Сделал иллюстративные наброски в JShell (полноценные бенчмарки лень было, да и ни к чему) для сравнения разных способов с исходным. Типа таких:

Пейте, дети, молоко! Пользуйтесь стандартной библиотекой  И будьте бдительны! Программирование, IT, Java, Программист

(копипастабельный текст тут)

Внимательный читатель уже видит суть проблемы. 🕵🏻‍♂️ Самый внимательный - уверен, увидел уже на третьем абзаце!

Результаты, ожидаемо, отличались крайне незначительно:

Dates list for - i => 692

Dates in-place generated for each => 704

Dates list for - each => 708

Dates array for - i => 708

Dates list forEach => 712

Dates list while + iterator => 1060

Разумного объяснения не было 🤯 Стали закрадываться мысли - а не хлопнуть ли нам взяться ли нам за JMeter, профайлер, снять граф... Углубиться, так сказать, до дна.

Не пришлось - взглянул повнимательней и заметил разницу: date = date.minusMonths(1) vs date.plusMonths(1). Вот оно! 🥳 Банальный бесконечный цикл с отмоткой назад от нижней границы периода.

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

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

Молоко, говорят - просто полезно для здоровья. Его даже за вредность дают. Но не всем 🐱

Показать полностью 1
[моё] Программирование IT Java Программист
2
4
user6389685
1 год назад

Помощь в обучении программированию⁠⁠

Прошу помощи в обучении программированию. Есть основы по Java/kotlin, js, html, css. Получались программы на Spring, Vaadin. Нет систематизации знаний и нормальной практики. Если есть неравнодушные люди, готовые помочь, прошу откликнуться с систематизацией обучения и практикой. Готов бесплатно помогать, писать, всё ради получения знаний и практики.

[моё] Программирование Java Kotlin Текст
14
Bot0FF
1 год назад

Свой собственный mmorpg мир⁠⁠

Всем привет!
Решил сделать на Пикабу небольшой бложек по развитию своей игры в телеграме. Первый пост сделал анонимно почему-то. Там рассказал о том, что я недавно начал изучать язык java и практиковаться решил посредством создания mmorpg игрушки в тг. На тот момент было сделано не так то и много, а именно: карта на 900 локаций, разнообразные противники, вещи. Бои происходили автоматически, нажми одну кнопку и готово. Как и говорил в тот раз, такие игры на любителя (текстовые), но мне нравится.
После первого поста несколько человек зашли все-же посмотреть, что я там сделал и пару даже докачались до 2 уровня, поверьте, радости моей не было предела, даже не считая того, что последний раз они заходили неделю назад.
А это время я по вечерам занимался тем, что писал систему пошагового боя. Сначала хотел выложить небольшие скрины кода, но уже при одной мысли услышал шепот грамотных разрабов с Пикабу: "Етить говнокод какой". Хотя, может что и дельное подсказали бы, но это в следующий раз. Конечно, через несколько лет я гляну на то что писал и подтвержу слова разрабов с Пикабу, но пока так. Стараюсь повышать свой уровень и исправлять написанное по мере изучения языка.
Кстати, для знающих, пишу на спринге, потому как он number one все же для приложений, бд postgres.
Теперь о том что сделано. Как уже говорил, система пошагового боя, то есть, бой по раундам, сначала нажимаешь кнопку куда атаковать, потом что защищать, потом ждешь хода противника и сразу отлетаешь на стартовую локацию, если он сходил и не повезло. На этапе создания этого функционала столкнулся со многими вопросами, которые очень интересно было решать. Даже на внимательность больше: а что если противник сходил, а ты в это время удачно сбежал из боя, что если вы в бою, а в это время кто-то решил напасть на тебя или на него, что если бой закончился, ты улетел на стартовую локацию, а на локации боя в списке игроков ты остался, и вот таких "что если" вагон и тележка маленькая. Не забыть проставить все true и false везде, короче говоря. Теперь я понимаю проблемы игровых студий, которые выпускают обновы, а в итоге проблем еще больше чем было: одно тянет другое, но разбираясь в этом, чувствуешь как серое вещество шевелится и пройдя глазами мимо строчки кода видишь, что тут надо еще подправить.
В общем, буду, по мере сил, делать обновления, учиться и, кто знает, что может из этого получиться.
Игрушка доступна по ссылке https://t.me/vzland_bot. Группы игры пока нет, но в скором времени будет. Так что пока вижу все недовольства игроков только в логах :)

Показать полностью
[моё] MMORPG Telegram Игры Текстовые игры Java Развлечения Текст
11
13
BattyAlesha
1 год назад
Лига программистов

Нужен совет разработчиков⁠⁠

Я сразу хочу извиниться за глупый вопрос. Я задался вопросом изучить kotlin и овладеть мобильной разработкой. Начал читать книгу Head First. Kotlin. По ходу чтения я понимаю, что мне не хватает понимания как устроен андроид. Начинаю читать книгу Книга «Head First. Программирование для Android». Становиться более-менее понятно про активности и начинку андроида. Но там написано на java. И меня немного это смущает, ведь со всех утюгов рисуют статистику, что kotlin намного лучше при мобильной разработке. Прошу опытных людей дать совет, как правильно стоит поступить: изучать андроид под java или несмотря ни на что браться за kotlin? Если я упускаю какие-то вещи, прошу подсказать.

Заранее, огромное спасибо)

[моё] Kotlin Java Разработка Android Android разработка Текст Нужен совет
42
3965
Shawurma
Shawurma
1 год назад
Инкогнито
Серия Лучшее

Это очень печально⁠⁠

Взято из телеграмма - Инкогнито

Это очень печально IT юмор, Программирование, IT, Программист, Юмор, Java, Javascript, Обучение, Переписка, Зашакалено, Скриншот
IT юмор Программирование IT Программист Юмор Java Javascript Обучение Переписка Зашакалено Скриншот
106
11
ChooChooLoco
ChooChooLoco
1 год назад

Git хук для запуска тестов⁠⁠

Есть у меня такой pre-push хук - автоматом прогоняет тесты локально, через maven. Подключается по необходимости через отдельные git конфиги для проектов.

Git хук для запуска тестов IT, Командная оболочка bash, Java, Программирование

Стащил его, судя по всему, отсюда: https://gist.github.com/arnobroekhof/9454645. Потом допиливал немного – чтобы он с многомодульными проектами работал корректно. Может, ещё что-то по мелочи причёсывал.

И он отлично работает (разве что можно через sed попробовать результаты по всем модулям агрегировать).

Но вот проблема – на текущем проекте везде gradle, а под него я что-то не могу найти похожего простого решения

Есть ли оно?

IT Командная оболочка bash Java Программирование
25
8
habba42
habba42
1 год назад
Лига программистов

Telegram client library - Java⁠⁠

Коллеги, а не может кто-то порекомендовать библиотеку для работы с клиентским API телеграма?

Как-то гугление и чтение док не принесло быстрого ответа. То что есть либо старое 3-8 лет, либо там какие-то шаманские пляски с бубном - скачай ZIP, возьми оттуда бинарную библиотеку под линукc.

Вдруг есть что-то простое - добавил как gradle зависимость и пошел работать.

C bot API все прекрасно. А вот с клиентской библиотекой прям беда.

PS: ну или не для Ява а для NodeJS хотя бы или Питона или дотнета. Заверну тогда в микросервис ее.

UPD: По ходу нашлось, как всегда не догуглил 10 минут https://github.com/tdlight-team/tdlight-java

UPD2: Вот еще похоже вариант https://github.com/Telegram4J/Telegram4J

[моё] Telegram Java Программирование Текст
5
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии