Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 05.02.2015
Сообщений: 13

Летающая тарелка и самолет

12.02.2015, 13:25. Показов 3356. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В верхнем левом углу стандартного графического окна отображается летающая тарелка (см. рисунок). Тарелка движется самостоятельно вдоль верхней границы окна. Тарелка меняет направление движения на противоположное, каждый раз соприкоснувшись с боковой границей графического окна.

(Ссылка на сторонний ресурс удалена)

Название: dz01.gif
Просмотров: 97

Размер: 357 байт

В нижнем правом углу этого окна отображается самолет (см. рисунок). Самолет перемещается с помощью клавиатуры, и может двигаться влево (VK_Left) или вправо (VK_Right), но не должен выходить за границы графического окна. При нажатии клавиши Enter (VK_Enter) происходит «выстрел», от самолета вертикально вверх начинает двигаться круглы снаряд. Пока снаряд не выйдет за верхнюю границу графического окна, выпустить другой снаряд нельзя (программа не будет реагировать на нажатие клавиши Enter). Программа завершается (закрывается графическое окно) если снаряд попал в тарелку или если пользователь нажал клавишу Esc (код 27). Попадание снаряда в тарелку означает, что снаряд целиком оказался внутри обрамляющего летающую тарелку прямоугольника. Радиус снаряда, высота и ширина летающей тарелки, высота и ширина самолета, величина смещения объектов задаются в программе константами.

(Ссылка на сторонний ресурс удалена)

Название: dz02.gif
Просмотров: 95

Размер: 752 байт
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2015, 13:25
Ответы с готовыми решениями:

Летающая тарелка движется по вертикали вниз-вверх
тут как то надо сделать эту программу. пожалуйста Летающая тарелка движется по вертикали вниз-вверх. Цвета рисунка должны быть отличные...

Создать иерархии наследования: самолет, корабль-водный самолет или исправить ошибки
a) Создать иерархии наследования: самолет, корабль - водный самолет. b) Создать иерархии наследования: транспорт - самолет, корабль -...

Самолет может поднять 750 кг, если средний вес человека 70кг. Посчитать сколько человек может поднять самолет?
Напишите пожалуйста исходный код выражения задачи: Самолет может поднять 750 кг, если средний вес человека 70кг. Посчитать сколько...

6
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
12.02.2015, 14:17
так устроит?
Вложения
Тип файла: zip UFO.zip (37.0 Кб, 25 просмотров)
0
0 / 0 / 0
Регистрация: 05.02.2015
Сообщений: 13
12.02.2015, 14:43  [ТС]
Joy, Joy надо тарелку и самолёт командой на писать
0
12.02.2015, 17:13

Не по теме:

Time Mistiko, ссылки на сторонние ресурсы с Вашим контентом, тем более, на файлопомойки, запрещены. Всё грузится на форум (расширенный режим редактора сообщений -> скрепка).

0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
13.02.2015, 07:36
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 GraphAbc;
var
  p,p1,p2:Picture;
  i,ip,dx,sx,sy:integer;
  ok,bdraw:boolean;
 
procedure MovePlane(Key:Integer);
begin
  if Key=VK_Escape then halt; 
  if not ok then
  case Key of
    Vk_Left: if ip>0 then ip:=ip-5;
    VK_Right: if ip<690 then ip:=ip+10;
    Vk_enter:if sy<=0 then begin
      sx:=ip+50;
      sy:=300;
      bdraw:=true;
    end;
  end;
end;  
 
procedure drawpole;
begin
    SetPenColor(clred);
    SetBrushColor(clred);
    p:=Picture.Create(100,55);
    p.Clear;
    p.fillCircle(50,25,25);
    p.fillEllipse(5,23,95,32);
    SetPenColor(clblue);
    SetBrushColor(clblue);
    p1:=Picture.Create(150,150);
    p1.Clear;
    p1.FillEllipse(40,1,80,150); 
    p1.FillRectangle(10,30,110,60);
    p1.FillRectangle(15,100,105,110);
    SetPenColor(clblack);
    SetBrushColor(clblack);
    p2:=Picture.Create(10,10);
    p2.Clear;
    p2.fillCircle(4,4,4);
end;
 
begin
  OnKeyDown:=MovePlane;
  setwindowsize(800,512);
  ClearWindow;
  i:=0;dx:=1;ip:=0;sx:=0;sy:=0;bdraw:=false;
  ok:=false;
  drawpole;
  repeat
    LockDrawing;
    p.draw(i,0);
    p1.Draw(ip,300);
    if bdraw then p2.Draw(sx,sy);
     i:=i+dx;
    if sy>0 then sy:=sy-1 else bdraw:=false;
    UnlockDrawing;
    if i=700 then dx:=-1;
    if i=0 then dx:=1;
    if ((sx>i+5) and (sx<i+p.Width-10)) and ((sy >20) and (sy<p.Height-10))then ok:=true;//подобрать координаты попадания в тарелку
  until ok;  
    randomize;
    repeat
      PutPixel(Random(Window.Width),Random(Window.Height),clRandom);
    until false;
end.
0
2 / 2 / 6
Регистрация: 09.11.2014
Сообщений: 71
15.02.2015, 18:02
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
68
69
70
71
uses
  GraphABC;
 
var
  p, p1, p2: Picture;
  i, ip, sx, sy: word;
  dx: smallint;
  ok, bdraw: boolean;
 
procedure MovePlane(Key: Integer);
begin
  if Key = VK_Escape then halt; 
  if not ok then
    case Key of
      VK_Left: if ip > 0 then ip := ip - 5;
      VK_Right: if ip < 690 then ip := ip + 10;
      VK_Enter:
        if sy <= 0 then begin
          sx := ip + 50;
          sy := 300;
          bdraw := true;
        end;
    end;
end;
 
procedure drawpole;
begin
  SetPenColor(clred);
  SetBrushColor(clred);
  p := Picture.Create(100, 55);
  p.Clear;
  p.fillCircle(50, 25, 25);
  p.fillEllipse(5, 23, 95, 32);
  SetPenColor(clblue);
  SetBrushColor(clblue);
  p1 := Picture.Create(150, 150);
  p1.Clear;
  p1.FillEllipse(40, 1, 80, 150); 
  p1.FillRectangle(10, 30, 110, 60);
  p1.FillRectangle(15, 100, 105, 110);
  SetPenColor(clblack);
  SetBrushColor(clblack);
  p2 := Picture.Create(10, 10);
  p2.Clear;
  p2.fillCircle(4, 4, 4);
end;
 
begin
  OnKeyDown := MovePlane;
  setwindowsize(800, 512);
  ClearWindow;
  i := 0;dx := 1;ip := 0;sx := 0;sy := 0;bdraw := false;
  ok := false;
  drawpole;
  repeat
    LockDrawing;
    p.draw(i, 0);
    p1.Draw(ip, 300);
    if bdraw then p2.Draw(sx, sy);
    i := i + dx;
    if sy > 0 then sy := sy - 1 else bdraw := false;
    UnlockDrawing;
    if i = 700 then dx := -1;
    if i = 0 then dx := 1;
    if ((sx > i + 5) and (sx < i + p.Width - 10)) and ((sy > 20) and (sy < p.Height - 10)) then ok := true;
  until ok;  
  Randomize;
  repeat
    PutPixel(Random(Window.Width), Random(Window.Height), clRandom);
  until false;
end.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
16.02.2015, 05:57
Цитата Сообщение от Joy Посмотреть сообщение
i,ip,dx,sx,sy:integer;
Цитата Сообщение от 725973 Посмотреть сообщение
i, ip, sx, sy: word;
* dx: smallint;
- если это единственное различие, зачем весь код заново копировать?
тем более, что беззнаковый тип(word) тут опасно использовать, т.к. может оказаться случай, когда ip будет меньше 0, при других стартовых позициях.

Добавлено через 7 минут
у меня в коде есть ошибка в перемещении самолета - влево движется медленнее чем вправо:
Pascal
1
    Vk_Left: if ip>0 then ip:=ip-5;
заменить на
Pascal
1
    Vk_Left: if ip>0 then ip:=ip-10;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.02.2015, 05:57
Помогаю со студенческими работами здесь

Летающая лампа
Здравствуйте уважаемые форумчане! Придумывал интерьер для своей комнаты, и пришла идейка летающей лампы, хочу обсудить возможность...

Летающая картинка
Нужен скрипт,суть вот в чем: По экрану летает gif анимация, в случайную сторону и высоту. Нашел примерно - http://www.woweb.ru/js/9/063/...

Twitter, Летающая птичка
Помогите пожалуйста убрать лишние внешние ссылки со скрипта: &lt;!-- Flying Icon// --&gt; &lt;div class='widget-content' style=&quot;margin:...

Спутниковая тарелка
Поставили спутниковую тарелку. Она всё грузит, качает, а страницы не отображает. Что делать???

Свободно летающая камера в 3D (OpenGL, Delphi)
Привет всем киборгам, остальных с наступающим :)) После некоторых мучений у меня получилась летающая камера, выкладываю exe в zip-е: ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru