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

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

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

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

Игра "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...

239
Модератор
Эксперт Java
 Аватар для alecss131
2895 / 1401 / 412
Регистрация: 11.08.2017
Сообщений: 4,488
Записей в блоге: 2
14.05.2026, 23:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mikle Quits Посмотреть сообщение
не помешает асм
Вроде же в 64 битах ассемблерные вставки не работают. Или это только в студии?

Добавлено через 6 минут
А 32 бита это уже прошлый век, сейчас даже телефоны 64 битные
0
 Аватар для zorxor
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,781
Записей в блоге: 3
15.05.2026, 07:44  [ТС]
Просто, хотелось бы коллегам рассказать, откуда у меня была такая страсть к ассемблеру. Как не удивительно, но впервые я познакомился с ассемблером на микропроцессоре фирмы Zilog - Z80, потому что встроенный в ZX-Spectrum язык BASIC не удовлетворял меня своей производительностью. Я естественно выжимал из Z80 всё, что можно, периодически в MASM сбрасывал на ленту ассемблерный исходник.

Поэтому, даже когда папа в 1995-1996 годах купил мне первый компьютер (i486, RAM точно не помню, но, возможно, 8-16 Мб), первое, что я захотел сделать - это попробовать ассемблер, и первый свой проект "Редактор игр" был написан полностью на ассемблере. Поэтому комиссия присудила мне и моему товарищу, художнику, первое место в городском конкурсе программистов. В то время я ещё совсем не знал, а что же это такое - язык С. Ну вот, как-то так.

Да что там говорить! Кто-то ещё, может быть, застал времена DOS со встроенной утилитой debug - когда сразу же после запуска появлялась возможность вводить и после запускать ассемблерный код.
0
 Аватар для Mikle Quits
787 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 531
15.05.2026, 07:48
Цитата Сообщение от alecss131 Посмотреть сообщение
Вроде же в 64 битах ассемблерные вставки не работают.
Так и есть.
Цитата Сообщение от alecss131 Посмотреть сообщение
Или это только в студии?
Не знаю, пользовался только студией.
Цитата Сообщение от alecss131 Посмотреть сообщение
А 32 бита это уже прошлый век, сейчас даже телефоны 64 битные
Никто не спорит. Только быстродействие кода, скомпилированного из C исходника в 32 или 64 разряда, практически не отличается, подозреваю, что, будь возможность использовать асм-вставки, с ними дела обстояли бы так же.
И, да, мне никто не мешает компилировать асм сторонним компилятором и линковать с остальным C кодом, но это уже много возни, именно поэтому не заморачиваюсь.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 08:50
Цитата Сообщение от zorxor Посмотреть сообщение
времена DOS со встроенной утилитой debug
Забавно осознавать, что эти бесценные знания как шуба в Африке. Вроде сокровище, а толку?
Ноль целых, хрен десятых.

Вот они сидят в голове, как медвежий капкан: цап агента за ногу - и стой, дальше ни шагу.

И знаете, мне кажется, именно поэтому природа каждые лет тридцать-сорок делает «reset»
через новых "тупых" детей. Потому что "умные" бывалые дядьки уже не шевелятся.

)

zorxor,
не желаете ли избавиться от этого капкана ?
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,072
15.05.2026, 09:18
Цитата Сообщение от Mikle Quits Посмотреть сообщение
К сожалению, даже интринсики не дают того быстродействия, какое даёт ассемблер.
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Я говорил не о конкретной игре, а "в общем"
А что "в общем"? Набор ассемблерных инструкций это набор ассемблерных инструкций, не важно впишете вы его в ассемблерную вставку или отдельный файл.
Ну да, у вставки добавляется некоторое неудобство с пробрасыванием аргументов и с форматированием. Ну так они и предназначены для точечных оптимизаций.
Ну добавляется высокоуровневый шаблонный код работы со стеком и соблюдением конвенций, но его можно отключить, будете двигать стек и регистры руками.
Вот в примере ТСа есть потенциально опасное место (в SCREEN::putNumb): он делает push очередной цифры на стек, потом вводит локальную переменную для цикла, и потом pop. Если звезды сойдутся уж очень неудачно, переменная тоже может оказаться на стеке, и это порушит всю логику. Представления не имею как нужно выкрутить компилятор, чтобы это воспроизвести, но все же.
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Конкретно узкие места, где не помешает асм, могут возникнуть при написании софтрендера, или, например, реалтайм обработки звука.
Как вариант. Всякие векторные операции, редкие инструкции процессора. Что-то, чем компилятор эффективно пользоваться не умеет.
Цитата Сообщение от alecss131 Посмотреть сообщение
Вроде же в 64 битах ассемблерные вставки не работают.
В смысле не работают?
C
1
2
3
4
5
6
7
8
9
int main(){
  asm volatile(
    "nop\r\n"
    "nop\r\n"
    "nop\r\n"
    "nop\r\n"
    "nop\r\n"
  );
}
Code
1
2
$ gcc main.c -Os
$ objdump a.out -S
Code
1
2
3
4
5
6
7
8
9
10
11
12
a.out:     формат файла elf64-x86-64
...
0000000000001040 <main>:
    1040:       90                      nop
    1041:       90                      nop
    1042:       90                      nop
    1043:       90                      nop
    1044:       90                      nop
    1045:       31 c0                   xor    %eax,%eax
    1047:       c3                      ret
    1048:       0f 1f 84 00 00 00 00    nopl   0x0(%rax,%rax,1)
    104f:       00
Вроде ошибок при компиляции не выдало, нопы куда надо вставило, файл 64-битный.
Цитата Сообщение от alecss131 Посмотреть сообщение
А 32 бита это уже прошлый век, сейчас даже телефоны 64 битные
Только контроллерами и спасаемся. Они в основном 32-битные сейчас. Хотя и 8-битки найти можно.
Цитата Сообщение от zorxor Посмотреть сообщение
Как не удивительно, но впервые я познакомился с ассемблером на микропроцессоре фирмы Zilog - Z80
Проблема ассемблера в том, что он уж больно многословный. Простейший код превращается в "рулон 54 метра" из однообразных регистров и копипастного кода.
И вторая - что он привязан к конкретному процессору. Ваш опыт с z80 / x86 не сильно поможет, скажем, при программировании телефона. Вспомните историю UNIX: он ведь на этом и выехал, что написан был не на ассемблере, как большинство ОС того времени, а на Си. То есть для портирования между зоопарком тогдашних архитектур не приходилось переписывать с нуля вообще все.
Цитата Сообщение от XLAT Посмотреть сообщение
Забавно осознавать, что эти бесценные знания как шуба в Африке.
"Шубе" тоже можно найти множество применений.
Как минимум, это дает понимание как работает компьютер. Что там нет никакой магии - вот регистры, вот команды, они выполняются одна за другой. Правда, МК в этом плане еще лучше: магия ввода-вывода тоже исчезает. Впрочем, z80 тоже к этому близок, особенно если хоть немного разобрался в схемотехнике.
1
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 10:51
Цитата Сообщение от zorxor Посмотреть сообщение
https://github.com/wiz3267/mario
сбилдил ваш прожект в VS2026 - ISO C++17 Standard (/std:c++17)



винда-11: запускается - играется ...
1
 Аватар для zorxor
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,781
Записей в блоге: 3
15.05.2026, 10:59  [ТС]
XLAT, даже не знаю как Вас благодарить. Как бы посмотреть на обновленный проект?

Добавлено через 3 минуты
Цитата Сообщение от XLAT Посмотреть сообщение
zorxor,
не желаете ли избавиться от этого капкана ?
Вы уже сделали это, адаптировав исходник к современной IDE.

XLAT, Вы ассемблер оставили как есть, или заменили код на С?
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 11:10
Цитата Сообщение от zorxor Посмотреть сообщение
Как бы посмотреть на обновленный проект?
вам нужно установить текущую студию:
https://visualstudio.microsoft.com/downloads/

если вы не готовы её ставить, то тогда никак.


ps
Цитата Сообщение от zorxor Посмотреть сообщение
Как бы посмотреть на обновленный проект?
сам игра осталась всё таже))
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 11:25
без папки Sound
Вложения
Тип файла: 7z mario-master.7z (816.4 Кб, 11 просмотров)
0
 Аватар для Mikle Quits
787 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 531
15.05.2026, 11:44
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А что "в общем"? Набор ассемблерных инструкций это набор ассемблерных инструкций, не важно впишете вы его в ассемблерную вставку или отдельный файл.
Я под "в общем" имел ввиду, что речь не о конкретной данной игре.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 12:26
Цитата Сообщение от zorxor Посмотреть сообщение
Вы ассемблер оставили как есть, или заменили код на С?
ну, например, вот если заменить вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
void SCREEN::clear(int color)
{
    BYTE * d=DoubleBuffer;
    _asm {
        mov edi,d
        cld
        mov eax,color
        mov ecx,320*200/4
        rep stosd
    }
}
на это:
C++
1
2
3
4
5
6
7
void SCREEN::clear(int color)
{
    BYTE* d = DoubleBuffer;
    std::fill(reinterpret_cast<DWORD*>(d), 
              reinterpret_cast<DWORD*>(d) + 320 * 200 / 4, 
              static_cast<DWORD>(color));
}
то всё работает и нигде не падает...

Добавлено через 5 минут
далее, если заменить вот это:
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
void SCREEN::putSymbol(int x, int y, unsigned char s)
{
    //Font.Show(x,y,s, (color % 7)*16  );
    //если за пределами экрана
    if (x < 0 || x>312 || y < 0 || y>192)
    {
        return;
    }
 
    //преобразуем кодировку
    char zz[2] = { (char)s,0 };
    CharToOem(zz, zz);
    s = zz[0];
 
    char far* dest = (char far*) (DoubleBuffer + y * 320 + x);
    unsigned char* sour = Font8x8;
 
 
    sour += s * 8;
 
    BYTE symbol[8];
    for (int M = 0; M < 8; M++)
    {
        symbol[M] = sour[M];
        //if (M>4) symbol[M]=symbol[M]|(symbol[M]<<1);
    }
 
    sour = symbol;
 
    unsigned char color = this->color;
    unsigned char bkcolor = this->bkcolor;
 
    _asm
    {
        mov esi, sour
        mov edi, dest
        mov edx, 8
        mov ecx, 8
        cld
    }
 
l3:
    _asm lodsb
 
    l2 :
    _asm test al, 0x80
    _asm jz l1
    _asm mov ah, color
    _asm mov[edi], ah
    _asm jmp l5
    //рисовать фон
    l1 :
    _asm mov ah, bkcolor
    _asm or ah, ah
    _asm jz l5
    _asm mov[edi], ah
    l5 :
    _asm
    {
        inc edi
        shl al, 1
        loop l2
        mov ecx, 8
        add edi, 320 - 8
        dec edx
        jnz l3
    }
}
на это:
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
void SCREEN::putSymbol(int x, int y, unsigned char s)
{
    // Проверка границ
    if (x < 0 || x > 312 || y < 0 || y > 192)
        return;
 
    // Преобразование кодировки
    char zz[2] = { static_cast<char>(s), 0 };
    CharToOem(zz, zz);
    s = static_cast<unsigned char>(zz[0]);
 
    // Указатель на буфер
    BYTE* dest = DoubleBuffer + y * 320 + x;
    
    // Указатель на шрифт (8x8 монохромный)
    unsigned char* sour = Font8x8 + (s * 8);
 
    unsigned char color = this->color;
    unsigned char bkcolor = this->bkcolor;
 
    // Отрисовка 8 строк
    for (int row = 0; row < 8; ++row)
    {
        unsigned char bits = sour[row];
        
        // Отрисовка 8 пикселей в строке
        for (int col = 0; col < 8; ++col)
        {
            if (bits & 0x80)  // Старший бит = левый пиксель
                dest[col] = color;
            else if (bkcolor)
                dest[col] = bkcolor;
            
            bits <<= 1;  // Сдвиг к следующему биту
        }
        
        dest += 320;  // Следующая строка
    }
}
то тоже всё хорошо...

Добавлено через 5 минут

далее, вот ещё:
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
//вывод прямоугольника
/*
void SCREEN::rectangle(int x, int y, int len, int hei, int color)
{
    int x1 = x + len - 1, y1 = y + hei - 1;
    if (x1 < 0 || y1 < 0 || x>319 || y>199) return;
 
    if (y < 0 || x < 0 || x1>319 || y1>199)
    {
        MYRECT rt1(0, 0, 319, 199),
            rt2(x, y, x + len - 1, y + hei - 1),
            rt3;
 
        if (DetermineSystem(rt1, rt2, rt3))
            rectangle(rt3, color);
        //Debug("SCREEN::rectangle - parametrs erorr!");
        return;
    }
 
    unsigned char far* vb = DoubleBuffer;
    unsigned addr = 320 * y + x;
    _asm {
        cld
        mov edi, vb
        add edi, addr
        mov al, byte ptr color
        mov ah, al
        mov bx, ax
        shl eax, 16  //shl eax,16
        mov ax, bx
 
        mov ebx, len
        and ebx, 3
 
        mov edx, len
        shr edx, 1
        shr edx, 1
        cld
    }
m:
    _asm {
        mov ecx, edx
        rep stosd
        mov ecx, ebx
        rep stosb
        add edi, 320
        sub edi, len
        dec hei
        jnz m
    }
}
*/
 
void SCREEN::rectangle(int x, int y, int len, int hei, int color)
{
    int x1 = x + len - 1, y1 = y + hei - 1;
    if (x1 < 0 || y1 < 0 || x > 319 || y > 199) return;
 
    if (y < 0 || x < 0 || x1 > 319 || y1 > 199)
    {
        MYRECT rt1(0, 0, 319, 199),
               rt2(x, y, x + len - 1, y + hei - 1),
               rt3;
 
        if (DetermineSystem(rt1, rt2, rt3))
            rectangle(rt3, color);
        return;
    }
 
    BYTE* dest = DoubleBuffer + 320 * y + x;
    
    for (int row = 0; row < hei; ++row)
    {
        std::fill_n(dest, len, static_cast<BYTE>(color));
        dest += 320;
    }
}
игра работает, но как правильно это тестить я хз - возможно, этот метод ваще у вас не используется ...
1
Модератор
Эксперт Java
 Аватар для alecss131
2895 / 1401 / 412
Регистрация: 11.08.2017
Сообщений: 4,488
Записей в блоге: 2
15.05.2026, 12:27
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В смысле не работают?
А при чем тут гнутые компиляторы? ТС пишет на студии, да и в каждом компиляторе свои асм вставки
0
 Аватар для zorxor
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,781
Записей в блоге: 3
15.05.2026, 12:30  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так-то термин UB действительно почти всем знаком, нет смысла его сюда копипастить.
Ключевое слово тут "почти". Этот проект ведь, как раз, может быть обучающим для ещё совсем молодых, начинающих, неопытных, неоперившихся программистов, которые не знают таких нюансов. Ведь программистами не рождаются.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 12:31
Цитата Сообщение от zorxor Посмотреть сообщение
может быть обучающим
увы, нет - плохим устаревшим практикам учить не нужно.

zorxor, вы проделали большую работу.

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

но разве такое возможно? - только регулярной поркой розгами можно научить - но это уже другое)

вот, например, смогу ли я вас научить мотивации для нового прожекта?

вряд ли...

но ладно, вы уже старый - с вас взятки гладки)

Цитата Сообщение от zorxor Посмотреть сообщение
может быть обучающим
у вас в проекте хошо заметен ценный скил в ДЕКОМПОЗИЦИИ.

это, пожалуй, будет востребовано у разрабов и через 1000 лет,

так что учить, в принципе, есть чому...
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,072
15.05.2026, 13:04
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Я под "в общем" имел ввиду, что речь не о конкретной данной игре.
Так и я не о конкретной игре написал. Векторными инструкциями ТС же вроде не пользуется.
Цитата Сообщение от alecss131 Посмотреть сообщение
А при чем тут гнутые компиляторы?
Вопрос был про ассемблерные вставки. Я и удивился как это они могут не работать. Не ставить же msvs ради этого, да еще разбираться в тамошнем синтаксисе.
Собственно и подтвердилось, что с самими вставками проблем нет. А то, что с msvs постоянно какие-то странные проблемы, известно и так.
Цитата Сообщение от zorxor Посмотреть сообщение
Этот проект ведь, как раз, может быть обучающим
Именно этот - не может точно. Со времен прошлого тысячелетия прошло слишком много времени, ваши подходы устарели и в современном программировании вредны.
Но вы можете, например, переписать его под старое или слабое железо. Тот же z80, те же контроллеры. Там могут быть оправданы и ассемблерные вставки, и ручная работа с графикой. Но даже в таком случае для обучающего материала будут нужны нормальные текстовые описания - что делалось, зачем, какие ограничения пришлось обходить.

Добавлено через 7 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
да еще разбираться в тамошнем синтаксисе.
Да, кстати. Вот еще одна проблема ассемблерных вставок, да и вообще платформо-специфичного кода: я, например, вашу игру скомпилировать и запустить просто не смогу. По крайней мере без переписывания значительной части.
Так-то вместо того же winapi + DirectX можно было бы взять, скажем, SDL или SFML. Даже без OpenGL - графика у вас несложная, хватит встроенных средств. Там же, кстати, есть средства для загрузки ресурсов - картинок, музыки.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 13:06
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
переписать его под старое или слабое железо
ни в коем случае!

а то щас позову Royal_X - он покажет вам где собака порылась) -
про «Нужно ставить только амбициозные + полезные социому цели! - не менее, чем на лям евро»
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,072
15.05.2026, 13:15
Цитата Сообщение от XLAT Посмотреть сообщение
а то щас позову Royal_X - он покажет вам где собака порылась
Я все понял, не надо никого звать!
...только скажите, а что он имеет против ретропрограммирования? Вроде довольно популярное хобби. А если говорить про тот же z80 или скажем к580вм80, да еще с учетом схемотехники, так отличный обучающий материал.
0
 Аватар для zorxor
569 / 114 / 0
Регистрация: 09.02.2020
Сообщений: 2,781
Записей в блоге: 3
15.05.2026, 13:19  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
хорошо бы научить детей такой же работоспособности или хотя стабильной мотивации,
позволяющей дойти до финиша ...
но разве такое возможно? - только регулярной поркой розгами можно научить - но это уже другое)
Я говорил в предыдущем посте, что программистами не рождаются. Но с другой стороны, должны быть, наверное, некоторые предпосылки в личности, характере, темпераменте, которые задаются при рождении. Просто, вспоминая детство, когда 15 человек взяли из нашего 5 "а" класса в кружок программирования на машины Yamaha MSX - кроме меня никто больше не заинтересовался программированием. Играть мне, конечно, и самому хотелось очень и очень сильно, дома в то время ни у кого не было компьютеров, даже ZX-Spectrum ещё не было ни у кого. А кружок у нас был всего один раз в неделю, где минут 30 учитель объяснял MSX-Basic, а остальное время играли в те игры с восторгом. Из всех 15 компьютеров исходила музыка. Учитель мог загружать игры по сети сразу на 15 компьютеров.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.05.2026, 13:52
Цитата Сообщение от XLAT Посмотреть сообщение
хорошо бы научить [...] стабильной мотивации, позволяющей дойти до финиша ...
Мотивация это то, что побуждает человека к действию.

Мотивацию либо создают (1), либо её находят (2).

1) Мотивацию может создать человек А для человека Б. Например, А платит деньги Б, чтобы тот что-то сделал.

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

XLAT, как ты именно собираешься "научить" кого-то стабильной мотивации???

Ты готов раскошелиться? Или ты будешь внушать людям, что если они будут создавать игры для старого железа, то это каким-то образом им поможет в жизни?
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
15.05.2026, 14:03
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
...только скажите, а что он имеет против ретропрограммирования?
там выше уже, вроде, цель была обозначена - "сделать под андроид".

но автор говорит, что он не знает - следовать ли той заявленной цели или нет...

Цитата Сообщение от Royal_X Посмотреть сообщение
Мотивация ...
не то - нам нужны сакральные знания про
"какую поставить цель, чтобы в карманы каждого участника после её(цели) достижения упало по ляму евро?"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.05.2026, 14:03

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; на чистом с++, без использования каких-либо библиотек. Видел в...


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru