Форум программистов, компьютерный форум CyberForum.ru

Работа с экраном в текстовом режиме. - C++

Восстановить пароль Регистрация
 
Uuuchenik
0 / 0 / 0
Регистрация: 29.04.2011
Сообщений: 9
29.04.2011, 18:28     Работа с экраном в текстовом режиме. #1
Ниже дана программа которая до нажатия Esc повторяет действия: случайным образом выбирает размеры (соотношение 25х80) и положение окна на экране закрашивает его в случайный цвет помещает в него двойную рамку и текст “Привет!” со случайным цветом и включает источник звука со случайной частотой Все окна полностью размещаются на экране Задание: после нажатия Esc программа модифицируется по варианту, а при повторном нажатии Esc прекращает свою работу
Задание
Окно располагается в левой половине экрана и движется сверху вниз, а затем обратно.



#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;
void doubleframe(); //функция формирования двойной рамки
void main()
{
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()); //цикл до нажатия клавиши
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<<'╚'; //левый нижний угол рамки
for(i=3;i<=x2-2;i++)cout<<'═'; //нижняя часть рамки
cout<<'╝'; //правый нижний угол рамки
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 18:28     Работа с экраном в текстовом режиме.
Посмотрите здесь:

C++ Работа с экраном в текстовом режиме
C++ Работа с экраном в текстовом режиме
C++ РАБОТА С ЭКРАНОМ В ГРАФИЧЕСКОМ РЕЖИМЕ
ООП иерархия классов с выводом в текстовом режиме C++
Создание интерфейса пользователя в текстовом режиме C++
C++ Нарисовать мышью прямоугольник в текстовом режиме экрана
C++ Работа с экраном в текстовом режиме (вывод всех цветов фона, разделяя цвета паузой)
C++ Создание игр в текстовом режиме

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru