Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Почему в Visual Studio в консоль ничего не выводится?

Код:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
 #include <iostream> 
#include <cstdlib> 
#include <ctime> 
 
int main() 
{ 
    const int size = 10; // Размер поля 
    srand(time(0)); // Инициализация генератора случайных чисел 
 
    while (true) 
    { 
        int map[size][size] = { 0 }; 
        int x, y; 
        int direction = 0; // Направление 
        int count_ship = 0; 
 
        while (count_ship < 3) 
        { 
            // Первичная позиция 
            x = rand() % size; 
            y = rand() % size; 
 
            int temp_x = x; 
            int temp_y = y; 
 
            direction = rand() % 4; // Генерация направления 
 
            bool setting_is_possible = true; 
 
            // Проверка постановки корабля 
            for (int i = 0; i < 5; i++) 
            { 
                if (x < 0 || y < 0 || x >= size || y >= size) 
                { 
                    setting_is_possible = false; 
                    break; 
                } 
 
                if (map[x][y] == 1 || 
                    (y + 1 < size && map[x][y + 1] == 1) || 
                    (y - 1 >= 0 && map[x][y - 1] == 1) || 
                    (x + 1 < size && map[x + 1][y] == 1) || 
                    (x + 1 < size && y + 1 < size && map[x + 1][y + 1] == 1) || 
                    (x + 1 < size && y - 1 >= 0 && map[x + 1][y - 1] == 1) || 
                    (x - 1 >= 0 && map[x - 1][y] == 1) || 
                    (x - 1 >= 0 && y + 1 < size && map[x - 1][y + 1] == 1) || 
                    (x - 1 >= 0 && y - 1 >= 0 && map[x - 1][y - 1] == 1)) 
                { 
                    setting_is_possible = false; 
                    break; 
                } 
 
                map[x][y] = 1; 
                switch (direction) 
                { 
                case 0: 
                    x++; 
                    break; 
                case 1: 
                    y++; 
                    break; 
                case 2: 
                    x--; 
                    break; 
                case 3: 
                    y--; 
                    break; 
                } 
            } 
 
            // Если есть возможность поставить корабль, ставим 
            if (setting_is_possible) 
            { 
                x = temp_x; 
                y = temp_y; 
                for (int i = 0; i < 5; i++) 
                { 
                    map[x][y] = 1; 
                    switch (direction) 
                    { 
                    case 0: 
                        x++; 
                        break; 
                    case 1: 
                        y++; 
                        break; 
                    case 2: 
                        x--; 
                        break; 
                    case 3: 
                        y--; 
                        break; 
                    } 
                } 
                count_ship++; 
            } 
        } 
 
        // Прорисовка 
        for (int i = 0; i < size; i++) 
        { 
            for (int j = 0; j < size; j++) 
            { 
                if (map[i][j] == 0) 
                { 
                    std::cout << "-"; 
                } 
                else 
                { 
                    std::cout << map[i][j]; 
                } 
            } 
            std::cout << std::endl; 
        } 
 
        system("pause"); // Ожидание нажатия клавиши 
        system("cls"); // Очистка экрана 
    } 
} 
Дополнен

Всё! Проблема решена! я убрал бесконечный цикл и добавил выход из программы после отображения карты.

По дате
По рейтингу
Аватар пользователя
Высший разум

Попробуй временно закомментировать system("cls") и проверь результат