Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
ILYXA03
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 4
1

Как правильно в программу (создание шахматного поля) добавить модуль Unit?

18.01.2019, 00:15. Просмотров 380. Ответов 8
Метки нет (Все метки)

Составить программу рисования на экране шахматного поля. Free Pascal.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2019, 00:15
Ответы с готовыми решениями:

Составить программу рисования на экране шахматного поля
Составить программу рисования на экране шахматного поля. Free Pascal.

Модуль Unit
Кто подскажет , в чем может быть проблема, постоянно выбивает ошибку в init , а именно здесь( s1:=...

Создание шахматного поля
Добрый вечер. Я пытаюсь написать простую игру шахматы в ООП, с графикой. Начала с создание доски и...

Составить программу рисования шахматного поля
Добрый день помогите пожалуйста у меня такая проблема в понедельник экзамен по информатике помогите...

Необходимо написать программу обхода конем всего шахматного поля
Доброго времени суток! Необходимо написать программу обхода конем всего шахматного поля. Конь...

8
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4493 / 3236 / 3908
Регистрация: 05.06.2014
Сообщений: 16,192
18.01.2019, 08:22 2
Нарисовать шахматную доску 6*6 на весь экран
0
Puporev
Модератор
56074 / 42954 / 29712
Регистрация: 18.05.2008
Сообщений: 101,907
18.01.2019, 10:02 3
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
uses graph,wincrt;
procedure Kletka(x1,y1,c:integer;d:integer);
begin
setfillstyle(1,c);
bar(x1,y1,x1+d,y1+d);
end;
var x1,y1,x2,y2,d1,i,j,r,x,y:integer;
begin
initgraph(x1,y1,'');
d1:=50;
r:=d1 div 2;
x:=(getmaxX-8*d1) div 2;//левый край доски
y:=(getmaxY-8*d1) div 2-30;//правый край доски
setfillstyle(1,7);
bar(x,y,x+8*d1+50,y+8*d1+60);//контур доски
x1:=x+30;y1:=y+20;//левый верхний угол клетки а8
for i:=1 to 8 do
  begin
    for j:=1 to 8 do
    if odd(i+j) then Kletka(x1+d1*(i-1),y1+d1*(j-1),6,d1)
    else Kletka(x1+d1*(i-1),y1+d1*(j-1),15,d1);
  end;
setcolor(0);
for i:=0 to 7 do//подписи вертикалей a..h
outtextXY(x+30+d1*i+d1 div 2,y+9*d1-20,chr(ord(i+97)));
for i:=7 downto 0 do//подписи горизонталей 1..8
outtextXY(x+15,y+9*d1-d1*(i+1)-d1 div 4,chr(ord(i+49)));
readkey
end.
0
ILYXA03
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 4
20.01.2019, 18:59  [ТС] 4
Составить программу рисования на экране шахматного поля с модулем Unit во Free Pascal.
0
Puporev
Модератор
56074 / 42954 / 29712
Регистрация: 18.05.2008
Сообщений: 101,907
20.01.2019, 20:23 5
Сделайте модуль сами, или напишите что бы вы хотели поместить в модуль?
0
ILYXA03
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 4
20.01.2019, 20:56  [ТС] 6
Без разницы что, можно просто всю программу в модуль поместить. я не особо понимаю как это сделать
0
Puporev
Модератор
56074 / 42954 / 29712
Регистрация: 18.05.2008
Сообщений: 101,907
20.01.2019, 21:19 7
Модуль
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
unit sh_ds;
interface
uses graph;
procedure Kletka(x1,y1,c:integer;d:integer);
procedure pole(x,y,d:integer);
procedure title(x,y,d:integer);
implementation
procedure Kletka(x1,y1,c:integer;d:integer);
begin
setfillstyle(1,c);
bar(x1,y1,x1+d,y1+d);
end;
procedure pole(x,y,d:integer);
var r,x1,y1,i,j:integer;
begin
r:=d div 2;
setfillstyle(1,7);
bar(x,y,x+9*d+10,y+9*d+10);//контур доски
x1:=x+30;y1:=y+20;//левый верхний угол клетки а8
for i:=1 to 8 do
  begin
    for j:=1 to 8 do
    if odd(i+j) then Kletka(x1+d*(i-1),y1+d*(j-1),6,d)
    else Kletka(x1+d*(i-1),y1+d*(j-1),15,d);
  end;
end;
procedure title(x,y,d:integer);
var i:integer;
begin
setcolor(0);
for i:=0 to 7 do//подписи вертикалей a..h
outtextXY(x+30+d*i+d div 2,y+9*d-20,chr(ord(i+97)));
for i:=7 downto 0 do//подписи горизонталей 1..8
outtextXY(x+15,y+9*d-d*(i+1)-d div 4,chr(ord(i+49)));
end;
end.
Программа
Pascal
1
2
3
4
5
6
7
8
9
10
11
uses sh_ds,graph,wincrt;
var x,y,d:integer;
begin
initgraph(x,y,'');
d:=50;
x:=(getmaxX-8*d) div 2;//левый край доски
y:=(getmaxY-8*d) div 2-30;//правый край доски
pole(x,y,d);
title(x,y,d);
readkey
end.
Добавлено через 1 минуту
Модуль запустите и откомпилируйте Ctrl+F9, OK.
0
Sasha5289
0 / 0 / 0
Регистрация: 21.01.2019
Сообщений: 2
21.01.2019, 19:11 8
Puporev, помогите пожалуйста также с моей программой сделать
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
program s1;
uses crt,graph;
 
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
begin
a:=a*pi/180;
x:=x0+round(d*cos(a));
y:=y0-round(d*sin(a));
end;
 
Var gd,gm: smallint;
x0,y0,ax,ay,bx,by,cx,cy,d:integer;
    aa,ab,ac:real;
 
begin
  Gd:=detect;
  initgraph(gd,gm,'');
x0:=683;y0:=384;
aa:=90;ab:=210;ac:=330;
d:=150;
repeat
ax:=x0+round(d*cos(pi*aa/180));
ay:=y0-round(d*sin(pi*aa/180));
bx:=x0+round(d*cos(pi*ab/180));
by:=y0-round(d*sin(pi*ab/180));
cx:=x0+round(d*cos(pi*ac/180));
cy:=y0-round(d*sin(pi*ac/180));
Setcolor(2);
ClearViewPort;
Vrash(aa,ax,ay,x0,y0,d);
Vrash(ab,bx,by,x0,y0,d);
Vrash(ac,cx,cy,x0,y0,d);
line(ax,ay,bx,by);
line(ax,ay,cx,cy);
line(cx,cy,bx,by);
aa:=aa+2;ab:=ab+2;ac:=ac+2;
 
until keypressed;
closegraph;
end.
0
Puporev
Модератор
56074 / 42954 / 29712
Регистрация: 18.05.2008
Сообщений: 101,907
21.01.2019, 19:20 9
Модуль
Pascal
1
2
3
4
5
6
7
8
9
10
11
unit vr_trg;
interface
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
implementation
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
begin
a:=a*pi/180;
x:=x0+round(d*cos(a));
y:=y0-round(d*sin(a));
end;
end.
Программа
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
program s1;
uses wincrt,graph,vr_trg;
 
Var gd,gm: smallint;
x0,y0,ax,ay,bx,by,cx,cy,d:integer;
    aa,ab,ac:real;
 
begin
  Gd:=detect;
  initgraph(gd,gm,'');
x0:=683;y0:=384;
aa:=90;ab:=210;ac:=330;
d:=150;
repeat
ax:=x0+round(d*cos(pi*aa/180));
ay:=y0-round(d*sin(pi*aa/180));
bx:=x0+round(d*cos(pi*ab/180));
by:=y0-round(d*sin(pi*ab/180));
cx:=x0+round(d*cos(pi*ac/180));
cy:=y0-round(d*sin(pi*ac/180));
Setcolor(2);
ClearViewPort;
Vrash(aa,ax,ay,x0,y0,d);
Vrash(ab,bx,by,x0,y0,d);
Vrash(ac,cx,cy,x0,y0,d);
line(ax,ay,bx,by);
line(ax,ay,cx,cy);
line(cx,cy,bx,by);
aa:=aa+2;ab:=ab+2;ac:=ac+2;
until keypressed;
end.
1
21.01.2019, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2019, 19:20

Создать программу через модуль unit
Вот моя программа: program Project1; {$APPTYPE CONSOLE} uses SysUtils; var B:array ...

Error 72: Unit file format error - как заставить розпознать модуль модуль?
в Directories путь прописал, файл пересохранял из .pas в .tpu. может кто-нибудь подскажет, что...

Как запустить модуль unit?
подскажите как запустить модуль unit????


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru