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

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

08.01.2025, 12:45. Показов 46029. Ответов 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
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
13.01.2025, 00:31
Студворк — интернет-сервис помощи студентам
filt_file(9).mp4
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 00:40
XLAT, ты вручную блоки комментов делаешь или каким-нибудь плагином?
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
13.01.2025, 00:52  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
ты вручную блоки комментов делаешь или каким-нибудь плагином?
копипаста форева.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
13.01.2025, 06:59
Цитата Сообщение от XLAT Посмотреть сообщение
|   3. При клике на ячейке она открывается. Если в ней находится мина,        |
|   назначается штраф в размере 10 секунд, в течение которых поле недоступно.
В винде я что-то не видел, что бы игра начиналась с мины - хотя я и не фанат этой игры. Следовательно - сперва человек кликает по клетке, затем осуществляется расстановка мин.
2
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
13.01.2025, 08:43
Цитата Сообщение от Royal_X Посмотреть сообщение
Еще немного оптимизировал игру) Она в архиве.
А исходников не будет?
Я про hi res хотел посмотреть (на как таковое качество кода мне поплевать при чтении, если это смущает)
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
13.01.2025, 09:35  [ТС]
Цитата Сообщение от alexu_007 Посмотреть сообщение
В винде я что-то не видел, что бы игра начиналась с мины - хотя я и не фанат этой игры
1.
верно.
поэтому я дал ссыль на оригинал - потому что это копипаста.

2.
я не стал редактить, потому что в общей идеологии целеуказания я допускаю отход ТЗ от классики.

3.
без ТЗ код был бы ни о чем - поэтому я не поленился потратить 1 минуту гугла,
шоб добавить общее описание того что я делаю.

4.
изначально, я туда хотел добавить "чекбоксы"
Code
1
2
[+] сделано.
[-] не сделано.
но для этого само ТЗ нужно переписать.

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

6.
и важное уточнение:
Цитата Сообщение от XLAT Посмотреть сообщение
дописал модель
речь про то, что я добавил туда кода, но я ещё не закончил))
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 11:08
alexu_007, я думал об этом, что типа плохо, когда игра начинается с мины. Но а потом подумал, мол а какая разница: взорваться на первом ходу или втором? Почему минное поле должно жалеть игрока и сделать исключение для первого хода? Ну вот, предположим, что на первом ходу не будет мины, а откроется какое-то число. Это же не даёт гарантии, что ты не взорвешься на втором ходу. В итоге, решил, что лучше оставить "честный рандом".
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
13.01.2025, 11:43
Цитата Сообщение от Royal_X Посмотреть сообщение
а какая разница
В вики написано, что игроки жаловались, что их раздражает когда на первом шаге попадается мина. Поэтому переделали. Игра должна затягивать, а если на первом же шаге ты проигрываешь, это отбивает желание играть. Чистая психология.
Было бы интересно сделать так, чтобы игрок смог гарантированно выиграть, если не будет делать ошибок. Т.е. когда гарантированно существует стратегия выигрыша. Я об этом с самого начала думал. А то получается так: ты начинаешь игру, но на каком-то шаге вынужден делать ход наобум, наудачу. По сути русская рулетка. Гораздо интереснее рассчитать алгоритм выигрыша, когда точно знаешь, что он существует, иначе получается, что иногда теряешь время на принципиально неоднозначный вариант.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 11:53
Кстати, в интернете на всяких сайтах можно встретить одну интересную реализацию сапёра, в которой на первом ходу не может быть не только мины, но и числа. Т.е. первый ход там всегда пустое поле, соответственно открывается сразу несколько полей. По такому же принципу работает сапер и от гугла.

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

CoderHuligan, я считаю, что существует два варианта:

1. Реализуем честный рандом для поля и не даем игроку никаких гарантий, что он обязательно выиграет при правильной игре. Это то, что я реализовал в своей игре.

ЛИБО

2. Даем игроку гарантию, что при правильной игре он ВСЕГДА может выиграть. В таком случае, во время первого хода не может не открываться ни мина, ни одно число, а должно открываться несколько полей, причем так, чтобы пользователь смог уверенно сделать свой второй ход, не попадясь гарантированно на мину.

Но, как по мне, второй вариант - отстой. Пропадает страх. Игрок превращается в тупого кликера.

Тот же отстой, если помогать игроку частично. Мол на первом ходу убрать мины, но вот не гарантировать дальнейший выигрыш при правильной игре. В чем тогда разница, взорваться на первом или втором ходу?
1
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
13.01.2025, 13:15
Т.к. сапёр игра как бы про подумать (ну кроме некоторой удачи), то вариант, при котором первый ход не приводит к взрыву - очень здравый. Это соответствует ожиданиям игрока, его настрою.
Это как если бы первый ход в шахматах мог тут же приводить к проигрышу, причем даже не какой именно - было бы очень странно. Даже детский мат не такой обидный, потому как понимаешь, что в принципе у тебя были варианты, зависящие только от тебя, чтобы хотя бы не так быстро проиграть гроссмейстеру.

PS
До сообщений в этой теме даже не задумывался про нюанс с тем, что первый ход - всегда мимо мины. Клёвое наблюдение.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 13:24
Цитата Сообщение от KSergey9 Посмотреть сообщение
то вариант, при котором первый ход не приводит к взрыву - очень здравый.
а если второй ход приводит к взрыву? Если честно, я не понимаю данную логику. Уж лучше взорваться сразу на первом ходу, если такой неудачник, нежели взорваться на втором, третьем ходу...потеряв только время)

другое дело, если реализовать то, о чем уже писал CoderHuligan, т.е. сделать так, что игрок гарантированно выигрывает при правильной игре. Однако, в таком случае игра полностью теряет свои характеристики. Так, одной из характеристик сапёра является то, что это игра на вероятность. Именно вероятность - расположение мин - должны решать всё в данной игре. Если вам нужно обязательно выиграть, так играйте в шахматы) И почему никто не говорит, что как можно попасться на мину на первом ходу, так можно еще и выиграть одним щелчком на первом ходу...
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
13.01.2025, 13:55
Цитата Сообщение от Royal_X Посмотреть сообщение
так можно еще и выиграть одним щелчком на первом ходу...
Вероятно это как раз учтено в алгоритме расстановки мин. Во всяком случае исключить такой вариант расстановки имеет смысл.

Цитата Сообщение от Royal_X Посмотреть сообщение
а если второй ход приводит к взрыву?
Второй ход я в любом случае делаю осознанно, у меня есть хоть какая-то информация (хоть и не полная в классическом случае). Т.е. психологически можно сказать "я сам виноват". Как минимум можно исключить гарантированно заминированные клетки.
А вот первый ход - он абсолютно случайный, у меня нет вообще никакой информации. А игра всё же не просто "угадайка", но и про "я умный"

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
Однако, в таком случае игра полностью теряет свои характеристики
Возможно, теряет, тут надо тестировать.
Хотя тут всё же остаётся вариант простой человеческой ошибки, т.е. полностью интересной игра быть не перестаёт (если не пользоваться каким-либо электронным подсказчиком, т.е. гарантированно исключить собственную ошибку)
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 14:21
KSergey9, поиграв в инете разные сапёры, я понял, что игра не имеет стандартизированных правил. Каждый разработчик волен делать так, как считает нужным. Я вот решил, что мина может быть уже на первым ходу, равно как и победа.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
13.01.2025, 15:06
Цитата Сообщение от Royal_X Посмотреть сообщение
второй вариант - отстой
Да, конечно элемент опасности теряется. Можно предложить такой вариант: игрок открывает клетку, и если там мина, то ему дается фора в виде времени, на открытие другой ячейки. Ну, такая мина с часовым механизмом)). Если время истекает, то конец. Ладно, всё это не принципиально, так как задача ставилась просто обучение определенным вещам на реальном проекте. Я, вот, уже научился тайлы доставать из картинки и выводить их на gdi+

Добавлено через 3 минуты
Делается это примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
Graphics g(hdc);
 
    Image* pImage=Image::FromFile(L"t2.png");
    ImageAttributes ImgAtt;
    ImgAtt.SetWrapMode(WrapModeTile);
    RectF rcDrawRect;
    rcDrawRect.X=0;
    rcDrawRect.Y=0;
    rcDrawRect.Width=16;
    rcDrawRect.Height=16;
    g.DrawImage(pImage,rcDrawRect,0, 32,16,16, UnitPixel,&ImgAtt);
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 15:15
Цитата Сообщение от CoderHuligan Посмотреть сообщение
уже научился тайлы доставать из картинки и выводить их на gdi+
картинки пусть будут ресурсами, чтобы они были внедрены в exe, как вот я сделал

Добавлено через 6 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ладно, всё это не принципиально, так как задача ставилась просто обучение определенным вещам на реальном проекте.
Согласен.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Да, конечно элемент опасности теряется. Можно предложить такой вариант: игрок открывает клетку, и если там мина, то ему дается фора в виде времени, на открытие другой ячейки. Ну, такая мина с часовым механизмом)). Если время истекает, то конец.
Я вот начал делать 3d сапер, и тоже есть пару интересных идей. Но у меня много другой работы, поэтому поставил разработку на паузу. Программирование для меня хобби. Сапер на GDI+ не занял много времени. Но вот сейчас нужно вложить еще времени, чтобы реализовать новые идеи, а времени у меня нет.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
13.01.2025, 15:35
Цитата Сообщение от Royal_X Посмотреть сообщение
картинки пусть будут ресурсами
Конечно. Из ресурсов надо загружать. Функцию в сети нашел.
0
0 / 0 / 0
Регистрация: 13.01.2025
Сообщений: 2
13.01.2025, 16:16
Здравствуйте, помогите пожалуйста написать код на с++ для решения Л.Р, до этого момента не работал в с++
Миниатюры
Совместное создание игры  
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
13.01.2025, 16:31
Ilya89089, третье задание
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cmath>
 
int main()
{
    std::cout << "hypotenuse: ";
    double c; std::cin >> c;
    std::cout << "cathetus: ";
    double a; std::cin >> a;
    if (c > a)
        std::cout << std::sqrt(c*c-a*a);
}
1
0 / 0 / 0
Регистрация: 13.01.2025
Сообщений: 2
13.01.2025, 16:58
Спасибо!
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
13.01.2025, 17:21
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Из ресурсов надо загружать
Только через одно место придется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2025, 17:21

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
180
Закрытая тема Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru