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

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

08.01.2025, 12:45. Показов 45620. Ответов 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
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
23.01.2025, 11:09  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
у меня будет с хорошим гуем
ты сделал ещё один шаг ближе к пониманию,
что дело не в сапере и не в ascii генераторе))

следующая вершина: дело не в гуе ...
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
23.01.2025, 16:17
Как по мне, большое количество символов не улучшают ситуацию.

0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
23.01.2025, 16:57  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
большое количество символов не улучшают ситуацию.
подбирай правильно шрифты))

Цитата Сообщение от XLAT Посмотреть сообщение
дело не в сапере
дело в правильной иконке на ексеху,
но я взял первую сгенеренную из нс...

минное поле рандомно от 100 до 10'000 тысяч ячеек ... надо проверить 100'000'000 ячеек потянет? ...
плотность бомб тоже рандомная:

управление:
Code
1
2
мышь: клики левой правой по полю для игры, колесо масштаб.
клава: escape-(в лого), space-(в игру), enter-(в игру), delete-(restart), "W","S"-(мастшаб), курсор - (ходьба по полю).
это не релиз:
Вложения
Тип файла: rar Сапёр-bin-win64.rar (1.84 Мб, 10 просмотров)
2
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
23.01.2025, 17:16
Цитата Сообщение от Royal_X Посмотреть сообщение
большое количество символов не улучшают ситуацию.
Диафрагму прикрыть надо, пересвет.

Добавлено через 2 минуты
Я думаю символы не очень удачно подобраны, они не отличаются "яркостью", из-за этого контрастность сильно упала.

Добавлено через 1 минуту
С другой стороны исходное изображение - очень не контрастное само по себе. Переведи его в ч/б - ни о чем. Его только цвет спасает.
Миниатюры
Совместное создание игры  
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
23.01.2025, 17:21
Цитата Сообщение от KSergey9 Посмотреть сообщение
Я думаю символы не очень удачно подобраны, они не отличаются "яркостью"
Символы подобраны правильно. Просто, когда мы подбираем 10 символов, то разница сильно чувствуется. Но когда участвуют все символы, то естественно разница не очень большая.
Я все символы анализировал, вычислял закрашенную площадь, делал таблицу, сортировал.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
23.01.2025, 17:28
Цитата Сообщение от Royal_X Посмотреть сообщение
Но когда участвуют все символы, то естественно разница не очень большая.
Но это же вопрос подбора конкретного символа для передачи конкретной "яркости".
Символы должны адекватно различаться "яркостью" (плотностью штрихов), а не просто быть формально разными буквами.

Другое дело интересно сравнить: будет ли разница для случаев, когда для символа одной яркости мы используем один и то же символ, или когда для одной яркости мы используем разные (случайные) символы примерно одинаковой "яркости".

Добавлено через 1 минуту
А еще наверное есть хитрость для выбора символа в местах резких границ: идеально бы как-то подбирать символ, форма которого бы примерно тоже совпадала с характером этого перехода, приходящегося на его знако-место.
На эту мысль натолкнул шум из апострофов, которые формально должны были передать "малую среднюю яркость знакоместа", но они из-за своего начертания очень отлетели от контура, создав вместо этого просто некрасивый шум.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
23.01.2025, 18:53
KSergey9, так я же написал, что я анализировал все символы и сортировал их по площади заполнения. Чем больше символ заполняет, тем темнее. Причем я это делал для конкретного шрифта - Consolas, который я использую.
Просто когда у нас 10 символов, то картинка получается контрастной. Когда же я использую все символы ASCII, то картинка, хоть и становится более реалистичной, особенно при большом разрешении, при маленьких размерах теряет контрастность
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
23.01.2025, 19:55
Вот все символы в шрифте Consolas, сортированные от белого к черному, с указанием в процентах темной части. Также залил серым цветом вокруг символа, чтобы была видна граница символа. Да, для Consolas она не квадратная, поэтому выравнивать ширину и высоту нужно программно.
Это уникальная инфа, в инете ее нет. Может кому-то пригодится. С открывающими и закрывающими скобками нет ошибки, они и вправду отличаются. Это, наверное, баг самого шрифта. Если кому-то нужна статистика для другого шрифта, напишите мне, я для вас сделаю.


Наверное, нужно подобрать из них, тех, которые дадут хороший контраст, причем так, что разница между двумя соседними была константной. Также, наверное нужное выбирать те символы, которые находятся в центре и симметрично распределены, а не с дыркой в центре (например, Q и g имеют почти одинаковое значение, но у Q пустота в центре, поэтому лучше выбирать g).
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
23.01.2025, 20:02
А как насчет моей любимой cp866?))
https://avatars.mds.yandex.net... humbs&n=13
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
24.01.2025, 00:39
CoderHuligan, отправь мне шрифт, я сделаю статистику. Нужен именно файл шрифта, а не картинка.

Добавлено через 4 часа 35 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
она не квадратная, поэтому выравнивать ширину и высоту нужно программно
Вообще, не знаю, кто это придумал, но в Consolas высота символа в 2,139 раза больше ширины. Т.е. хоть и все символы monospace шрифта имеют одинаковую ширину, шрифт не гарантирует, что высота и ширина символов должны быть одинаковыми.
В Lucida Console высота символа в 1,66 раза больше ширины.
В Courier New высота символа в 1,88 раза больше ширины.
В Cascadia Mono высота символа в 2,255 раза больше ширины.

Соответственно, ASCII текстовая картинка выводится некрасиво. Как можно исправить данную проблему (отвечать не нужно)?
- Можно найти какой-то специфичный моноширинный шрифт, где высота и ширина будут одинаковыми
- Можно программно изменить размеры шрифта, сделав квадратными.
Но что не так с этим методами?
Конечно, эти методы покажут текст так, как и нужно. Но ведь текстовая картинка нужна, как правило, чтобы вставлять на различные форумы и т.п. Будешь ли ты использовать квадратный шрифт, форумам плевать. У них есть свой шрифт. И это будет обычный моноширинный шрифт. Соответственно, текстовая картинка отобразится на форуме криво.
По этой причине, я не рекомендую использовать ни редкие квадратные шрифты, ни менять масштаб оригинального моноширинного шрифта в программе-генераторе, ибо это ничего не даст.
Лучше просто на каждый пиксель по ширине выводить по два символа. Такая тактика компенсирует высоту, которая, грубо говоря, во многих моноширинных шрифтах в 2 раза больше ширины.

Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                        ::,,xxxx##                                                                                              
                        ::::::xxxx%%..                                                          ;;......                        
                        ::::::;;xxxxxx##  ;;::xxxxxx::;;                ;;xxooxxxx          xxxx;;....,,,,                      
                        ::::::::;;xxxxxxxxoo::xxxxxx;;::xxxx      xxxxxxxxxx;;::::        ::;;xx%%oo                            
                        ::::::::;;xx;;xxxx::::xxxxxx;;;;xxxxxxooxxxxxxxx;;::::::::        ;;::ooxx                              
                        ::::::::;;::;;::xx::::xxxxxx::;;xxxx;;::%%xxxx;;::::::::          xxxx%%                                
                          ::::;;;;;;;;;;;;::::::xx;;;;xxxx::::::xx%%xx;;::::::::          ::xx%%xx                              
                          ::::;;;;::;;;;;;;;;;;;::;;::;;::::;;;;;;;;oo;;;;::::,,          ::;;oooo                              
                          ::::::::oo;;ooxx;;;;::::::::::::::xx%%;;;;oo;;,,::::            ::::;;oo                              
                            ;;::::::,,    ;;;;::::::::::xx::@@%%xx;;;;oo::::..            xxxxxx%%                              
                            ;;::::;;  ::::  ;;::::::::oo..    ,,::;;;;oo::::              ;;xxxx%%;;                            
                            ::::::  ::  ##..xx::::::oo  oooooo,,oo;;;;oo;;                  ::;;xxxx                            
                          xxoo::::  ::@@@@,,oo::::::oo::xx@@,,  xx::;;ooxx                  ::::oooo                            
                        xxxxxxoo;;..;;oo,,  ::::::::oo::@@##,,  %%::;;oo%%                ..xx::oooo                            
                      ..ooxx........................oo..::::oo..;;::oo%%%%                ;;xxxx%%xx                            
                        ............::......;;,,::..........::,,..ooxx%%%%xx              ;;::%%%%##                            
                          ..........,,........;;............,,........xxxx%%@@%%::;;;;..;;::::;;oo                              
                            ............@@;;oo##....,,::,,............,,xx%%%%xx::;;xxxxxx%%xxoooo                              
                              ,,..........##::##%%####................,,oo%%%%::::xxxxxxxx::xx%%::                              
                                ,,........::::::::;;................,,,,xx%%xx::::xxxx;;;;::xx%%                                
                                    ,,......::::::oo..........,,,,,,%%xx%%%%::::xxxx;;;;::;;oo%%                                
                                          ,,............,,,,,,;;%%%%xxoo%%%%;;;;xxxx::;;::xx%%%%                                
                                            ,,,,::::::::::::%%%%xxoooo%%%%xx;;xxxx::::::xxxx%%%%oo                              
                                            ,,............,,::;;::::xx%%%%;;;;xx::::;;xxxxxx%%%%oo                              
                                            xx............,,::;;xxxxxxxx;;;;;;xx;;;;xxxxxx;;xxoo                                
                                            ;;............,,::xxxxxx::;;::::::;;;;xxxx;;::oooooo                                
                                            ;;..............::xxoo;;::::::::;;;;xxoo::::;;ooxxxx                                
                                            xxxx............,,;;::::::::::xxxx;;::::::::xx%%%%                                  
                                            xxxx  ..........,,,,::::::xxxxxxxx;;;;;;ooxxxx%%%%                                  
                                            ;;::;;,,......,,,,,,,,xxxxxxxxoo;;ooxxxxxxxxxxoooo                                  
                                            xxxxxxxx##,,....,,,,,,oo;;::xxxxxxoooo::::::::oooo%%                                
                                            ;;xxxxxxxxoo  ,,,,,,,,,,xxxxxxxx%%xx  ..::::;;;;xxxx                                
                                              ;;::::::oo            ;;;;;;;;ooxx    xxxxxxxx%%##                                
                                          ..,,,,::xxxx##              ::::oo%%%%    ;;;;;;oooo                                  
                                        ............,,              ,,......::;;....xxxxxxoo,,                                  
                                      ::,,::....,,,,                ....,,..;;........::%%                                      
                                          ,,,,,,                  ..,,..,,,,....,,..::::                                        
                                                                    ,,,,::,,,,,,::,,::
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
24.01.2025, 09:12
Цитата Сообщение от Royal_X Посмотреть сообщение
отправь мне шрифт
У меня есть коллекция данных шрифтов. Если интересно, то тут:
https://disk.yandex.ru/d/nYGztFzDu4tubQ
В винде где-то есть консольный cp866 шрифт. Вроде в папке winsxs, но не уверен.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.01.2025, 10:47  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Чтобы понять алгоритм, нужно его увидеть. Donald Knuth
причём тут Дональд? это я сказал, более того - я всегда так делаю...
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
24.01.2025, 11:41
Цитата Сообщение от XLAT Посмотреть сообщение
причём тут Дональд?
Я к нему чувствую большую симпатию.) Кстати ему уже 87 и он еще жив курилка. А полюбил я его за статью о goto, в которой он как обычно не стал вставать в строй goto-ненавистников, а попытался серьезно разобраться в вопросе. К сожалению я так и не прочитал полностью все его тома, так, иногда обращался за справкой по каким-то темам. Но хочу все же осилить..
А то, что взгляд на вещи совпал, ну что-ж - бывает.)
Вчера диалоги делал. Я каждый день что-то понемногу делаю. Много времени уходит, чтобы разбираться по ходу дела каким образом скрещивать win api и c++. Много ошибок вылазит пока не разберешься что к чему. самое главное теперь получаю и вставляю значения из диалогов.

Добавлено через 2 минуты
Надо вот еще окошко с helpом выводить. А для этого прокрутку юзать и шрифт устанавливать. А та, что в книге Петзольда сделана, что то мне подсказывает, что можно найти лучшее решение..
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.01.2025, 13:00  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
не стал вставать в строй goto-ненавистников
1.
лет 5 назад тут на форуме была кагорта кодеров любивших поговорить про протекающие абстракции.
да: абстракции текут - это факт.
а текут они потому что пытаются моделировать отношения объектов реального мира.
ну, кодеры на то они и кодеры, потому что они не проектировщики.

2.
вот это:
Цитата Сообщение от CoderHuligan Посмотреть сообщение
реализовать систему сообщений между объектами
как частный случай проектирования решения проблемы протекающих абстракций.

3.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
goto
можно сказать: "протёкшие абстракции" это увеличенный аналог goto

модель Z: "ВСЁ МОЖЕТ ИМЕТЬ СВЯЗЬ С ЧЕМ УГОДНО" при чем в реалтайм.

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

4.
я вижу как нейросеть как раз из оперы модели Z:
любые данные на входе спутываются между собой образуя одну общую картину матрицы весов.
но щас не про это...

5.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Допустим объект одного типа вызывает
объект такого же типа, а тот в свою очередь вызывает объект того же самого типа
это Модель CH)
уж слишком абстрактно!
нужна модель ближе к требуемой задаче или к требуемым задачам одного множества или множеству множесв и тд)

6.
например Модель АТС:
у нас есть город(или тт) с N абонентами, которые собсно объекты(или если не угодно, то субъекты)
каждый объект может позвонить любому другому объекту.
ок. предусматриваем АТС.
т.е. звонок(сообщение) идет не на прямую объекту, а через АТС.
и тд...

7.
Модель X - ближе к яп:
Есть некий Мир который состоит из N объектов.
Причем объекты это всё - мобы, дома, предметы, растения, дороги, реки,
короче всё что должен нарисовать рендер и даже, что и не должен.
объекты все эти разные - с разным состоянием и разными методами эти состояния обрабатывающие.
но их можно сложить в один массив через полиморфизм.
и далее опять и снова про ДИЗАЙН(делающий это чел не обязан знать ЯП) правил по которым одни объекты одного типа
будут взаимодействовать с другими объектами разных типов.

реализацию такой модели где тут на форуме я постил ~год назад.

8.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
образом скрещивать win api и c++
вот поэтому SFML эталон - минимальный набор классов из которых как из лего можно собрать недостающее,
используя исключительно свой моск, а не гуанодокументацию на 100500 макросов и тп из апи ...

9.
Цитата Сообщение от XLAT Посмотреть сообщение
это не релиз:
тут даже не начал)
тут такая метафизика:
- нужны "вау-фичи"
- нужна модель такого коллективного разраба, чтобы сама модель мотивировала)
вроде есть такие, но здесь на форуме я за 10 лет такого не видел ни разу! ))

закодить сапёра - например, тупо вбить промт в гпт может любой чсвшник
и потом всем рассказывать, что он уже все сделал.
нет. нужен такой сапер, который плавно мог бы перерасти в ММО или в наташкин точный ползунок)
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
24.01.2025, 13:30
Цитата Сообщение от XLAT Посмотреть сообщение
например Модель АТС:
Да, нужен механизм межобъектного взаимодействия. И к сожалению плюсы этого не предоставляют. Если в smalltok каждый объект функционирует в собственном потоке, то в плюсах в одном и том же. Поэтому там легко общаться между потоками асинхронно путем посылки сообщений, причем все это на уровне языка, а здесь это чревато разрушением системы. То есть в плюсах надо городить свою систему регистрации, свою систему очереди событий и т.п. То есть плюсы как бы кажутся объектно-ориентированным языком, а на самом деле лишь притворяется таковым.. Надо было полностью порвать связь с С..
Объект одного типа не может вызвать метод другого объекта того же типа, если эти методы не перегружены, то есть являются одинаковыми, и вызывают этот же метод но другого объекта, так как это чревато.. Где тут посылка сообщения?
Цитата Сообщение от XLAT Посмотреть сообщение
закодить сапёра - например, тупо вбить промт в гпт может любой чсвшник
Цитата Сообщение от XLAT Посмотреть сообщение
но их можно сложить в один массив через полиморфизм.
Угу, то бишь через наследование. А можно пойти по другому пути: в одном объекте объявляем указатели на другие объекты и делаем всё что хотим: создаем их, работаем, удаляем и пр. При этом каждый объект остается самостоятельной единицей, код проще и понятнее.
Коню понятно. Задача слишком проста. Но окружение - не просто, вот почему я заинтересовался. Для меня это чисто обучалка. мне так удобнее учиться на практике. Вот почему я выбрал не sfml, а чистые апи и гди+, хорошо осознавая, что занимаюсь извратом. Но этот изврат мне лично принесет и уже приносит огромную пользу, потому что я нарабатываю РЕАЛЬНЫЙ ОПЫТ.
А если делать настоящую игру, с, допустим, меню, не через апи, то конечно надо делать по нормальному и это будет красивше выглядеть. Думаю, всё впереди.
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
24.01.2025, 14:30
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А если делать настоящую игру, с, допустим, меню, не через апи, то конечно надо делать по нормальному и это будет красивше выглядеть. Думаю, всё впереди.
Вот и правильно, учи винапи, это всегда полезно. А нормальную игру будешь делать на игровом движке, и точно не на SFML.

SFML provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics, audio and network.
Описание одно, а реальная жизнь другое.
SFML нет даже в списке игровых движков на самом популярном сайте инди-игр: https://itch.io/game-development/engines

С тегом SFML сайт выдает менее 300 игр: https://itch.io/games/tag-sfml
Я не знаю, почему посмотрел на эти игры, теперь не знаю, как развидеть этот ужас.

И вообще, SFML не годится не только для создания игр, но и для создания пользовательских интерфейсов.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
24.01.2025, 16:23
Цитата Сообщение от Royal_X Посмотреть сообщение
Вот и правильно, учи винапи
Win api требуют много усилий на создание приложений, однако приложения получаются более быстрыми в работе.
Цитата Сообщение от Royal_X Посмотреть сообщение
Описание одно, а реальная жизнь другое.
Потому что большинство не хочет ручками все делать, а пользуются готовыми конструкторами.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,390
24.01.2025, 16:37
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Win api требуют много усилий на создание приложений
скорее, порог вхождения медленный, но скорость создания постепенно уравнивается и ничем не уступает скорости создания на всяких простых фреймворках.
Например, в простом фреймворке для создания шрифта может использоваться конструктор с именем шрифта и размером. Тогда как на winapi у нас
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HFONT CreateFontW(
  [in] int     cHeight,
  [in] int     cWidth,
  [in] int     cEscapement,
  [in] int     cOrientation,
  [in] int     cWeight,
  [in] DWORD   bItalic,
  [in] DWORD   bUnderline,
  [in] DWORD   bStrikeOut,
  [in] DWORD   iCharSet,
  [in] DWORD   iOutPrecision,
  [in] DWORD   iClipPrecision,
  [in] DWORD   iQuality,
  [in] DWORD   iPitchAndFamily,
  [in] LPCWSTR pszFaceName
);
И тут даже дело не в том, что это прям так сложно. Нет, ничего сложного нет. Просто когда ты станешь создавать шрифт, ты захочешь прочесть полную доку и понять, за что отвечает тот или иной параметр. На это ты потратишь время. Это и называется порог вхождения. Но вот, когда я говорю, что потом скорость разработки увеличивается и ничем не отличается от фреймворков, то я про что, что для создания последующих шрифтов, не нужно заново ознакомляться с параметрами и читать доку. Ты создашь новый шрифт за одну секунду.

И так со всеми функциями винапи. Всего лишь нужно прочесть в начале доку. Но зато потом слово "нет" исчезнет, нативное апи позволяет делать всё, что придет в голову...
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
24.01.2025, 17:13  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
И к сожалению плюсы этого не предоставляют
конкретно, какая у вас задача?

в модели Драка объект не может вызывать сам себя, потому как логическая семантика такая ...

объекты нормально вызывают методы в объектах собственного типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
///----------------------------------------------------------------------------|
/// Драка мобов:
///     -   все против всех...
///----------------------------------------------------------------------------:
#include <vector>
#include <iomanip>
#include <iostream>
 
struct Mob
{
    std::string name;
 
    int helth = 100;
 
    void fight(Mob& mob)
    {
        if(&mob == this) return;
        if(helth <= 0 || mob.helth <= 0) return;
 
        helth     -= rand()%10;
        mob.helth -= rand()%10;
    }
};
 
struct Mobs : std::vector<Mob>
{
    void fight()
    {
        for(unsigned n = 77; n--;)
        {
            unsigned imob1 = rand()%size();
            unsigned imob2 = rand()%size();
 
            (*this)[imob1].fight((*this)[imob2]);
        }
    }
 
    std::vector<Mob>& get(){ return *this; }
};
 
std::ostream& operator<<(std::ostream& o, const Mobs& m)
{
    for(const auto& e : m)
    {   std::cout << std::setw (8) << e.name << ": "
                  << (e.helth < 0  ?  "-=dead=-" :
                     std::to_string(e.helth).c_str()) << '\n';
    }
 
    return o;
}
 
#define BUNNER(a,b,c) std::wcout << L##a <<'\n' << L##b <<'\n' << L##c <<'\n';
 
int main()
{
    setlocale(0,"");
 
    srand(time(NULL));
 
    std::wcout << "Hello world!\n" << std::endl;
 
    BUNNER(
    "///------------------------|",
    "/// Участники драки.       |",
    "///------------------------:")
    Mobs mobs;   mobs.get() = {{"John"}, {"Pete"}, {"Bob"}, {"Mike"}, {"Edik"}};
 
    std::cout << mobs << '\n'
              << "==========================================\n\n";
 
    ///------------------------|
    /// Драка ...              |
    ///------------------------:
                 mobs.fight();
 
    BUNNER(
    "///------------------------|",
    "/// После драки.           |",
    "///------------------------:")
    std::cout << mobs;
 
    std::cin.get();
}
out:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Hello world!
 
///------------------------|
/// Участники драки.       |
///------------------------:
    John: 100
    Pete: 100
     Bob: 100
    Mike: 100
    Edik: 100
 
==========================================
 
///------------------------|
/// После драки.           |
///------------------------:
    John: 19
    Pete: -=dead=-
     Bob: 47
    Mike: 15
    Edik: -=dead=-
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
24.01.2025, 17:14
Цитата Сообщение от XLAT Посмотреть сообщение
тут даже не начал)
Лучше снимать не длинное видео, которое демонстрирует работу программы.
Цитата Сообщение от Royal_X Посмотреть сообщение
скорее, порог вхождения медленный, но скорость создания постепенно уравнивается и ничем не уступает скорости создания на всяких простых фреймворках.
Согласен. Это поначалу кажется, что: "куда я попал", а потом привыкаешь. Что самое интересное: тут ты понимаешь как все работает, и держишь все под контролем. А с появлением мощных средств виртуализации надобность в кроссплатформенных монстрах отходит на второй план. В том же линукс можно запустить виртуалку с win и там уже юзать программы для win. Или через wine. Сейчас хоть под dos пиши: везде можно запустить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2025, 17:14

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
440
Закрытая тема Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энергоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерированы
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru