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

Игра на реакцию

22.02.2019, 23:44. Показов 3316. Ответов 5

Студворк — интернет-сервис помощи студентам
Нужно написать игру в паскале, появляются шарики и ты должен их лопать, каждые 30 сек скорость появления шариков увеличивается, как только промажешь по одному шарику, игра заканчивается.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2019, 23:44
Ответы с готовыми решениями:

Игра на реакцию, аналог missionred
Доброго времени суток! Хочу реализовать игру на реакцию, что то вроде аналога missionred.com В окне случайным образом появляются...

Определить реакцию опор и в шарнирах конструкций, определить реакцию опор А и В
Определить реакцию опор и в шарнирах конструкций,определить реакцию опор А и В

Рассылка писем, Тест на реакцию, Реакция тест, Рассылка писем, Тест на реакцию, как сделать
Как это сделать? Необходимо отправить сообщение по электронной почте списку адресатов, с уведомлением о прочтении. данное...

5
Заблокирован
23.02.2019, 02:01
Лучший ответ Сообщение было отмечено dert1x как решение

Решение

есть такое, но про капли, если есть желание под шарики переделывать выложу
Миниатюры
Игра на реакцию  
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
23.02.2019, 06:11
Лучший ответ Сообщение было отмечено dert1x как решение

Решение

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
uses GraphABC, Timers;
 
const
  maxCount = 30;
  
var
  clFone := rgb(0,65,100);
 
///---------- Предописание процедур -------------------------------------------- 
 
procedure theEnd := Window.Close;
procedure SelectMain(X, Y, M : Integer); forward;
procedure MainMenu; forward;
procedure Live; forward;
 
///---------- Часть программы, в которой реализована игра ---------------------- 
 
type
  tTroll = record
    x, y, r : Integer;
    enabled : Boolean;
    notKilled : Boolean;
    
    constructor := NewTroll;
    
    procedure NewTroll;
    begin
      x := 10 + Random(Window.Width-20); y := 10 + Random(Window.Height-20);
      r := 5; enabled := True; notKilled := True;
    end;
 
    procedure Show(clr : Color);
    begin
      Pen.Style := psSolid;
      Pen.Color := clFone;
      Brush.Color := clr;
      Circle(x, y, r);
    end;
    
    procedure Kill;
    begin
      notKilled := False;
    end;
  end;
 
type
  tTrolles = class
    T : array of tTroll;
    count, living : Integer;
    
    constructor;
    begin
      count := 0;
      living := 0;
      SetLength(T, 0);
    end;
    
    procedure CreateNew;
    begin
      living += 1;
      for var i := 0 to count-1 do
        if Not T[i].enabled then
          begin
            T[i].NewTroll;
            Exit;
          end;
          
      count += 1;
      SetLength(T, count);
      T[count-1] := New tTroll;
    end;
    
    procedure Live;
    begin
      Window.Clear(rgb(32,64,32));
      for var i := count-1 downto 0 do
        if T[i].enabled then
          if T[i].notKilled then
            begin
              if T[i].r < 100 then T[i].r += 1;
              T[i].Show(rgb(128,128,128));
            end
          else
            begin
              T[i].r -= 5;
              if T[i].r > 0 then
                T[i].Show(rgb(64,32,32))
              else
                begin
                  T[i].enabled := False;
                  living -= 1;
                end;
            end;
    end;
    
    function Click(X, Y : Integer) : Boolean;
    begin
      Result := True;
      for var i := 0 to count-1 do
        if (X-T[i].x)*(X-T[i].x)+(Y-T[i].y)*(Y-T[i].y) < T[i].r*T[i].r then
          begin
            T[i].Kill;
            Exit;
          end;
      Result := False;
    end;
 
  end;
 
var Trolles : tTrolles;
var Timer := New Timer(25, Live);
var Lost := False;
var Swat := 0;
 
procedure Live;
begin
  LockDrawing;
  Window.Caption := 'Троллей: ' + Trolles.living + '   Прихлопнуто: ' + swat;
  Window.Clear(rgb(32,64,32));
  if Trolles.living = 0 then
    Trolles.CreateNew
  else if Trolles.living = maxCount then
    begin
      Timer.Stop;
      Lost := True;
      MainMenu;
    end
  else
    begin
      if Random(10) = 0 then Trolles.CreateNew;
      Trolles.Live;
    end;
  UnlockDrawing;
end;
 
procedure GameSelect(X, Y, M : Integer);
begin
  if Trolles.Click(X, Y) then Swat += 1;
end;
 
procedure Game;
begin
  Swat := 0;
  OnMouseDown := GameSelect;
  Window.Clear(clBlack);
  Trolles := New tTrolles;
  Timer.Start;
end;
 
///---------- Часть программы, в которой реализовано меню ----------------------
 
type
  tMenu = record
    x, y, w, h : Integer;
    inf : String;
    Action : procedure;
  end;
 
const
  aMainMenu : array of tMenu = (
    (x : 250; y : 100; w : 100; h : 30; inf : 'Игра' ; Action : Game  ),
    (x : 250; y : 140; w : 100; h : 30; inf : 'Выход'; Action : theEnd)
  );
 
procedure Show(a : tMenu);
begin
  if Lost then
    begin
      Font.Color := rgb(255,200,145);
      Font.Size := 16;
      DrawTextCentered(Window.Center.X,20,Window.Center.X,20,'Вы проиграли!');
      Font.Size := 15;
      DrawTextCentered(Window.Center.X,40,Window.Center.X,40,'Троллей прихлопнуто ' + Swat);
    end;
  
  Pen.Color   := rgb(0,0,128);
  Brush.Color := rgb(32,32,128);
  Font.Color  := rgb(255,255,0);
  Font.Name   := 'Times New Roman';
  Font.Style  := fsBold;
  Font.Size   := 14;
  Rectangle(a.x, a.y, a.x + a.w, a.y + a.h);
  DrawTextCentered(a.x, a.y, a.x + a.w, a.y + a.h, a.inf);
end;
 
procedure MainMenu;
begin
  OnMouseDown := SelectMain;
  Window.Clear(clFone);
  foreach var item in aMainMenu do Show(item);
end;
 
procedure SelectMain(X, Y, M : Integer);
begin
  foreach var item in aMainMenu do
    if (X > item.x) and (X < item.x + item.w) and (Y > item.y) and (Y < item.y + item.h) then
      item.Action;
end;
 
///---------- Основная программа ----------------------------------------------- 
begin
  Randomize;
  Window.Width := 600;
  Window.Height := 300;
  Window.CenterOnScreen;
  MainMenu;
end.
2
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 13
24.02.2019, 13:26  [ТС]
Большое спасибо. Сам тока учусь.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
24.02.2019, 13:30
dert1x, учится нужно на своих попытках сделать, а не выпрашивать!
Вот!
0
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 13
24.02.2019, 13:35  [ТС]
Учту
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2019, 13:35
Помогаю со студенческими работами здесь

Выбрать ядерную реакцию
Помогите пожалуйста, давно проходила эту тему

Отключить реакцию на клавиатуру
Есть окно при нажатии стрелок вправо/влево выполняются мои методы, private void Window_KeyDown(object sender, KeyEventArgs e) {...

Задержка на реакцию .mouseenter
привет всем! подскажите как сделать так чтоб .mouseenter срабатывал не сразу а через пару секунд? то есть не задержка на выполнение, а...

Задача на термоядерную реакцию
Помогите,пожалуйста, решить задачу. Вроде знаю как решать, но ответ немного не сходится. Какая энергия выделяется в реакции...

Найти реакцию опор
Помогите, пожалуйста, зависла на задании( Найти реакции опор конструкции при различных способах ее закрепления. (Р = 8 кН, М = 14...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru