Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Нарушитель
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,748
Записей в блоге: 1

Игра "SUPER MARIO" или "SOLDIR OF MARIO"

28.01.2025, 13:58. Показов 20254. Ответов 211
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, дорогие мои братья и сёстры!

Игра "SUPER MARIO" или "SOLDIR OF MARIO"

Да да!

Добавлено через 19 минут
Господь сподобил меня Своей милостью, я, когда-то, писал вот эту игру - она была написана, когда я окончил школу и поступил в ВУЗ, летом.

Видео процесс игры и работа в редакторах кирпичиков, ролик сети 'You Tube', длительность ролика около 9 минут.
Кликните здесь для просмотра всего текста


И, что хочу вот сказать: перед тем, как Господь поднял меня, это было рано, в пятницу 13 февраля 1998 года, я являлся в то время лаборантом на кафедре вычислительных машин. К.г.(*), я написал игру под названием "SOLDIR OF MARIO" - "Солдат Марио", как смесь игры Super Mario (c TV приставки "Dendy") и игры Soldier of Fortune ("Солдат Фортуны") с небольшого ZX-Spectrum компьютера (памяти у него было всего 64 килобайт) в 96-97 годах, летом, почти в то время не спал и не ел, потому что меня накрыла настолько сильная волна поддержки, у меня было постоянно состояние эйфории, пока я, практически не отрываясь от экрана монитора занимался программированием "Soldir of Mario"

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

https://github.com/wiz3267/mario

Добавлено через 4 часа 52 минуты
Программистам, которые занимались разработкой игр, лучше, как мне кажется, легче понять, что мир, в котором мы живём, очень интересно устроен. Никаких случайностей, тут, конечно нет. Прежде, чем реализовать проект, Господь размышлял - а какой это будет мир, ад или рай. Если рай, тут одна цветовая гамма, все цветы радуги, небо было необходимо создать голубоватого цвета, траву - зеленого, облака - белыми, хлеб - белый. Но этого мало. Нужно ещё разработать все живые организмы - какова будет взаимосвязь всех животных и существ экосистемы. Нужно создать некоторые вещества, без которых невозможна жизнь любого организма - вода H2O и кислород - просто О2. Также, кроме всего прочего, это вещество должно будет обладать рядом важных для жизни свойств - при 0 градусов оно должно начинать закристаллизироваться и становится жестким, твёрдым веществом, однако свойства у него будут таковы, что оно не будет тонуть в воде. Почему так - в таком случае зимой водоёмы с водой будут покрываться корочкой льда, и можно в таком случае ходить по воде (всем людям). Ну и так далее. Один организм должен будет питаться другим. Главный герой или персонаж этого мира - человек. Человек должен состоять не только из костей и мяса, но как венцу творения у Человека будет бессмертная душа, "Я", сознание и память. Человек будет способен своим сознанием быть в высших сферах подсознания и общаться с Бесконечным Богом.

Каковы должны быть размеры этого мира, продолжительность дня и ночи, продолжительность года, как и вокруг какой оси должен вращаться этот мир, скорость движения вокруг Солнца (основной светильник), какое должно быть расстояние от Солнца до Земли, мощность Солнца, чтобы была возможность жить на планете людям и другим живым существам - короче говоря, чтобы мы, жители планеты Земля, не поджарились летом на Солнце и не замерзли зимой.....и т.д. и пр. и пр., будет ли вокруг этого земного мира вращаться ещё один - планета Луна - если да, то какова должна она быть, радиус планеты Луна, скорость вращения вокруг Земли, скорость вращения вокруг оси и наклон оси, рельеф местности.

Ну и, самое главное, а каков будет сам-то Человек, Венец Творения? Как он должен выглядеть? Потом, по истории строительства нами Вавилонской башни, когда древние люди решили построить башню до неба - Господь расстроил их планы, произвёл разделение языков у строителей Вавилонской башни. До селе, они говорили на одном самом первом древнем первоязыке, а тут они заговорили, вдруг, внезапно, на самых разных языках и наречиях, они перестали понимать друг друга, остановили на время строить башню, заморозили строительство, как бы сказали сейчас, спустились с неё и разбрелись по лицу всей Земли. Всё это написано в книге "История нашей Вселенной - от создания до падения", где самым подробным образом описана история Землян, что случилось с Землянами: почему они, начав за "здравие", окончили уже за "упокой", переубивали друг друга, разрушили сами себя, превратили свою планету в самый настоящий ад. Увы. Чтобы люди на будущее знали, как не следует поступать и жить, смотря на эту трагическую гибель нашего с вами Земного мира - планеты Земля Солнечной Системы Галактики Млечный Путь.
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2025, 13:58
Ответы с готовыми решениями:

Super Mario
Привет Ребята! Помогите, пожалуйста, найти ошибку! #include <SFML/Graphics.hpp> using namespace sf; int ground = 400; ...

Super Mario на C++ и OpenGL
Всем привет. Решил написать марио на opengl. Пока это все без текстур. Проблема в том, что уже который день не получается написать...

Персонаж super mario не видит коллизию
помогите пожалуйста с кодом,уже всю голову сломал, персонаж не видит коллизию,проваливается сквозь блоки,прикладываю класс игрока package...

211
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,294
13.05.2026, 13:49
Студворк — интернет-сервис помощи студентам
zorxor, в гите можно лишнее добавить в игнор, он не будет их отправлять.

Кстати, они могут быть и довольно большими, особенно ncb
1
 Аватар для COKPOWEHEU
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
13.05.2026, 15:46
Цитата Сообщение от zorxor Посмотреть сообщение
Они совсем небольшие. Просто, когда происходит комит, я отсылаю рабочую папку проекта, так, как она есть. Без всяких удалений.
файлик .gitignore не помогает?
1
Нарушитель
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,748
Записей в блоге: 1
14.05.2026, 07:54  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
то же на VS6 писалось?
и 6 лет назад уже была доступна VS2019, а, значит и C++17

Можно было не так страшненько код написать

И сейчас ещё не поздно качнуть VS2026
По поводу С++17. Честно - понятия не имею, что там нового. Но!

Написание конкретно этой игры произошло под влиянием возможностей С++ по сравнению с просто С. А именно - возможность добавлять в структуры методы обработки, перегрузка функций с разными параметрами и параметрами по умолчанию, конструкторы и деструкторы, возможность использования enum, перегрузка операторов new и delete, перегрузка операции << для удобства вывода текста. В общем-то мне этого с лихвой хватило. У меня в коде нет практически наследования классов и прочих сложностей. Чем проще - тем лучше. Код должен быть самодокументированным.

А что там в коде страшненькое такое?

Когда данная игровая программа ещё только разрабатывалась (а было это в 1996-1997 годах от Рождества Христова, эпоха DOS), я хотел вместе с проектом включить туда и сам сишник, всю среду Borland C++ 3.1

А сейчас у меня возникает мысль включить в проект и некоторую portable-version среды Visual Studio 6.0.

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

Я понимаю, что среда устаревшая, но для этого проекта "Солдат Марио" хватает с избытком. Огромное преимущество VS6.0 это безтормозной интерфейс и крайне быстрая компиляция - что для меня имеет огромное значение.

Потому что данная программа разрабатывалась мной полностью - от и до.

Я не пользовался (да и не было тогда такой игрушки) никакими ИИ-ассистентами. Все они были внутри меня самого, я уже говорил - как бы сверх "я" - это "Я". И вот этот Я и руководил мной и под Его руководством все свои программы я всегда и писал - по вдохновению свыше: от Я приходит идея, я сразу же вношу в исходный код правку, перекомпилирую проект (пару секунд) и сразу же вижу результат. Для меня крайне важно было быстродействие интерфейса среды и скорость компиляции. Потому что, в отличии от ИИ, я часто вносил в код микроскопические изменения, как бы "скальпелем". Перекомпилировал и сразу же видел результат.

С уважением, участник конференции zorxor!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
файлик .gitignore не помогает?
Благодарю Вас, дорогой участник COKPOWEHEU! Буду, как говорит(ь)ся, пробовать.

Добавлено через 49 минут
Цитата Сообщение от gogolik Посмотреть сообщение
zorxor, не нужно захламлять форум нейрослопом. Пожалуйста, по-хорошему прошу.
Здравствуйте, gogolik! Я только совсем недавно стал изучать ИИ, поэтому так получилось. Но когда ИИ от google я скормил непосредственно исходник - ИИ тщательно его проанализировала и выдала описание с точным соответствием коду. Поэтому я и планировал скормить ИИ все исходники проекта. Да, то, что было сделано в начале - это действительно нейрослоп, поскольку ИИ выдавала информацию из разных реализаций платформера.
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,294
14.05.2026, 07:54
Цитата Сообщение от zorxor Посмотреть сообщение
я хотел вместе с проектом включить туда и сам сишник, всю среду Borland C++ 3.1
А сейчас у меня возникает мысль включить в проект и некоторую portable-version среды Visual Studio 6.0.
вот это точно лишнее
0
Нарушитель
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,748
Записей в блоге: 1
14.05.2026, 07:55  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
zorxor, в гите можно лишнее добавить в игнор, он не будет их отправлять.
Кстати, они могут быть и довольно большими, особенно ncb
Благодарю Вас!

Цитата Сообщение от Алексей1153 Посмотреть сообщение
вот это точно лишнее
Благодарю Вас за Ваше мнение!
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,294
14.05.2026, 08:25
Цитата Сообщение от zorxor Посмотреть сообщение
А что там в коде страшненькое такое?
ну, там не столько со стандартом связано, сколько вообще с антипаттернами

и магическими константами
gy * 320 + gx

SoldirOfMarioDlg.cpp

1) зачем тут глобальные переменные ?

Да ещё указатели
long *screendata_1x1 = NULL;

и где освобождается память, которая была выделена ?
screendata_1x1 = new long [320 * 200];

вместо этого лучше использовать std::vector

2) зачем так жёстко прибивать процесс
exit(0);

там и так WM_CLOSE был отправлен, пусть окно само корректно закроется

Добавлено через 6 минут
навскидку, другой cpp, даже без статического анализатора сразу увидел

//Level.cpp

void LEVEL::ConvertNumber(int num, char width, char * dest)
{
if (width>10 || width<1) Debug("ConvertNumber - width incorrect");
dest[0]=9;
char * str = new char[width];
...
...
delete str;
}
в delete пропущены квадратные скобки. И это просто UB

Тут std::string лучше применить


Да и вообще, судя по описанию функции, хех
//ïðåîáðàçóåò ÷èñëî num â ñòðîêó ñèìâîëîâ,
//num - ÷èñëî
//width - øèðèíà ïðåîáðàçîâàíèÿ
//dest - àäðåñ ñòðîêè, êóäà áóäåò ïðîèñõîäèòü âûâîä
void LEVEL::ConvertNumber(int num, char width, char * dest)
это костыль для конвертиции числа в строку. Есть стандартные методы для этого

Добавлено через 2 минуты
//Keyboard.cpp

вот это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static const TableSize=26+10+12+4+4+3+10+4+2+2;
char TranslateTable[TableSize][2]=
{
 
    //ÁÓÊÂÅÍÍÛÅ ÊËÀÂÈØÈ (26)
    {KEY_A, 'A'},
    {KEY_B, 'B'},
         ...
         ...
 
    {KEY_PAGEUP,    33},
    {KEY_PAGEDOWN,  34}
    
};
можно заменить на std::unordered_map
будет удобнее и безопаснее

Добавлено через 7 минут
А чтобы комменты в кракозябры не превращались, все исходные тексты нужно держать в кодировке utf8

Не помню, VS6 нормально их воспринимала или нет. Но сейчас должно быть только так, это практически неписаное правило

Добавлено через 1 минуту
ассемблерные вставки тоже, конечно, лишние, от них нужно избавляться. Сейчас функции из STL хорошо оптимизированы
0
Нарушитель
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,748
Записей в блоге: 1
14.05.2026, 10:28  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
в delete пропущены квадратные скобки. И это просто UB
Да, честно говоря, не знал, что такое UB. И тут на помощь вновь приходит ИИ (сразу же отмечу для gogolik это не нейрослоп):

Вы правы. Использование оператора delete вместо delete[] для освобождения памяти, выделенной через new[], приводит к неопределенному поведению (Undefined Behavior — UB).

## Почему это приводит к UB

* Несоответствие аллокаторов. Операторы new[] и delete[] часто используют другие механизмы управления памятью, отличные от парных new и delete.

* Пропуск деструкторов. При вызове delete вместо delete[] для массива объектов деструктор будет вызван только для первого элемента в массиве. Память остальных объектов потечет, а их ресурсы не освободятся.

* Повреждение кучи. Менеджер памяти не сможет корректно определить размер освобождаемого блока, что приведет к крашу программы или порче данных.

## Как исправить

Всегда соблюдайте строгое соответствие:

// Правильно для одиночных объектов int* ptr = new int;delete ptr;

// Правильно для массивов int* arr = new int[10];delete[] arr;

## Современная альтернатива

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

// Автоматическое управление памятью std::vector<int> arr(10);

// Или через умный указательauto arr_ptr = std::make_unique<int[]>(10);
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
14.05.2026, 10:44
Цитата Сообщение от zorxor Посмотреть сообщение
Да, честно говоря, ...
фундаментальный вопрос:

Какие у вас сейчас цели в контексте данной темы ?

Не по теме:

наблюдаю, как вам активно засрали вашу голову гитхабовскими пустяками)

0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3964 / 2129 / 833
Регистрация: 13.03.2010
Сообщений: 6,993
14.05.2026, 12:54
zorxor, нейрослоп - любые "чистые" ответы ИИ, без должной обработки. Последний раз прошу, не нужно их сюда выкладывать. Делайте самостоятельно вывод и описывайте своими словами. Или без ИИ уже совсем не можете общаться?
0
 Аватар для COKPOWEHEU
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
14.05.2026, 13:33
Цитата Сообщение от zorxor Посмотреть сообщение
Да, честно говоря, не знал, что такое UB. И тут на помощь вновь приходит ИИ
Алексей1153 не стал вам расшифровывать что такое UB, он просто назвал термин. Очевидно, он полагает его знакомым любому, кто достаточно долго занимается программированием. По крайней мере на Си/С++. И это так и есть.
Если вы с этим термином были не знакомы, можно загуглить. И только если возникли сомнения правильно ли поняли собеседника, задавать дополнительные вопросы. Ну что-то вроде
Вот вы говорите UB, я запросил нейронку и она сказала, что это "Бренд одежды (UB Brand): Российский бренд премиальной футуристичной одежды и аксессуаров из Санкт-Петербурга, ориентированный на функциональность." Расшифруйте термин более подробно
Это для примера было.
Так-то термин UB действительно почти всем знаком, нет смысла его сюда копипастить.
Цитата Сообщение от XLAT Посмотреть сообщение
наблюдаю, как вам активно засрали вашу голову гитхабовскими пустяками)
Гитовыми, а не гитхабовыми.
Да и не такими уж пустяками: информация о том, что не надо в репозиторий складывать всякий шаблонный и автогенерируемый мусор, лишней не будет.
Цитата Сообщение от XLAT Посмотреть сообщение
Какие у вас сейчас цели в контексте данной темы ?
Да собственно, если получил полезные советы по коду, уже не зря создал тему.
Цитата Сообщение от Алексей1153 Посмотреть сообщение
gy * 320 + gx
...
WM_CLOSE был отправлен
Э? Я, честно признаюсь, код не смотрел. Но неужели в winapi-шной программе размер игровой области захардкожен на 320х200?
Цитата Сообщение от Алексей1153 Посмотреть сообщение
навскидку, другой cpp, даже без статического анализатора сразу увидел
Кстати, хорошая идея. Натравить на код хотя бы cppcheck и valgrind.
0
14.05.2026, 13:41

Не по теме:

Рискну поспорить.

Цитата Сообщение от Алексей1153 Посмотреть сообщение
магическими константами
Считаю, что иногда их имеет смысл оставлять как есть. Пример: мы вычисляем где-то в коде длину окружности (L = 2 * Pi * R), Pi где-то задана, это нормально, но что, константу 2 тоже где-то описать? Даже затрудняюсь придумать, как её назвать. Или нормально, что магическая константа 2 остаётся в коде?
Цитата Сообщение от Алексей1153 Посмотреть сообщение
ассемблерные вставки тоже, конечно, лишние, от них нужно избавляться. Сейчас функции из STL хорошо оптимизированы
К сожалению, даже интринсики не дают того быстродействия, какое даёт ассемблер.

0
 Аватар для COKPOWEHEU
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
14.05.2026, 13:58
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Считаю, что иногда их имеет смысл оставлять как есть.
Конечно. Не каждая константа - магическая.
В некоторых случаях можно даже "магические" константы оставить числами. Только добавить комментарий откуда чиселко взялось.
Цитата Сообщение от Mikle Quits Посмотреть сообщение
К сожалению, даже интринсики не дают того быстродействия, какое даёт ассемблер.
А думаете, игре не хватает производительности? И что узкое место именно там?
Читабельность и гибкость кода не менее важные факторы, чем быстродействие и объем.
0
Нарушитель
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,748
Записей в блоге: 1
14.05.2026, 14:26  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
zorxor, нейрослоп - любые "чистые" ответы ИИ, без должной обработки. Последний раз прошу, не нужно их сюда выкладывать. Делайте самостоятельно вывод и описывайте своими словами. Или без ИИ уже совсем не можете общаться?
Ну почему я не могу общаться без ИИ. Могу, но только зачем тратить лишние силы, если ИИ делает грамотный анализ? Вот это я не понимаю. Свой проект я, конечно, прекрасно знаю, и то, что выдаёт ИИ - я просматриваю своими глазами. Я руководит моими глазами.

Добавлено через 6 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Э? Я, честно признаюсь, код не смотрел. Но неужели в winapi-шной программе размер игровой области захардкожен на 320х200?
Здравствуйте, COKPOWEHEU, благодарю Вас за внимание к этой теме. Спешу Вас успокоить - весь вывод игровой программы происходил в буфер 320x200 и update() просто копировала теневой буфер в физическую видеопамять под адресу 0xA0000. Потому что это был такой видеорежим в DOS. После портации на Windows update() выводит кадр через DirectX с масштабированием.
0
 Аватар для COKPOWEHEU
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
14.05.2026, 14:33
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но неужели в winapi-шной программе размер игровой области захардкожен на 320х200?
...посмотрел... как теперь это развидеть?
Цитата Сообщение от Screen.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void SCREEN::putNumb(unsigned long n)
{
    unsigned t,k=0;
    do {
        t=n % 10 + '0';
        k++;
        _asm push t
        n/=10;
    } while (n);
 
    for (UINT i=0;i<k;i++)
    {
        _asm pop t
        putSymbol(t);
    }
}
Вот так делать не надо. Вы смешиваете ассемблерную вставку и код на Си, да еще шаманите со стеком. Лучше просто выделить локальный буфер
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
void SCREEN::puti(int64_t val){
  char buf[21];
  if(val < 0){
    val = -val;
    buf[0] = '-';
  }else{
    buf[0] = 0;
  }
  char *cur = buf + 20;
  cur[0] = 0;
  
  do{
    cur--;
    cur[0] = (val % 10) + '0';
    val /= 10;
  }while(val);
  
  if(buf[0] == '-'){
    cur--;
    cur[0] = '-';
  }
  
  putText(cur);
}
Я в контроллерах делаю примерно так:
C
1
2
3
4
5
6
7
char* i64tos(int64_t val){
  static char buf[20];
  ...
  return cur;
}
...
putText( i64tos( val ) );
Хотя в ПК можно не извращаться:
C++
1
2
3
char buf[21];
snprintf(buf, sizeof(buf), "%i", val);
putText(buf);
Цитата Сообщение от Screen.cpp
C++
1
2
3
4
//преобразуем кодировку
    char zz[2]={s,0};
    CharToOem(zz,zz);
    s=zz[0];
Это что за колдунство? Если вы пользуетесь ASCII, то символ как был однобайтным, так и останется, тогда смысла в преобразовании никакого. Если же нет, то он либо на входе, либо на выходе может оказаться 4-байтным и в unsigned char не влезет.
Цитата Сообщение от Screen.cpp
C++
1
2
3
4
5
void SCREEN::putpixel(int x,int y,int color)
{
    if (x<0 || x>319 || y<0 || y>199) return;
    DoubleBuffer[x+y*320]=color;
}
Лучше бы все же переходить на что-то более современное, чем DOS. На OpenGL, например. Там, конечно, тоже можно рисовать руками на массивах, но правильнее треугольниками и текстурами на экране. Ну то есть то, что у вас сейчас делает процессор, выгоднее переложить на видеокарту. Она и отсечение невидимых пикселей сделает, и копирование быстрое, и повороты с отражениями, и прозрачность, и масштабирование.
0
Нарушитель
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,748
Записей в блоге: 1
14.05.2026, 14:53  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
фундаментальный вопрос:
Какие у вас сейчас цели в контексте данной темы ?
Ну я даже и не знаю. Я бы, например, хотел скормить ИИ каждый файл проекта и выложить сюда, это было бы прекрасным описанием проекта, но администрация как-то не очень такое одобряет.

Не по теме:

Не по теме:
наблюдаю, как вам активно засрали вашу голову гитхабовскими пустяками)
А конкретно, о чём речь?


Добавлено через 17 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А думаете, игре не хватает производительности? И что узкое место именно там?
Читабельность и гибкость кода не менее важные факторы, чем быстродействие и объем.
Опять же - дело было в 1996-1997 годах. Компьютеры тогда имели намного меньшую производительность, чем сейчас. Я не мог себе позволить избежать ассемблерных вставок в то время.

А Вы не используете ассемблер в своей деятельности на микроконтроллерах?
0
 Аватар для COKPOWEHEU
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
14.05.2026, 15:47
Цитата Сообщение от zorxor Посмотреть сообщение
А Вы не используете ассемблер в своей деятельности на микроконтроллерах?
Крайне редко. Либо в тех местах, где нужно обойти абстракцию языка Си (стартап-код, инициализация ядра, стека, прерываний и им подобного, переключение задач ОС). Либо когда нужно посмотреть во что развернулся высокоуровневый код.
Да и компиляторы тоже научились весьма неплохо оптимизировать код. Если сверяться с выхлопом дизассемблера, можно и на Си получить код ненамного медленнее, чем на асме.
Контроллеры сейчас тоже мощные стали. Сотни мегагерц частоты, десятки килобайт оперативной и порядка сотни постоянной памяти. Развесистая периферия. А ведь уже продаются "контроллеры", не уступающие процессорам. Вот жду когда воронежцы свой 1921вг1т выпустят.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
14.05.2026, 18:26
Цитата Сообщение от zorxor Посмотреть сообщение
Я бы, например, хотел скормить ИИ каждый файл проекта и выложить сюда,
1.
авторы могут публиковать не более трех книг в день

авторы могут публиковать не более трех книг в день: dzen.ru/a/ZQ13GBUKLUy2R6jj

[ссылка не отображается - я не вижу ссыль]

о чем по ссылке:

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


2.
помню на хабре пару лет назад огромную слоп-статью на ~100500 страниц от вайб-автора:
"Как установить дипсик для локального использования"
хотя достаточно было всего одной строчки "Скачайте и установите LM Studio"

3.
ваш код это памятник доисторического творчества
подобен наскальному рисунку древнего художника - не нужно его портить усреднением от нейросети.

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

кодер становится инженером-архитектором или курьером ...


Цитата Сообщение от zorxor Посмотреть сообщение
А конкретно, о чём речь?
речь о том, что мы живем на огромном информационном мусорнике,
который питается так:
1. сначала искусственно создается проблема.
2. потом создается огромная гора инфо-мусора вокруг её решения.

почему так? потому что наша цель: "пока есть кислород - мы будем сжигать углерод, пока кислород не закончится."

Цитата Сообщение от zorxor Посмотреть сообщение
Ну я даже и не знаю
это правильный ответ.

поэтому раз у нас "медиативная прострация",
то тогда можно писать всякую белиберду про гит - "нет цели - пиши шо хошъ".
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,294
14.05.2026, 21:14
Mikle Quits, само собой, есть, скажем так, "фундаментальные магические константы" , например в общеизвестных формулах. Они неизменны, их не стыдно повторять

Речь про константы, которые могут запросто поменяться в программе (размеры окна, размеры массива). Такие константы лучше записать в единственном месте и дать им имя

Ассемблер мешает оптимизатору. Ну и читаемости кода тоже
0
 Аватар для Mikle Quits
787 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 531
14.05.2026, 22:40
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Ассемблер мешает оптимизатору
Да, поэтому лучше делать на асме целиком процедуру. И с читаемостью будет тоже проще, когда строки на C и на асме не смешаны.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А думаете, игре не хватает производительности? И что узкое место именно там?
Я говорил не о конкретной игре, а "в общем", как "в общем" был написан тот пост, который я комментировал.
Конкретно узкие места, где не помешает асм, могут возникнуть при написании софтрендера, или, например, реалтайм обработки звука.
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,294
14.05.2026, 22:44
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Да, поэтому лучше делать на асме целиком процедуру
нет, лучше писать на C++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2026, 22:44

Nintendo отмечает 20-летие игры Super Mario Kart
Японский издатель компьютерных игр и разработчик игровых консолей Nintendo отмечает 20-летие с момента выхода первой из серии игр Super...

Игра в стиле Mario (SFML)
Решил попробовать написать игру в стиле марио. Это моя первая игра на с++ если что. Писал в VS 2013, для написания игры решил...

Поиск пути в массиве для фигуры 2х1(или попытка в ИИ для игры Dr.Mario)
Давно в 1990-х была такая игра на приставку Dendy. Вот задумал написать реализацию на делфи,а чтобы было не скучно,сделать режим...

Mario
Всем привет! Я студент первого курса, и в данный момент выполняю курсовую работу в виде игры &quot;Марио&quot;. Большая часть работы...

Mario c++
Здравствуйте, преподаватель задал написать всеми известную игру &quot;Марио&quot; на чистом с++, без использования каких-либо библиотек. Видел в...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru