Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/1: Рейтинг темы: голосов - 1, средняя оценка - 5.00
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3

Совместное создание игры

08.01.2025, 12:45. Показов 53070. Ответов 942
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий администратора 
Обсуждение вынесено из темы Ищу человека для совместного изучения программирования


Цитата Сообщение от Royal_X Посмотреть сообщение
Вот на моем неигровом ноуте последний UE без проблем запускается и не тормозит даже.
ок.
если ТС готов варганить со мной сапера, то я сделаю ещё одну попытку его(пожалуй 4 версию) установить и испытать.

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

и больше ничаво.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2025, 12:45
Ответы с готовыми решениями:

Для чего создан язык С++?
Для чего создан язык С++????

создан массив
создан массив автовладельцев, для каждого известны Ф.И.О., номер, адрес...,Выяснить есть ли автовладельцы у которых имеются больше 1-ой...

Теория игр, массивы
Есть задание (прикрепил его в виде файла к сообщению). Есть решение для 12-ого варианта на BORLANDC, у меня 2-ой. Я изменил в начале...

942
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,194
08.01.2025, 18:32
Студворк — интернет-сервис помощи студентам
CoderHuligan, вот туториал
https://ravesli.com/sozdayom-igru-sapyor-v-s-sfml/
И таких в инете полно. Так что, создать можно быстро. Ну если разраб никогда не слышал о данной игре, возможно, за час и не справится, хз.

А вот сделать на винапи, например, вообще не проблема. И, кстати, имхо gdi+ это единственный оптимальный выбор. Я его всегда использую, ибо gdi много чего не поддерживает: прозрачность, сглаживание и т.д. А вот погружаться во всякие DirectX это перебор.


CoderHuligan, только когда будешь делать на винапи, в частности на gdi+, то пожалуйста рассчитывай размеры правильно, и включи dpi поддержку в манифесте. А то потом на устройствах с высоким разрешением монитора игра будет уродливой. Вот у меня OLED дисплей и все проги, которые это не учитывают, размыты...

Единственный минус gdi+ это отсутствие аппаратного ускорения. Хотя, если рисовать в буфере, то и без нее все очень быстро.
1
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
08.01.2025, 19:02
Royal_X, спасибо, учту.
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
08.01.2025, 19:59  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
SFML поддерживает трубы - каналы?
зачем ему трубы если у него есть сокеты?
сокеты будут покруче труб)
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,194
08.01.2025, 20:16
Цитата Сообщение от XLAT Посмотреть сообщение
сокеты будут покруче труб
...в той же степени, в которой sfml эталон Когда нет грузовика, чтобы дрова развозить, можно и в салон ламборгини закинуть.

Добавлено через 2 минуты
XLAT, создай мне тогда на сокетах попугая командной строки. Хочу увидеть эту порнографию. Только делай так, чтобы брандмауэр не блокировал шнягу.
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
08.01.2025, 20:27  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
попугая
я глянул бенчмарк - все путем
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 10:06
Цитата Сообщение от Royal_X Посмотреть сообщение
Хотя, если рисовать в буфере, то и без нее все очень быстро.
Там же почти отсутствует анимация. Смайлик не в счет. Я вот никак не могу понять алгоритм открытия пустых регионов на поле когда игрок выбирает пустую клетку. В чем прикол так и не могу понять.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,194
10.01.2025, 11:17
CoderHuligan,

Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с только что открытой, «заминировано» (в каждом варианте игры соседство определяется по-своему); используя эти числа, игрок пытается рассчитать расположение мин, однако иногда даже в середине и в конце игры некоторые ячейки всё же приходится открывать наугад. Если под соседними ячейками тоже нет мин, то открывается некоторая «не заминированная» область до ячеек, в которых есть цифры.
Я так понимаю, в правилах не сказано, сколько пустых нужно открывать. Надо, в инете лучше попытаться найти описание процесса оригинального сапера.
Наверное, глупо открывать все клетки, в которых пусто (нет мин и нет цифр). Возможно, нужно ставить какой-то лимит
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 11:38
Цитата Сообщение от Royal_X Посмотреть сообщение
в правилах не сказано, сколько пустых нужно открывать.
Вот именно. И в инете сколько гуглил ничего внятного не нашел. Короче каждый изголяется как сам понимает. Естественно должен быть лимит на открытие, иначе могут открыться все пустые. Я пытаюсь понять играя в оригинального сапера, но до сих пор логика не ясна. Наверно нужно дизассемблировать оригинальный алгоритм, если точно надо скопировать поведение. Иначе придется изобретать свой подход.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,194
10.01.2025, 11:53
CoderHuligan, возможно лимит рандомный. Порой открывается много, а порой пару штук, хотя пустых клеток много рядом
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 11:59
Цитата Сообщение от Royal_X Посмотреть сообщение
возможно лимит рандомный.
Я тоже так думал. Сейчас кажется дошло, что открываются только те клетки, в окружении которых нет мин. Вроде так.

Добавлено через 2 минуты
Цитата Сообщение от CoderHuligan Посмотреть сообщение
в окружении которых нет мин
Плюс те клетки, которыми ограничен вот это пустой регион, т.е. клетки с цифрами.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6771 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,194
10.01.2025, 12:07
CoderHuligan, то, что открытая пустая клетка не может граничить с миной - это ясно, иначе там была бы цифра. Ну то есть, пустые открытые не должны граничить с цифрами?
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
10.01.2025, 12:32  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Я вот никак не могу понять алгоритм открытия пустых регионов на поле когда игрок выбирает пустую клетку. В чем прикол так и не могу понять.
прикол в том,
что для игрока открытие этих клеток РУТИННАЯ задача,
т.е. такая задача для которой не требуется мыслительных напряжений,
поэтому алгоритм УБИРАЕТ РУТИНУ с их открытием, просто открывая их все сразу.

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

но это нюанс, можно забить пока.

касаемо клеток, ну, обычно их открытие кодят рекурсивно,
но можно тут и поумничать)
0
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
10.01.2025, 12:47
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Наверно нужно дизассемблировать оригинальный алгоритм
а можно не надо? Что там непонятного? Оригинальный сапер открывает все возможные клетки от текущей нажатой, алгоритм как три копейки:
1 копейка) открывается текущая нажатая клетка и от нее обходятся по порядку все оставшиеся 8 соседних клеток
2 копейка) если в клетке 0, то есть как факт ноль или число в клетке полностью компенсировано расставленными флажками бомб - значит клетка автоматически открывается, при этом если флажки расставлены ошибочно игрок взрывается на автоматически вскрытой клетке с миной не помеченной флажком (клетки помеченные флажком не вкрываются ни автоматически ни при нажатии.
3 копейка) каждая автоматически открытая клетка является центром нового каскада вскрытия соседних клеток.

Плюс это часть алгоритма вскрытия соседей: если в оригинальной игре нажать на клетку обеими клавишами мыши, то происходит попытка вкрытия всех соседних с ней клеток и если все мыны вокруг клетки помечени флажком происходит автоматическое вскрытия не помеченных клеток.
1
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 13:18
Цитата Сообщение от Royal_X Посмотреть сообщение
Ну то есть, пустые открытые не должны граничить с цифрами?
С цифрами - могут, с минами - нет.
Цитата Сообщение от XLAT Посмотреть сообщение
алгоритм УБИРАЕТ РУТИНУ с их открытием, просто открывая их все сразу.
Не только это. Это еще и подсказка игроку, так как пустой регион имеет границу, которая состоит из клеток с цифрами (не равными 0).
Цитата Сообщение от XLAT Посмотреть сообщение
желательна хитрая генерация минного поля без полного открытия безминных зон за один раз,
ну, что бы интереснее был холодок у игрока.
Это имеет смысл если уровень сложности максимален.
Цитата Сообщение от XLAT Посмотреть сообщение
касаемо клеток, ну, обычно их открытие кодят рекурсивно,
но можно тут и поумничать)
Я бы сделал по своему, через список. Но это уже детали. Вообще если все делать в лоб, то тут ничего особо сложного нет. Мне интересна архитектура данного проекта. Игра сама по себе меня мало интересует. Интересует организация кода и алгоритмы. К примеру игровое поле можно представить в виде матрицы, а в ячейках числа определяющее состояние каждой ячейки. а можно загнать все клетки в список и обрабатывать уже его. Но даже не это главное. Ведь делать то надо на плюсах, а тут нужно тотальное ООП. Как это сделать через объекты? Что считать объектом, а что нет? Вот что интересно. Так как я в c++ пока не очень силен, но в общих чертах, понимаю как ооп тут работает, поэтому хочется именно через классы сделать. В лоб не интересно.
1
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
10.01.2025, 13:25
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Это еще и подсказка игроку
нет там никакой подсказки, КСЛАТ правильно сказал - это только рутина, эффект ровно такой же как если бы игрок ручками открывал каждую клетку в отдельности с учетом того что в "пустых" клетках просто бы открывалась цифра ноль.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.01.2025, 13:35
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Наверно нужно дизассемблировать оригинальный алгоритм
"сапёр онлайн"
Куча сайтов с готовый реализацией нагугливается. Можно посмотреть что как сделано и вообще на С++ забить, раз в вебе всё можно это напрограммировать
Нагляднее, прикольнее

Добавлено через 3 минуты
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Что считать объектом, а что нет?
Да пофик.
Для сапёра вообще ООП не требуется.
А если для поупражняться - то любое ООП сгодится, ибо в любом варианте ООП-представления будут как удобства, так и грабли.
Так сделать, сяк сделать - будет понятно где какие плюсы-минусы. Пока не сделаешь до конца несколько вариантов - не узнаешь (и не скажет никто) где что лучше, а где что нет.
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 13:49
Цитата Сообщение от Annemesski Посмотреть сообщение
эффект ровно такой же как если бы игрок ручками открывал каждую клетку в отдельности
Тогда было бы больше шансов подорваться. Игра стала бы менее интересной. Ведь в обычных играх алгоритм хотя бы чисто теоретически позволяет игроку выиграть, если он не будет ошибаться. В данной игре это не так, вернее не всегда так. Тут иногда на удачу надо открывать.
Цитата Сообщение от KSergey9 Посмотреть сообщение
Куча сайтов с готовый реализацией нагугливается.
А я конечно нагуглил. Один проектик на чистом си даже проштудировал. Но конечно посмеялся, от того как он реализован, но интересно было. Я бы по своему сделал, не так как там, вообще по другому. Там SDL использовалась, а я хочу на gdi+ и на с++.
Цитата Сообщение от KSergey9 Посмотреть сообщение
Для сапёра вообще ООП не требуется.
Понятное дело, что можно ВСЁ сделать без ооп. Но хочется именно через ооп)) Ну вот такой у меня бзик. Причем понимаю, что медленнее работать будет (скорее всего). Я вот смотрю на то, как реализовано ооп в gdi+, и думаю, что вот он пример правльной архитектуры объектно-ориентированной библиотеки, когда наследование используется редко и только там, где оно действительно нужно, а каждый класс по сути самостоятелен.
0
Just Do It!
 Аватар для XLAT
4223 / 2689 / 656
Регистрация: 23.09.2014
Сообщений: 9,252
Записей в блоге: 3
10.01.2025, 13:59  [ТС]
Цитата Сообщение от KSergey9 Посмотреть сообщение
Для сапёра вообще ООП не требуется.
в моем случае сапер это часть абстракции,
абстракция же подразумевает наличие множества:
- сапер
- тетрис
- морской бой
- арканоид
- про шарики в ряд и не в ряд - 100500 всех видов
- ещё 100500 вариантов из пространства для геймдизайнера
- ...

поэтому ООП требуется.

тупо тут можно выйти на движок, но движок из игровой логики, без погружение в низкоуровневую канализацию...

короче это не движок, скорее общий шаблон...
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 14:00
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Но хочется именно через ооп))
И так, как лично я понимаю это ооп)).
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.01.2025, 14:00
Цитата Сообщение от CoderHuligan Посмотреть сообщение
хочу на gdi+ и на с++.
Хотя бы игровое поле уже рисуется? пара дней уж прошла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2025, 14:00

Решение матричных игр. Есть у кого такая программа написанная уже...
Требуется программа по решению матричных игр... С выбором размера матрицы и выдачей решения... Может кто смогёт такую сбатцать?

Запуск приложений(старых игр) в оконном режиме
День добрый, подскажите, хотелось бы реализовать свое желание запуска старых игр windo`вых(типа StarCraft) в оконном режиме, с чего начать,...

Алгоритм календаря игр (например в футболе)
необходимо составить календарь футбольных матчей, допустим есть 6 команд char *teams = {"TEAM A","TEAM B","TEAM...

Движок для игр
Всем привет!!!, хотел узнать возможно ли создать движок на C++ чтобы экспортировать модели из 3ds max а после в самом движке можно было...

Выбор IDE для создания 2D игр
Здравствуйте. Задача сделать пака 2ух – мерные драчки загружая в проект анимацию-как удар(ы) и реакция на удар...(лучше всего секвенцию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №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, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru