Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27

Прокомментировать код

27.04.2015, 18:03. Показов 4403. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
это мне задали сделать курсовую на делфи мозайка
я нашла код
Листинг модуля Unit1

Delphi
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
unit Unit1;
 
interface
 
uses
 
Windows, Messages, SysUtils, Variants, Classes,
 
Graphics, Controls, Forms, Dialogs, ExtDlgs, Menus;
 
type
 
TForm1 = class(TForm)
 
MainMenu1: TMainMenu;
 
N2: TMenuItem;
 
N3: TMenuItem;
 
N4: TMenuItem;
 
C1: TMenuItem;
 
N5: TMenuItem;
 
OpenPictureDialog1: TOpenPictureDialog;
 
procedure FormCreate(Sender: TObject);
 
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
 
Shift: TShiftState; X, Y: Integer);
 
procedure FormPaint(Sender: TObject);
 
procedure Load;
 
procedure Refresh;
 
procedure New;
 
procedure N3Click(Sender: TObject);
 
procedure N2Click(Sender: TObject);
 
procedure C1Click(Sender: TObject);
 
procedure N5Click(Sender: TObject);
 
private
 
{ Private declarations }
 
public
 
{ Public declarations }
 
end;
 
var
 
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
const
 
H=4;
 
W=4; // размер поля 4*4 клетки
 
var
 
widt,heig:integer; // ширина и высота одной клетки
 
pole:array[1..H,1..W] of byte; // свойства поля
 
zx,zy:integer; // координаты пустой клетки
 
pos:array[1..H, 1..W] of byte =(( 1, 2, 3, 4),( 5, 6, 7, 8),( 9,10,11,12),(13,14,15, 0)); // выигрышный вариант
 
pic:TBitmap; // сама картинка
 
procedure TForm1.New;
 
var
 
f: string[20]; // файл загружаемой картинки
 
i,j: integer;
 
begin
 
f:='picture10.bmp';
 
try
 
pic.LoadFromFile(f);
 
except
 
on EFopenError do
 
begin
 
ShowMessage('Ошибка загрузки файла');
 
Form1.Close;
 
end;
 
end;
 
heig:=Pic.Height div H; // Размер клетки
 
widt:=Pic.Width div W;
 
ClientWidth:=widt*W; //Размер формы по размеру картинки
 
ClientHeight:=heig*H;
 
for i:=1 to H do
 
for j:=1 to W do
 
pole[i,j]:=pos[i,j];
 
Form1.Refresh; // перемещение клеток
 
Form1.Load; // загрузка поля
 
end;
 
// проверка на факт выигрыша
 
function GameOver: boolean;
 
var
 
rw,cl:integer;
 
i:integer;
 
begin
 
rw:=1;
 
cl:=1;
 
GameOver:=True; // клети расставлены правильно
 
for i:=1 to 15 do
 
begin
 
if pole[rw,cl]<>i then
 
begin
 
GameOver:=False;
 
break;
 
end;
 
if cl<4
 
then inc(cl)
 
else begin
 
cl:=1;
 
inc(rw);
 
end;
 
end;
 
end;
 
// ход в соседнюю пустую клетку
 
procedure Go(clickx,clicky:integer);
 
var
 
r:integer;
 
begin
 
if not ((abs(clickx-zx)=1) and (clicky-zy=0) or // проверка на возможность хода
 
(abs(clicky-zy)=1) and (clickx-zx=0))
 
then exit;
 
pole[zy,zx]:=Pole[clicky,clickx]; // осуществим переход из [x,y] в [zx,zy]
 
pole[clicky,clickx]:=0;
 
zx:=clickx;
 
zy:=clicky;
 
Form1.Load; // перерисовка поля
 
if GameOver then
 
begin
 
pole[4,4]:=16;
 
Form1.Load;
 
r:=MessageDlg('Вы выиграли!'+ #13+'Сыграем ещё?',mtInformation,[mbYes,mbNo],0);
 
if r=mrNo then Form1.Close;
 
Form1.New;
 
end;
 
end;
 
// клик по клетке
 
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 
Shift: TShiftState; X,Y:Integer);
 
var
 
clickx,clicky:integer; // координаты кликаемой клетки
 
begin
 
clickx:=Trunc(X/widt)+1; // переведём щелчок мыши в координаты клетки
 
clicky:=Trunc(Y/heig)+1;
 
Go(clickx,clicky);
 
end;
 
procedure TForm1.Load; // отвечает за загрузку поля
 
var
 
into,outof:Trect; // ввод и вывод
 
lx,ly:integer; // координаты верхнего левого угла ввода
 
i,j:integer;
 
begin
 
for i:=1 to W do // отслеживает содержимое клеток
 
for j:=1 to H do
 
begin
 
ly:=((pole[i,j]-1) div W) * heig; // присвоим координатам верхнего левого угла ввода номер картинки
 
lx:=((pole[i,j]-1) mod W) * widt;
 
into:=Bounds(lx,ly,widt,heig);
 
outof:=Bounds((j-1)*widt,(i-1)*heig,widt,heig);
 
if pole[i,j]<>0
 
then Canvas.CopyRect(outof,pic.Canvas,into)
 
else Canvas.Rectangle((j-1)*widt,(i-1)*heig,j*widt,i*heig);
 
end;
 
end;
 
procedure TForm1.refresh; // "тусует" фрагменты картинки
 
var
 
x1,y1:integer; // координаты пустой клетки
 
x2,y2:integer; // взять картинку из этой координаты и поменять её с пустой
 
n:integer; // направление возможного хода
 
i:integer;
 
begin
 
x1:=4;
 
y1:=4;
 
randomize;
 
for i:=1 to 150 do // варианты расстановки
 
begin
 
repeat
 
x2:=x1;
 
y2:=y1;
 
n:=random(4)+1;
 
case n of
 
1:dec(x2);
 
2:inc(x2);
 
3:dec(y2);
 
4:inc(y2);
 
end;
 
until (x2>=1) and (x2<=4) and (y2>=1) and (y2<=4);
 
pole[y1,x1]:=pole[y2,x2]; // определим фрагмент перемещения
 
pole[y2,x2]:=0;
 
x1:=x2;
 
y1:=y2;
 
end;
 
zx:=x1; // координаты пустой клетки
 
zy:=y1;
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
 
begin
 
pic:=TBitMap.Create;
 
New;
 
end;
 
procedure TForm1.FormPaint(Sender: TObject);
 
begin
 
Form1.Load;
 
end;
 
procedure TForm1.N3Click(Sender: TObject);
 
begin
 
close;
 
end;
 
procedure TForm1.N2Click(Sender: TObject);
 
var i,j: integer;
 
begin
 
heig:=Pic.Height div H; // Размер клетки
 
widt:=Pic.Width div W;
 
ClientWidth:=widt*W; //Размер формы по размеру картинки
 
ClientHeight:=heig*H;
 
for i:=1 to H do
 
for j:=1 to W do
 
pole[i,j]:=pos[i,j];
 
Form1.Refresh; // перемещение клеток
 
Form1.Load; // загрузка поля
 
end;
 
procedure TForm1.C1Click(Sender: TObject);
 
begin
 
showmessage('Программа к курсовому проекту');
 
end;
 
procedure TForm1.N5Click(Sender: TObject);
 
var
 
f: string[20]; // файл загружаемой картинки
 
i,j: integer;
 
begin
 
openpicturedialog1.Execute;
 
try
 
pic.LoadFromFile(openpicturedialog1.FileName);
 
except
 
on EFopenError do
 
begin
 
ShowMessage('Ошибка загрузки файла');
 
Form1.Close;
 
end;
 
end;
 
heig:=Pic.Height div H; // Размер клетки
 
widt:=Pic.Width div W;
 
ClientWidth:=widt*W; //Размер формы по размеру картинки
 
ClientHeight:=heig*H;
 
for i:=1 to H do
 
for j:=1 to W do
 
pole[i,j]:=pos[i,j];
 
Form1.Refresh; // перемещение клеток
 
Form1.Load; // загрузка поля
 
end;
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2015, 18:03
Ответы с готовыми решениями:

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

Прокомментировать код
Объясните пожалуйста как тут что работает. Какие функции и процедуры что делают? unit Recognition; interface uses ...

Прокомментировать код
Привет, всем знатокам программирования! Хочу задать простой вопрос. Напишите пожалуйста комментарий каждой строчке p.s.: я еще...

58
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.05.2015, 17:52
Студворк — интернет-сервис помощи студентам
VladWH, Антивирус ругается за заражение вирусом Win32.induc. Прочитайте эту тему
Delphi-"вирус": проверьте свою установленную Delphi!
Вложение удаляю.
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
04.05.2015, 18:00  [ТС]
а компоненты какие нужны и как это будет объясните плиз

Добавлено через 5 минут
а какие компоненты точно нужны и как это будет объясните плиз
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.05.2015, 18:08
Так точно не заругается. Я exe файл и картинку из архива убрал.
Вложения
Тип файла: rar Mosaic Game.rar (4.3 Кб, 17 просмотров)
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.05.2015, 18:13
Картинку можно было не убирать, ругается точно на .exe. А Вы все-таки проверьте и подлечите свою Делфи.
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.05.2015, 18:22
Уже подлечил. Вот перезаливаю файлы. Надеюсь, что теперь exe не заражен.
Вложения
Тип файла: rar Mosaic Game.rar (804.1 Кб, 45 просмотров)
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.05.2015, 18:25
Цитата Сообщение от эЛИЗАБЭТ Посмотреть сообщение
а какие компоненты точно нужны и как это будет объясните плиз
Просто открой проект, который я выложил.
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
04.05.2015, 19:40
VladWH,
Работает хорошо, я бы еще вот эту деталь добавил на клик по полю.

Delphi
1
(Sender as TImage).BringToFront;
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.05.2015, 19:49
NIKOLAYY, а чего ж ей плохо работать?) BringToFront да, чтоб не прятался фрагмент. Но это все же не мне. а автору темы нужнее)
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
04.05.2015, 20:15  [ТС]
киньте ссылку где можно скачать делфи нормальную версию
0
Нарушитель
10907 / 5835 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
04.05.2015, 20:22
Цитата Сообщение от эЛИЗАБЭТ Посмотреть сообщение
киньте ссылку где можно скачать делфи нормальную версию
Внимание!...
ССЫЛКА!!!
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
04.05.2015, 20:47  [ТС]
можно мне другую ссылку кинуть там только паскаль
0
Нарушитель
10907 / 5835 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
04.05.2015, 20:50
Цитата Сообщение от эЛИЗАБЭТ Посмотреть сообщение
там только паскаль
а тебе, чо, С++ надо было?
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.05.2015, 21:00
Цитата Сообщение от эЛИЗАБЭТ Посмотреть сообщение
можно мне другую ссылку кинуть там только паскаль
...извините, а вы на кого учитесь? Ну... если не секрет конечно
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
04.05.2015, 21:01  [ТС]
делфи надо

Добавлено через 1 минуту
VladWH программиста
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.05.2015, 21:02
Цитата Сообщение от эЛИЗАБЭТ Посмотреть сообщение
делфи надо
Правилами форума запрещено давать ссылки на не легальные ресурсы

Потому ток на офф сайт и дали
0
Нарушитель
10907 / 5835 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
04.05.2015, 22:16
Цитата Сообщение от эЛИЗАБЭТ Посмотреть сообщение
программиста
ужос. куды катимся? люди (будущие программизды) уже не могут самостоятельно варез искать.
кошмар...
Цитата Сообщение от VladWH Посмотреть сообщение
Потому ток на офф сайт и дали
ну, не совсем так...
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
06.05.2015, 16:32  [ТС]
это скрин моей делфи посмотрите пожалуйста я скачала а она не открывается на моей делфи и выдает ошибку там написанно какую и потом открываю после ошибки там пишет кирилицой
Миниатюры
Прокомментировать код  
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
06.05.2015, 16:36  [ТС]
скачала мозайку а не открывается че мне делать? помогите
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
06.05.2015, 16:47
эЛИЗАБЭТ, Так ты не exe-файл открывай))) а файл проекта - Mosaic.dpr
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 27
06.05.2015, 17:03  [ТС]
VladWH а как изменить формат файла а и я скачивала с оперы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2015, 17:03

Прокомментировать код
Кто сможет перевести этот код? Комментарий так сказать оставить напротив каждой строки кода procedure TForm1.Button1Click(Sender:...

Прокомментировать код
Доброе время суток, помогите пожалуйста, прокомментировать код кусочка программы unit Example12; interface uses Windows,...

Просьба прокомментировать данный код
Добрый день! Выручите студента. Нужно прокомментировать код // хоть немного. Хочу разобраться как и что работает. ЗАРАНЕЕ БЛАГОДАРЕН! ...

Необходимо прокомментировать код программы
Здравствуйте, помогите пожалуйста прокомментировать код программы. Очень подробное комментирование.Чтобы было все понятно человеку,...

Можете объяснить код (прокомментировать)
Можете объяснить этот код (прокомментировать) procedure TForm1.Button1Click(Sender: TObject); const k=100; var left,right,i:...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru