Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2015, 14:54   #1
Whooles
Новичок
Джуниор
 
Регистрация: 01.01.2015
Сообщений: 2
По умолчанию Рисование циклом, управление фигурой.

Нарисовал фигуру, проблема с управлением. Не работает движение в стороны, и не увеличивается. Помогите, а то котелок уже не варит.

Код:
#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;

void W_curspoz(int x,int y) //ooieoey iiceoeiie?oao eo?ni?
{
HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
COORD cor={x,y};
SetConsoleCursorPosition(hConsole,cor);
}
 

void figura(int &height, int &width )
{

     for(int i = 1; i < height/2; i++)
	 {
        std::cout << std::endl;
        std::cout << '*';   // высота1
       
        
        for(int j = 2; j < width; j++)    // высота2
            std::cout << ' ';
        std::cout << '*';
    }
 
     for(int i = 0; i < width/2 - 1; i++)
     {
        std::cout << std::endl;
         std::cout << '*';   // высота(1)нижняя
 
         for(int j = 2; j < width/2 - i; j++)    // косая линия(1)
            {
                std::cout << ' ';
        }
        std::cout << '*'; 
         
       
       for(int j = width/2; j > width/2 - i; j--)    // косая линия(2)
        {
            std::cout << ' ';
            std::cout << ' ';
           }
       
       std::cout << '*'; 
 
       if(width % 2 == 0) //проблема с размещение высоты
        {
             for(int j = 2; j < width/2 - i; j++)    // высота(2)нижняя
            {
                std::cout << ' ';
        }
        std::cout << '*'; 
       
        }
        else
        {
       for(int j = 0; j < width/2 + i; j++)   // высота(2)нижняя
            std::cout << ' ';
        std::cout << '*';
        }
 
       
	 }
}

int main()
{
   int height = 10, width = 10, x = 1, y = 1, but;


for ( ; ; )
{
but = _getch();
system("cls");
switch(but)                                 // управление
   {
     case '+' : { height=height + 2; // увеличение
		 width=width + 2;
		 break;}
	 case '-' : {  height=height - 2; // уменьшение
		 width=width - 2;
		 break;}
	 case 'a' : {  x--;  break;}  //влево
	 case 'd' : {  x++;  break;}  //вправо
     case 'w' : {  y--;  break;}  //вверх
	 case 's' : {  y++;  break;}  //вниз
	 case  char(27) : { break;} // Esq
   } 

		 
  W_curspoz(x , y);
 figura(height, width);
}
       
	 
    return but;
}
Whooles вне форума Ответить с цитированием
Старый 05.01.2015, 04:28   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Попробуй вместо
Код:
 for(;;)
поставить
Код:
while(but!=char(27))
{
}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование циклом, управление фигурой. Whooles Общие вопросы C/C++ 0 01.01.2015 14:52
Управление циклом FOR Pcrepair Общие вопросы Delphi 8 26.04.2013 22:58
Рисование графов(управление проектами) julia1819 Общие вопросы Delphi 0 20.11.2012 10:05
Управление циклом через case-инструкцию Nomicos Помощь студентам 2 09.07.2012 23:45