Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для elmestre
12 / 12 / 8
Регистрация: 03.11.2009
Сообщений: 35

экранная заставка

05.06.2010, 15:09. Показов 1685. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
необходимо сделать экранную заставку...песочные часы при проходе цикла с песком перемещаются на произвольное место, где цикл повторяется, программа завершает свою работу ПРИ НАЖАТИИ ЛЮБОЙ КЛАВИШИ!!!
вот собсна что-то тупит, и не могу организовать нормальный цикл...чтобы постоянно в новом месте часы пробегали...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
uses Graph, CRT;
const
 PauseTime = 100;    {длительность паузы при прорисовке изображения}
 Count     = 50;    {количество песка в часах,  60 < Count < 125}
var
 grDriver: Integer; {переменные для инициализации графического режима}
 grMode: Integer;   {номер графического режима}
 ErrCode: Integer;  {код ошибки инициализации графического режима}
 i, j, k : integer; {переменные циклов}
 c:longint;
 Key : word;        {код нажатой клавиши}
BEGIN
 grDriver := Detect;
 InitGraph(grDriver, grMode, 'c:\bp\bgi'); {инициируем графику}
 ErrCode := GraphResult;
 if ErrCode <> grOk then Halt(1); {Выход из программы}
 
 c:=random(1000); {переменная для формирования новой координаты}
 {продолжаем если графика инициализирована удачно}
 Line(c+50, c+50, c+150, c+200);
 Line(c+150, c+50, c+50, c+200);
 Line(c+50, c+50, c+150, c+50);
 Line(c+50, c+200, c+150, c+200);
 SetFillStyle(SolidFill, DarkGray);   { новый стиль заполнения }
 Bar(c+45, c+45, c+155, c+49);
 Bar(c+45, c+201, c+155, c+206); {уравнения линий ограничивающих песок: }
 {цикл рисования часов, каждый новый круг часы "переворачиваются"}
  {J = Count - верхняя граница линии песка, 125 - нижняя}
  for j := Count to 125 do   { l1: x=(2y+50)/3; l2: x=(2y-550)/(-3) - выведены}
  begin                   { с применением аналитической геометрии}
   for i := Round((2*j+50)/3)+1 to Round((2*j-550)/(-3))-1 do
    PutPixel(c+i, c+j, Yellow); {рисуем начальное состояние песка}
  end;
  for k := 199 downto 199-Count do
   for i := Round((2*k-550)/(-3))+1 to Round((2*k+50)/3)-1 do
    PutPixel(c+i, c+k, Black);         {стираем песок в нижнем конусе}
  {ждем реакции пользователя, разрешающей начало течения песка}
  {y = 125 - ордината точки пересечения двух линий l1 и l2}
  j := 199;  {т.к. нижний конус кончается при y=200, чтобы не затереть его}
  k := Count;   {уменьшаем начальное значение J}
  Randomize; {инициализируем генератор случайных чисел}
  while (j > 199-(125-Count)) and (k < 125) do
  begin
   {рисуем струю песка}
   for i := j downto 125 do
    if Random(10) < 6 then         {имитируем песчинки в струе песка}
     PutPixel(c+100, c+i, Black) else PutPixel(c+100, c+i, Yellow);
   {рисуем полоску песка в нижнем конусе}
   for i := Round((2*j-550)/(-3))+1 to Round((2*j+50)/3)-1 do
    PutPixel(c+i, c+j, Yellow);
   {стираем полоску песка в верхнем конусе (1)}
   for i := Round((2*k+50)/3)+1 to Round((2*k-550)/(-3))-1 do
    PutPixel(c+i, c+k, Black);
   {стираем полоску песка в верхнем конусе (2)}
   for i := Round((2*(k+1)+50)/3)+1 to Round((2*(k+1)-550)/(-3))-1 do
    PutPixel(c+i, c+k+1, Black);
   Delay(PauseTime);               {пауза и изменение переменных цикла}
   {уровень песка в верхнем конусе уменьшается быстрее, чем повышается}
   {его количество в нижнем}
   dec(j);
   inc(k, 2);
  end; {while}
  {завершение работы}
  for i := j downto 125 do         {cтираем струю песка}
    PutPixel(c+100, c+i, Black);
 CloseGraph;                       {закрываем графику}
END.
вот собсна сами часы, с переменной С для формирования новых координат.....
поместите пожалуйста это в цикл, который будет прерываться при нажатии любой клавиши.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2010, 15:09
Ответы с готовыми решениями:

Меню, заставка
ПОМОГИТЕ ПОЖАЛУЙСТА, нужен код написанный в паскале самым простым способом, (с помментаки в виде комментариев в коде что какая строка...

Заставка содержащая текст (Все привет!) в рамке
Помогите пожалуйста написать программу, которая делает заставку содержащую текст (Все привет!) в рамке. Заранее спасибо.

Живая заставка для калькулятора
Ребят помогите пожалуйста. Нужна заставка для калькулятора. Например звезды падающие с неба во время падения получается слово калькулятор....

1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.06.2010, 15:47
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
uses Graph, CRT;
const
 PauseTime = 100;    {длительность паузы при прорисовке изображения}
 Count     = 50;    {количество песка в часах,  60 < Count < 125}
procedure Chasy(x,y:integer);
var  i,j,k : integer; {переменные циклов}
begin
Line(x+50, y+50,x+150,y+200);
Line(x+150,y+50,x+50,y+200);
Line(x+50,y+50,x+150,y+50);
Line(x+50,y+200,x+150,y+200);
SetFillStyle(SolidFill, DarkGray);   { новый стиль заполнения }
Bar(x+45, y+45, x+155, y+49);
Bar(x+45, y+201,x+155, y+206); {уравнения линий ограничивающих песок: }
{цикл рисования часов, каждый новый круг часы "переворачиваются"}
{J = Count - верхняя граница линии песка, 125 - нижняя}
for j := Count to 125 do   { l1: x=(2y+50)/3; l2: x=(2y-550)/(-3) - выведены}
                   { с применением аналитической геометрии}
for i := Round((2*j+50)/3)+1 to Round((2*j-550)/(-3))-1 do
PutPixel(x+i, y+j, Yellow); {рисуем начальное состояние песка}
for k := 199 downto 199-Count do
for i := Round((2*k-550)/(-3))+1 to Round((2*k+50)/3)-1 do
PutPixel(x+i, y+k, Black);         {стираем песок в нижнем конусе}
{ждем реакции пользователя, разрешающей начало течения песка}
{y = 125 - ордината точки пересечения двух линий l1 и l2}
j := 199;  {т.к. нижний конус кончается при y=200, чтобы не затереть его}
k := Count;   {уменьшаем начальное значение J}
while (j > 199-(125-Count)) and (k < 125) do
  begin
   {рисуем струю песка}
   for i := j downto 125 do
    if Random(10) < 6 then         {имитируем песчинки в струе песка}
     PutPixel(x+100, y+i, Black) else PutPixel(x+100, y+i, Yellow);
   {рисуем полоску песка в нижнем конусе}
   for i := Round((2*j-550)/(-3))+1 to Round((2*j+50)/3)-1 do
    PutPixel(x+i, y+j, Yellow);
   {стираем полоску песка в верхнем конусе (1)}
   for i := Round((2*k+50)/3)+1 to Round((2*k-550)/(-3))-1 do
    PutPixel(x+i, y+k, Black);
   {стираем полоску песка в верхнем конусе (2)}
   for i := Round((2*(k+1)+50)/3)+1 to Round((2*(k+1)-550)/(-3))-1 do
    PutPixel(x+i, y+k+1, Black);
   Delay(PauseTime);               {пауза и изменение переменных цикла}
   {уровень песка в верхнем конусе уменьшается быстрее, чем повышается}
   {его количество в нижнем}
   dec(j);
   inc(k, 2);
  end; {while}
{завершение работы}
for i := j downto 125 do         {cтираем струю песка}
PutPixel(x+100, y+i, Black);
end;
var gd,gm,x,y:integer;
BEGIN
 randomize;
 gd:=0;
 InitGraph(gd,gm,'');
 repeat
 x:=random(getmaxX-155)+1;{случайные координаты с учетом
 размера экрана и размера часов}
 y:=random(getmaxY-200)+1;
 Chasy(x,y);{рисуем}
 delay(1000);{задержка, здесь удобно нажать клавишу}
 cleardevice;{очищаем экран}
 until keypressed;{после нажатия клавиши, цикл рисования очередных часов
 продолжается, после чего программа завершается}
END.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2010, 15:47
Помогаю со студенческими работами здесь

Красивая заставка для приложения
Привет всем я новичок помогите пожайлуста к этой задачке зделать финальную заставку красивую и инструкцию по работе на курсак надо помогите...

Заставка "Сквозь Вселенную"
Есть программа (аналог) заставки из виндовс XP - сквозь звёзды. program zn1; uses graph,crt; type TStar = record ...

экранная заставка
задача: написать программу экранную заставку на паскале в виде разноцветных прямоугольников вложенных в друг друга. Ну никак не могу...

Экран-заставка: изобразить эмблему, выполненную с использованием любого графического примитива
Составить процедуру формирования экрана-заставки для предварительно разработанной диалоговой программы. Создать исполняемый файл для...

Заставка и рекорды
Итак. Всем привет) Нужна помощь в создании заставки для игры на паскале (включаешь игру, проходит заставка, появляется меню). И желательно...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru