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

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

08.01.2025, 12:45. Показов 49518. Ответов 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
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,675
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
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
08.01.2025, 19:02
Royal_X, спасибо, учту.
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,240
Записей в блоге: 3
08.01.2025, 19:59  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
SFML поддерживает трубы - каналы?
зачем ему трубы если у него есть сокеты?
сокеты будут покруче труб)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,675
08.01.2025, 20:16
Цитата Сообщение от XLAT Посмотреть сообщение
сокеты будут покруче труб
...в той же степени, в которой sfml эталон Когда нет грузовика, чтобы дрова развозить, можно и в салон ламборгини закинуть.

Добавлено через 2 минуты
XLAT, создай мне тогда на сокетах попугая командной строки. Хочу увидеть эту порнографию. Только делай так, чтобы брандмауэр не блокировал шнягу.
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,240
Записей в блоге: 3
08.01.2025, 20:27  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
попугая
я глянул бенчмарк - все путем
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 10:06
Цитата Сообщение от Royal_X Посмотреть сообщение
Хотя, если рисовать в буфере, то и без нее все очень быстро.
Там же почти отсутствует анимация. Смайлик не в счет. Я вот никак не могу понять алгоритм открытия пустых регионов на поле когда игрок выбирает пустую клетку. В чем прикол так и не могу понять.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,675
10.01.2025, 11:17
CoderHuligan,

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

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

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

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

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

Плюс это часть алгоритма вскрытия соседей: если в оригинальной игре нажать на клетку обеими клавишами мыши, то происходит попытка вкрытия всех соседних с ней клеток и если все мыны вокруг клетки помечени флажком происходит автоматическое вскрытия не помеченных клеток.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 13:18
Цитата Сообщение от Royal_X Посмотреть сообщение
Ну то есть, пустые открытые не должны граничить с цифрами?
С цифрами - могут, с минами - нет.
Цитата Сообщение от XLAT Посмотреть сообщение
алгоритм УБИРАЕТ РУТИНУ с их открытием, просто открывая их все сразу.
Не только это. Это еще и подсказка игроку, так как пустой регион имеет границу, которая состоит из клеток с цифрами (не равными 0).
Цитата Сообщение от XLAT Посмотреть сообщение
желательна хитрая генерация минного поля без полного открытия безминных зон за один раз,
ну, что бы интереснее был холодок у игрока.
Это имеет смысл если уровень сложности максимален.
Цитата Сообщение от XLAT Посмотреть сообщение
касаемо клеток, ну, обычно их открытие кодят рекурсивно,
но можно тут и поумничать)
Я бы сделал по своему, через список. Но это уже детали. Вообще если все делать в лоб, то тут ничего особо сложного нет. Мне интересна архитектура данного проекта. Игра сама по себе меня мало интересует. Интересует организация кода и алгоритмы. К примеру игровое поле можно представить в виде матрицы, а в ячейках числа определяющее состояние каждой ячейки. а можно загнать все клетки в список и обрабатывать уже его. Но даже не это главное. Ведь делать то надо на плюсах, а тут нужно тотальное ООП. Как это сделать через объекты? Что считать объектом, а что нет? Вот что интересно. Так как я в c++ пока не очень силен, но в общих чертах, понимаю как ооп тут работает, поэтому хочется именно через классы сделать. В лоб не интересно.
1
 Аватар для Annemesski
2691 / 1348 / 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
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.01.2025, 13:49
Цитата Сообщение от Annemesski Посмотреть сообщение
эффект ровно такой же как если бы игрок ручками открывал каждую клетку в отдельности
Тогда было бы больше шансов подорваться. Игра стала бы менее интересной. Ведь в обычных играх алгоритм хотя бы чисто теоретически позволяет игроку выиграть, если он не будет ошибаться. В данной игре это не так, вернее не всегда так. Тут иногда на удачу надо открывать.
Цитата Сообщение от KSergey9 Посмотреть сообщение
Куча сайтов с готовый реализацией нагугливается.
А я конечно нагуглил. Один проектик на чистом си даже проштудировал. Но конечно посмеялся, от того как он реализован, но интересно было. Я бы по своему сделал, не так как там, вообще по другому. Там SDL использовалась, а я хочу на gdi+ и на с++.
Цитата Сообщение от KSergey9 Посмотреть сообщение
Для сапёра вообще ООП не требуется.
Понятное дело, что можно ВСЁ сделать без ооп. Но хочется именно через ооп)) Ну вот такой у меня бзик. Причем понимаю, что медленнее работать будет (скорее всего). Я вот смотрю на то, как реализовано ооп в gdi+, и думаю, что вот он пример правльной архитектуры объектно-ориентированной библиотеки, когда наследование используется редко и только там, где оно действительно нужно, а каждый класс по сути самостоятелен.
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,240
Записей в блоге: 3
10.01.2025, 13:59  [ТС]
Цитата Сообщение от KSergey9 Посмотреть сообщение
Для сапёра вообще ООП не требуется.
в моем случае сапер это часть абстракции,
абстракция же подразумевает наличие множества:
- сапер
- тетрис
- морской бой
- арканоид
- про шарики в ряд и не в ряд - 100500 всех видов
- ещё 100500 вариантов из пространства для геймдизайнера
- ...

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

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

короче это не движок, скорее общий шаблон...
0
 Аватар для CoderHuligan
1753 / 1019 / 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
Закрытая тема Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru