Как я могу «развернуть» (уменьшить размер экранных байтов) экрана консоли, чтобы сделать 2d пирамиды больше? - PullRequest
0 голосов
/ 22 февраля 2020

Я использую Windows 10 с блоками кода для компиляции моего кода.

Интересно, ПОЧЕМУ вы хотите это сделать. Кажется, это типичная проблема с домашним заданием для отработки циклов и логики c. Это обычно ограничивается числами, легко помещающимися на консоли. Не могли бы вы уточнить, что вызывает необходимость в go сверх, скажем, размера 30? - Yunnosch 10 часов a go

@ Yunnosch По чисто гипотетическим и экспериментальным причинам. По сути, у меня есть мечта, что я мог бы написать программу, которая рендерит массивные 2d пирамиды на экране консоли и, возможно, создаст из нее какую-нибудь игру. Я надеялся, что смогу найти способ «развернуться» на экране консоли, таким образом уменьшив байты экрана. Кто-то должен знать больше, чем я, и может привести меня в правильном направлении к выполнению этой программы «рендеринга 2d пирамид». Заранее спасибо! - Фибоначчи 3 минуты go

Моя цель состоит в том, чтобы иметь возможность рендерить массивные пирамидальные структуры на экран вывода консоли. Код здесь просто запрашивает количество строк и распечатывает пирамиду. ех. drawPyramid (50);

#include <iostream> // include iostream
using namespace std; // include std


// Draw pyramid function here
 void drawPyramid(int rows)
{
    // initializes space and creates for loop to keep track of rows, I and k
    int space;
    for(int i = 1, k = 0; i <= rows; ++i, k=0)
    {
        // draws spaces required
        for(space = 1; space <= rows-i; ++space)
        {
            cout << "  ";
        }
        // draws matter
        while(k != 2*i-1)
        {
            cout << "* ";
            ++k;
        }
        //prints new line based on rows
        cout << endl;
    }
}


//driver program
int main()
{
    bool fTrue = false;

    // loops until user presses '0'
    while(!fTrue)
    {
        cout << "Press (0) to quit...\n";
        int i,rows;
        cout << "Enter number of rows: \n";
        cin >> rows;
        drawPyramid(rows); // draw function called
        if(rows == 0)
        {
            fTrue = true;
        }
    }

    return 0;
}

Вывод: drawPyramidOutput

Хотя программа работает отлично, я хотел бы иметь возможность передавать большие значения, такие как drawPyramid (500); или drawPyramid (1000); все, что выше значения 50, дает такие же результаты.

Результаты: badPyramidOutput

Надеюсь, вы понимаете, что я пытаюсь спросить. Я хочу иметь возможность «сдвигать» и перемещать звездочки ближе друг к другу, чтобы я мог передавать большие входные значения в функцию drawPyramid () ... Заранее спасибо!

Я использую Windows 10 с блоками кода для компиляции моего кода.

...