|
Just Do It!
|
||||||||
Совместное создание игры08.01.2025, 12:45. Показов 52762. Ответов 942
Метки нет (Все метки)
если ТС готов варганить со мной сапера, то я сделаю ещё одну попытку его(пожалуй 4 версию) установить и испытать. собсно что нужно: формально отображать некие графические модели на экране в нужном его месте нужного масштаба, для теста сойдут спрайты - а потом можно и анимированные модели на усмотрение геймдиза)) и больше ничаво.
0
|
||||||||
| 08.01.2025, 12:45 | |
|
Ответы с готовыми решениями:
942
Для чего создан язык С++? создан массив Теория игр, массивы |
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 19.02.2025, 15:38 | |
|
1
|
|
|
|
|
| 19.02.2025, 16:04 | |
|
Создаем фирму "Simple little programs". У неё не будет конкурентов.
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 19.02.2025, 19:13 | ||
![]() В видео присутствуют ненормативная лексика. Super Bunny Man
1
|
||
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
|
| 19.02.2025, 19:52 | |
|
SmallEvil, любая говно-игра прикольна, если это мультиплеер. Но одиночная игра была бы скучной.
1
|
|
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
|
| 20.02.2025, 23:31 | |
|
gunslinger, XLAT, SmallEvil, CoderHuligan, я взял картинку и раздробил её на куски 32 х 32. Высота и ширина оригинальной картинки делились на 32, поэтому без проблем создал куски. Получилось 384 куска, которые во вложении. Куски я не вращал. Названия кусков рандомные.
Задание: склеить куски, восстановить оригинальную картинку и выложить ее на форуме. Разрешено использовать что угодно, WinAPI, Qt, wxWidgets, SFML, SDL, OpenCV, VCL и т.д.
1
|
|
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
||
| 21.02.2025, 22:42 | ||
|
Написал прогу для склеивания, но есть несколько проблем. Во-первых, тайл, который должен быть в верхнем левом углу нужно указать вручную. Сколько не попытался вычислить данный тайл автоматически, не получилось. Во-вторых, с квадратными сетками проблем нет, но если оригинальное изображение были разделено по прямоугольной сетке (когда количество столбцов и рядов отличается), то иногда прога берет неверное количество столбцов... Одним словом, задача оказалась нелегкой. Не знаю, будут ли у вас интересные идеи.
0
|
||
|
Just Do It!
|
||
| 22.02.2025, 01:39 [ТС] | ||
|
зоны кусочка пазла: - левая - правая - верхняя - нижняя 2. каждая зона это матрица W x S - S сторона квадрата - W толщина зоны, где W >= 1 пиксель 3. далее как в шахматах - комбинаторика. 4. делаем оценку каждой пары зон - одна к 383 * 4 5. сортируем оценки 6. стыкуем в том месте, где они самые высокие. 7. готово. 8. для самых хитрожопых вычислителей всегда найдется такой рисунок в "горошек", который не вычисляется. 9. итого, рисунок должен иметь качество "вычисляемости".
1
|
||
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
|
| 22.02.2025, 02:40 | |
|
XLAT, не все так просто, как кажется. Попробуй написать прогу, поймёшь, что всё не так уж легко.
Сравнить края кусков несложно. Я написал код для этого за 10 мин где-то. Например, допустим нужно сравнить восточный край одного куска с западным краем второго куска. Тут просто вычисляется среднее арифметическое квадратов расстояний цветов пикселей (смысла вычислять квадратные корни нет). Таким образом, идеальное совпадение это 0, полное несовпадение это 4*255^2 (умножаем на 4 канала rgba). Это все отлично работает. У меня проблемы с определением левого верхнего куска. Когда он известен, остальные куски собирать не сложно. Я пытался его найти, путем перебора всех кусков, выбирая тот, у которого не находится ни северный, ни западный сосед с хорошим совпадением, но не всегда работает этот метод. Также проблема с определением размеров сетки. Если она квадратная, то все просто. Но допустим, 384 куска это 24 * 12. Как это определить, что именно там 24 * 16, а не 32 * 12, например? Использую я один способ, но он зависит от константной величины - порога соответствия, который я ввел в коде. Но для разных изображений этот порог должен быть разным, поэтому не всегда работает.
1
|
|
|
|
|
| 22.02.2025, 09:47 | |
|
У меня пока голова другими задачами забита, а то бы подключился. Может быть потом. Тут, думаю, не важно с какого тайла начать. Сравниваем по сторонам с оценкой граничных пикселей в каком-то диапазоне "весов". Когда все тайлы склеены, то первый угловой тайл найдется сам.
0
|
|
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
|||||||
| 22.02.2025, 14:37 | |||||||
|
XLAT, у меня несколько вопросов:
- какое предназначение верхней левой консольки? Показывает команды, но не пишет от кого идут. Тем более, в левой правой консольке все это уже есть, но реализовано получше - там уже показывает принадлежность команд к конкретным клиентам. - всё работает на одном ПК или оно может работать по всей LAN сети или даже через инет? - может ли сервер вырубать клиентов? Добавлено через 31 минуту Сейчас у меня такой код. Но, очевидно, его нужно полностью поменять. Мне этот код не нравится. Нужно придумать что-то получше.
1
|
|||||||
|
|
|
| 22.02.2025, 15:58 | |
|
Насколько понял, все куски перемешаны и надо определить что к чему подходит.
Такая идея. Создаем массив структур. В структуре есть 4 массива. Первый массив содержит верхнюю скан-линию пикселей изображения, 2 массив нижнюю, 3 - левый столбец, 4 - правый. И для каждого массива определяем bool что данная сторона обработана. Это чтобы не обрабатывать изображения целиком. То есть сперва подготавливаем и заполняем структуры. Потом заполняем ими массив. Ну и соответственно затем взяв первую структуру проходим по массиву и ищем похожие скан линии и столбцы. Если нашли подходящую, склеиваем оба изображения и отмечаем, что стороны обработаны. Далее ищем следующую сторону первого изображения и так до 4 стороны. Далее переходим к следующему изображению. После того как прошли весь массив проверяем все ли стороны всех фрагментов обработаны, и прямоугольное ли изображение получилось, если всё ок, то заканчиваем.
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 22.02.2025, 18:06 | ||
|
Сравнивать смежные части(край в один пиксель) и сортировать их по схожести(разница в цвете RGB). Писать код, как то лень.
1
|
||
|
Just Do It!
|
||||||||
| 22.02.2025, 18:09 [ТС] | ||||||||
|
в данном месте выполняет роль окна логов от пула потоков с играми. можно в логе вывести такое кол-во инфы, которое даже Айнштайн своим моском не переварит. по идее тестировщику без разницы что от кого идет - главное чтобы не было индикаций ошибок. здесь я воображаю хацкерский клиент, желающий угробить сервер, но задача сервера выжить... сервер может посылать на клиент любые команды, клиент их будет принимать все и далее либо игнорить, либо фильтровать и выполнять... сервер не может заставить клиент выполнить команду(и наоборот), которая не прописана в holderRPC. выше правило можно расширить на исполняемые текстовые скрипты ... можно ли запустить 2000 клиентов на одном ПК, разумеется, облегчив их от всякого огл и т.п.? и в связи с этим - какой лог мне будет нужен?
1
|
||||||||
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
||
| 22.02.2025, 19:25 | ||
|
SmallEvil, ты пишешь как CoderHuligan, а именно, абстрактными терминами, которые мне ничем не помогут. Я же написал, что я столкнулся с конкретной проблемой. Даже не то чтобы столкнулся с проблемой, но дошел до того момента, что нужно найти самое верное решение и только потом продолжить.
Внимательно прочтите это: никаких проблем со сравнениями пикселей у меня нет, я все это уже написал, причем в первый же день, когда решил начать этот проект. Написал всё это за 10 мин (потратил столько времени на настройку проекта, реализацию загрузки изображений с папки и все прочее). А сейчас даже реализован процесс склеивания и отображения цельного изображения. Т.е. для каждого куска я могу без проблем определить, какой кусок ему больше подходит слева, справа, сверху и снизу. Вопрос: ну а дальше-то что? 1. Как определить, сколько кусков должно быть в ширину, и сколько кусков в высоту? Если известно, что оригинальное изображение квадратное, то тогда проблем нет. Но ведь первоначальное изображение может быть прямоугольным. 2. Как составить двумерный массив с индексами кусков, расположенных в правильном порядке? Потому что я уже написал код, который берет такой массив и выводит цельное изображение на экран. Примечание: ответы на эти вопросы у меня есть, и даже написан код по этим проблемам. Но он мне не устраивает, из-за того, что работает коряво. Поэтому хочу услышать разные мнения.
1
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 22.02.2025, 20:22 | ||||
|
Первой присваиваешь парный индекс, (0, 0), следующей, которую "клеишь" в зависимости к какому краю, допустим к верхнему (-1,0). using index_type = unsigned; // индексы наших кусочков [0, N-1], N - количество кусочков set<<pair<int,int>, index_type>> map_of_parts; Сортировать по сначала по X, потом по Y. Так в наборе будут идти кусочки ряд за рядом. Сколько будет в ряду кусочков, ты и сам можешь узнать. Добавлено через 3 минуты С X и Y, разберешься. Я тут напутал в примере. Первый индекс у меня отвечает за строки, то есть за Y.
0
|
||||
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
|||
| 22.02.2025, 20:48 | |||
|
1 384 2 192 3 128 4 96 6 64 8 48 12 32 24 16 32 12 48 8 64 6 96 4 128 3 192 2 384 1 В моей реализации, идеальное совпадение это 0 (прям когда все пиксели совпадают), а худшее совпадение это 260100. Я вот перебираю и ищу, с какой стороной это значение меньше всего. Конечно, можно представить переменную Порог и если значение выше этого порога, то значит считаем, что эта сторона не должна ни с кем склеиваться. Именно это я и делал в своем коде. Но данный подход корявый, потому что для одного изображения значение порога норм, но для другого - нет, и нужно брать другой порог...
0
|
|||
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
||
| 22.02.2025, 21:02 | ||
|
Например, представь, что есть такое изображение И допустим мы проверяем верхний левый кусок, а именно его правую сторону, на соответствие. Если мы будем искать всего по двум сторонам, то может быть так, что мы во время проверки столкнемся с куском, который сейчас отображен в верхнем правом углу. Проверка покажет, что правая сторона нашего куска идеально совпадает с левой стороной верхнего правого куска. Однако, правильный кусок это верхний посередине. Т.е. я это к тому, что проверять нужно все стороны и только потом делать выводы.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 22.02.2025, 21:22 | |||
|
И где то будет ""косяк". Значит нужно подбирать до тех пор, пока косяков не будет. Сколько может быть вариантов? В плохом случае, наверное много. Добавлено через 1 минуту Вообще, на пазлах пишется сколько кусков 200*80, например. Добавлено через 2 минуты А может и нет)) Но там есть картинка. Добавлено через 1 минуту
0
|
|||
|
6771 / 3138 / 1065
Регистрация: 01.06.2021
Сообщений: 12,180
|
||
| 22.02.2025, 22:03 | ||
|
Но ведь с автоматическим определением было бы интереснее. Я вчера даже написал код для авто определения, но опять же все зависит от некой магической константы для порога совпадения, поэтому не всегда размер определяется правильно.
0
|
||
| 22.02.2025, 22:03 | |
|
Решение матричных игр. Есть у кого такая программа написанная уже... Запуск приложений(старых игр) в оконном режиме Алгоритм календаря игр (например в футболе)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|