Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 1
Регистрация: 20.08.2022
Сообщений: 23
1

Проблема с отрисовкой карты в консольной игрушке

23.02.2023, 22:15. Показов 351. Ответов 3

Author24 — интернет-сервис помощи студентам
Здравствуйте, решил закрепить свои знания и написать простенькую игру в консоли. Для начала решил реализовать отрисовку карты. Решил сделать это при помощи двумерного вектора символов. Также решил обернуть это всё в класс, чтобы практиковаться с классами, хотя можно было бы всё просто описать глобальными переменными. И при запуске программы ничего не выводится, но при этом программа работает (Даже если убрать бесконечный цикл с проверкой на нажатие кнопки esc, которое кстати игнорируется). Возможно проблемма в инициализации вектора, но вроде всё правильно сделал. Кто может объянсить, в чём ошибка?

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
#include <iostream>
#include <Windows.h>
#include <vector>
 
class Map {
private:
    const int MAP_HEIGHT;
    const int MAP_WIDTH;
    std::vector<std::vector<char>> map;
public:
    Map(int h, int w) : MAP_HEIGHT(h), MAP_WIDTH(w) {};
    void init();
    void draw();
};
 
void Map::init() {
    map = std::vector<std::vector<char>>(MAP_HEIGHT, std::vector<char>(MAP_WIDTH, ' '));
 
    for (size_t i = 0; i < MAP_WIDTH; i++) {
        map[0][i] = '#';
        map[MAP_HEIGHT - 1][i] = '#';
    }
 
    for (size_t i = 1; i < MAP_HEIGHT - 1; i++) {
        for (size_t j = 0; i < MAP_WIDTH; j++) {
            if (j == 0 || j == MAP_WIDTH - 1) { map[i][j] = '#'; }
        }
    }
}
 
void Map::draw() {
    for (size_t i = 0; i < MAP_HEIGHT; i++) {
        for (size_t j = 0; j < MAP_WIDTH; j++) {
            std::cout << map[i][j];
        }
        std::cout << std::endl;
    }
}
 
int main() {
    Map map(25, 40);
    map.init();
    
    do {
        map.draw();
    } while (GetKeyState(VK_ESCAPE) >= 0);
 
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2023, 22:15
Ответы с готовыми решениями:

Проблема с отрисовкой карты
Всем привет! Наткнулся на очень полезный туториал про то, как можно реализовать отрисовку...

Взаимодействие персонажа и карты в игрушке
Времени суток добрейшего! Значит-ся. Язык - C++. Игрушка. Пошаговая. на клетчатом поле. (что-бы...

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

Проблема с отрисовкой 3D фигуры
Здравстуйте! Я недавно начал изучать эту среду и этот язык. Использовал статью...

3
Вездепух
Эксперт CЭксперт С++
12783 / 6662 / 1793
Регистрация: 18.10.2014
Сообщений: 16,849
23.02.2023, 22:29 2
Лучший ответ Сообщение было отмечено clipfailer как решение

Решение

Цитата Сообщение от clipfailer Посмотреть сообщение
C++
1
2
    for (size_t i = 1; i < MAP_HEIGHT - 1; i++) {
        for (size_t j = 0; i < MAP_WIDTH; j++) {
Читайте внимательнее свой код. Функция void Map::init().

А почему вы не обнаружили этого при отладке? Это же обнаруживается за 5 секунд.
1
3 / 3 / 1
Регистрация: 20.08.2022
Сообщений: 23
23.02.2023, 22:32  [ТС] 3
Огромное спасибо, даже стыдно, что потратил Ваше время на это.
0
Лежебока
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
23.02.2023, 22:51 4
Цитата Сообщение от clipfailer Посмотреть сообщение
Даже если убрать бесконечный цикл с проверкой на нажатие кнопки esc, которое кстати игнорируется).
Из-за этой ошибки и игнорируется, хотя правильнее сказать, да него дело даже не дошло
1
23.02.2023, 22:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2023, 22:51
Помогаю со студенческими работами здесь

Проблема с отрисовкой графики
Добрый времени суток всем обитателям форума. Сейчас делаю небольшой конструктор уровней, чтобы...

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

Проблема с отрисовкой геометрической фигуры
Здравствуйте, делаю работу по учебе, программа из себя представляет некий &quot;редактор&quot;, в котором...

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

Pyglet, Проблема с отрисовкой текста
Здравствуйте, окажите услугу, помогите мне с проблемой отрисовки текста. Суть проблемы следующая:...

Проблема с отрисовкой компонентов на разных формах
Добрый день, столкнулся с проблемой: у меня имеется две формы. При первом переходе на вторую и...

Проблема с отрисовкой дочернего окна над окном с DirectX
У меня есть родительское окно в котором я инициализировал DirectX11 и просто рисую зеленый фон. И...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru