Графика

Тема в разделе "C/C++/C#", создана пользователем Miller85, 27 июн 2011.

Статус темы:
Закрыта.
  1. Miller85

    Miller85 Гость

    Всем привет... Есть код программы надо неиного доработать... Не могу понять как... Короче программа выводит на экран окна разных размеров с надписью привет... Надо чтобы после нажатия клавиши esc Окно меняя размер дальше двигалось вниз а текст вверх...

    Очень срочно надо...Завтра экзамен... Вот мой код
    Код (C++):
    #include<iostream.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<dos.h>

    char text[]="Привет!";
    unsigned int textlen=7, //размер текста
    pause=500, //задержка в мсек
    maxx=80, maxy=25, //гориз. и верт. размеры экрана
    x1, y1, x2, y2, background, color, setblink, freq, step;
    void doubleframe(); //функция формирования двойной рамки

    void main(void)
    {
    unsigned int minlen;
    minlen=textlen+6; //минимальный размер окна по горизонтали
    textbackground(0);
    clrscr();
    do{ //формирование окна
    x1=1+random(maxx-minlen); //координата левого верхнего угла
    x2=minlen+random(maxx-x1-minlen);//горизонтальный размер окна
    y2=x2*maxy/maxx; //вертикальный размер окна
    y1=1+random(maxy-y2); //координата левого верхнего угла
    window(x1,y1,x1+x2-1,y1+y2-1);
    background=random(8); //цвет фона
    color=random(16); //цвет символов
    setblink=random(2); //мигание
    textbackground(background);
    clrscr();
    textcolor(color+setblink*128);
    gotoxy((x2-textlen)/2+1,(y2-1)/2+1);
    cout<<text;
    doubleframe();
    switch (background){ //частота звука связывается с цветом фона
    case 0: freq=262;break; //До
    case 1: freq=294;break; //Ре
    case 2: freq=330;break; //Ми
    case 3: freq=349;break; //Фа
    case 4: freq=392;break; //Соль
    case 5: freq=440;break; //Ля
    case 6: freq=494;break; //Си
    case 7: freq=524;break;}//До
    sound(freq);
    delay(pause);
    nosound();
    }while(!kbhit()); //цикл до нажатия клавиши Esc
    getch();
    //вторая часть программы: будем двигать окно вверх, а текст в окне вниз
    //при этом текст не должен выходить за пределы окна
    window(1,1,80,25); //полный размер экрана
    textbackground(0);
    textcolor(7);
    clrscr(); //Очищаем экран
    step=0;
    do{
    if(y1+step+y2<maxy) //будем двигать вниз пока не упремся
    {
    textbackground(0);
    textcolor(7);
    clrscr();
    window(x1,y1+step,x1+x2-1,y1+step+y2-1);
    textbackground(background);
    clrscr();
    textcolor(color+setblink*128);
    if(step*2<y2)
    {
    gotoxy((x2-textlen)/2+1,y2-step*2);
    cout<<text;
    }
    doubleframe();
    step+=1;
    }
    delay(pause);

    }while(!kbhit());
    window(1,1,80,25); //полный размер экрана
    textbackground(0);
    textcolor(7);
    clrscr();
    }

    void doubleframe() //формирование двойной рамки
    {
    int i;
    gotoxy(2,1);
    cout<<'г'; //левый верхний угол рамки
    for(i=3;i<=x2-2;i++)cout<<'='; //верхняя часть рамки
    cout<<'¬'; //правый верхний угол рамки
    for(i=2;i<=y2-1;i++){
    gotoxy(2,i);cout<<'¦'; //боковые
    gotoxy(x2-1,i);cout<<'¦';} //части рамки
    gotoxy(2,y2);cout<<'L'; //левый нижний угол рамки
    for(i=3;i<=x2-2;i++)cout<<'='; //нижняя часть рамки
    cout<<'-'; //правый нижний угол рамки
    }
    Добавлено: Всем спасибо!!! ;) Разобрался сам
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Пожалуйста) Всегда рад помочь;)
     
Загрузка...
Похожие Темы - Графика
  1. Lers
    Ответов:
    0
    Просмотров:
    1.646
  2. 203
    Ответов:
    2
    Просмотров:
    1.488
Статус темы:
Закрыта.

Поделиться этой страницей