Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Рисовавние на консоли


Автор: ppcumax 22.2.2008, 19:53
Есть 2 задания:

1.    Вывести на экран песочные часы, верхняя чаша пустая, нижняя заполненная. Высоту часов задает пользователь.
* * * *
 *   *
  * *
   *
  ***
 *****
*******
 
25.    Вывести корону. Высоту задает пользователь.

*         *        *
**     ***    **
*** ***** ***
************

Как такое нарисовать в консоли, таким никогда не занимался, понимаю, что на канвасе проще. Но нужно именно на консоли. Заранее благодарен

Автор: chnry 22.2.2008, 23:11
Пиши [email protected]
Стучись 393877884
Помогу.

Автор: Robin 23.2.2008, 22:43
1 - 
Код

/*
* * * *
 *   *
  * *
   *
  ***
 *****
*******
*/

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    int high, size;
    int i, d, space = 0, temp = 0, a = 0;
    cin >> high;
    
    if(!(high%2) || high <=2)return 0;
    size = (high - 1)/2;

//Firststep
for(i = 1; i <= high; ++i)
{
    cout << "* ";
    ++i;
}
cout << endl;
d = 1;
while(d != size)
{
    while(space < d)
    {
        cout << " ";
        ++space;
    }
    cout << "*";
    temp = high - 2*d;

    while( temp != 2)
    {
        cout << " ";
        --temp;
    }

    cout << "*";
    cout << endl;
    space = 0;
    ++d;
}

while(space < d)
{
    cout << " ";
    ++space;
}
cout << "*" << endl;

//Secondstep
temp = space - 1;
i = 3;

for(a = 0; a < temp; ++a)
{
cout << " ";
}
cout << "***" << endl;

while(d != high-2)
{
    temp -= 1;
    i += 2;

for(a = 0; a < temp; ++a)cout << " ";

for(a = 0; a < i; ++a)cout << "*";
cout << endl;

++d;
}
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)