С помощью чего отображаются элементы в данном приложении С++?

Фрагмент кода для игры PacMan на C++
Курсач заставили чисто на с++.
С помощью чего отображаются элементы?
Он находит символ на карте,заменяет его на нужный элемент. В итоге получается адекватная карта игры пакман
char levelmap[LEVELHEIGHT][LEVELWIDTH + 1] =
{
"1555555555555555555555555552",
"6............^^............6",
"6.!%%@.!%%%@.^^.!%%%@.!%%@.6",
"67^  ^.^   ^.^^.^   ^.^  ^86",
"6.#%%$.#%%%$.#$.#%%%$.#%%$.6",
"6..........................6",
"6.!%%@.!@.!%%%%%%@.!@.!%%@.6",
"6.#%%$.^^.#%%@!%%$.^^.#%%$.6",
"6......^^....^^....^^......6",
"355552.^#%%@ ^^ !%%$^.155554",
"     6.^!%%$ #$ #%%@^.6     ",
"     6.^^    B     ^^.6     ",
"     6.^^ 155&&552 ^^.6     ",
"555554.#$ 6      6 #$.355555",
"      .   6I   C 6   .      ",
"555552.!@ 6  P   6 !@.155555",
"     6.^^ 35555554 ^^.6     ",
"     6.^^          ^^.6     ",
"     6.^^ !%%%%%%@ ^^.6     ",
"155554.#$ #%%@!%%$ #$.355552",
"6............^^............6",
"6.!%%@.!%%%@.^^.!%%%@.!%%@.6",
"6.#%@^.#%%%$.#$.#%%%$.^!%$.6",
"69..^^.......X .......^^..06",
"6%@.^^.!@.!%%%%%%@.!@.^^.!%6",
"6%$.#$.^^.#%%@!%%$.^^.#$.#%6",
"6......^^....^^....^^......6",
"6.!%%%%$#%%@.^^.!%%$#%%%%@.6",
"6.#%%%%%%%%$.#$.#%%%%%%%%$.6",
"6..........................6",
"3555555555555555555555555554"
};

void loadlevel()
{
    char curcharacter;
    SetTextColor(WHITE);
    SetCursorPosition(-3, 3);
    cout << "1UP";
    SetCursorPosition(-3, 9);
    cout << "HIGH SCORE";
    player.scoreinc = 0;
    player.printscore();
    SetCursorPosition(0, 0);
    player.left = 0;
    for(int y = 0; y < LEVELHEIGHT; y++)
    {
        for(int x = 0; x < LEVELWIDTH; x++)
        {
            curcharacter = levelmap[y][x];
            SetTextColor(DARKBLUE);
            switch(curcharacter)
            {
                    ///////////////////////
            }
            if(curcharacter == '1')
                level[y][x] = char(201); // вот эти char(number) отображают элементы на карте.
            else if(curcharacter == '2')
                level[y][x] = char(187);
            else if(curcharacter == '3')
                level[y][x] = char(200);
            else if(curcharacter == '4')
                level[y][x] = char(188);
            else if(curcharacter == '5')
                level[y][x] = char(205);
            else if(curcharacter == '6')
                level[y][x] = char(186);
            else if(curcharacter == '!')
                level[y][x] = char(218);
            else if(curcharacter == '@')
                level[y][x] = char(191);
            else if(curcharacter == '#')
				level[y][x] = char(192);
            else if(curcharacter == '$')
                level[y][x] = char(217);
            else if(curcharacter == '%')
                level[y][x] = char(196);
            else if(curcharacter == '^')
                level[y][x] = char(179);
            cout << level[y][x];
        }
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Это псевдографика по-студенчески (вместо огромного кейса нужен std::map замен).

Кратко - в некоторых кодовых страницах, и в частности, в DOS-866, которая используется музейной IDE из этого примера, имеются символы, сочетания которых формируют графические элементы.


2591 ▒
2592 ▓
2593 │
2502 ┤
2524 ╡
2561 ╢
2562 ╖
2556 ╕
2555 ╣
2563 ║
2551 ╗
2557 ╝
255D ╜
255C ╛
255B ┐
2510

C.

2514 ┴
2534 ┬
252C ├
251C ─
2500 ┼
253C ╞
255E ╟
255F ╚
255A ╔
2554 ╩
2569 ╦
2566 ╠
2560 ═
2550 ╬
256C ╧
2567

D.

2568 ╤
2564 ╥
2565 ╙
2559 ╘
2558 ╒
2552 ╓
2553 ╫
256B ╪
256A ┘
2518 ┌
250C █
2588 ▄
2584 ▌
258C ▐
2590 ▀
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы