Хелен
Sparkling
- Регистрация
- 28 Сен 2010
- Сообщения
- 98
- Реакции
- 2
- Баллы
- 0
.hit Что это?
Тут включаю программу списанную с учебника Павловской. и обнаруживаю не лады с этим "хитом"... я вроде думала проги в учебниках отлажены.
Посмотрите, в чем ошибка.
текст проги:
текст модуля:
Тут включаю программу списанную с учебника Павловской. и обнаруживаю не лады с этим "хитом"... я вроде думала проги в учебниках отлажены.
Посмотрите, в чем ошибка.
текст проги:
Код:
Program dinner;
uses graph,crt,monsters;
const n=30;
var
stado:array[1..n] of monstr;
x,y:array[1..n] of integer;
gd,gm:integer;
i,j:word;
begin
gd:=detect;
initgraph(gd,gm,'...');
If graphresult<>grOk then
begin
writeln('Error - Ошибка инициализации графики');
exit
end;
randomize;
for i:=1 to N do
begin
stado[i].init(random(600),random(440),random(10), random(8));
stado[i].draw;
end;
repeat
for i:=1 to n do
begin
x[i]:=random(600);
y[i]:=random(440);
stado[i].move(x[i],y[i]);
end;
For i:=1 to n-1 do
For J:=i+1 to n do
If(abs(x[i]-x[j])<15) and (abs(y[i]-y[j])<15)
then begin
[COLOR="Red"] stado[i].hit;
stado[j].nit;[/COLOR]
end;
delay(200);
until keypressed;
end.
текст модуля:
Код:
unit monsters;
interface
uses Graph;
type monstr = object
procedure init(x_, y_, health_, ammo_ : word);
procedure attack;
procedure draw;
procedure erase;
procedure move(x_, y_ : word);
procedure getpos(var x_, y_ : word);
private
x, y : word;
health, ammo : word;
color : word;
end;
implementation
procedure monstr.init(x_, y_, health_, ammo_ : word);
begin
x := x_;
y := y_;
health := health_;
ammo := ammo_;
color := yellow;
end;
procedure monstr.draw;
begin
setcolor(color); outtextXY(x, y, '@');
end;
procedure monstr.getpos(var x_, y_ : word);
begin
x_ := x; y_ := y;
end;
procedure monstr.attack;
begin
if ammo = 0 then exit;
dec(ammo); setcolor(color);
outtextXY(x + 15, y, 'ба-бах!');
end;
procedure monstr.erase;
begin
setcolor(black); outtextXY(x, y, '@');
end;
procedure monstr.move(x_, y_ : word);
begin
if health = 0 then exit;
erase; x := x_; y := y_; draw;
end;
end.
uses graph, crt, monsters;
var Vasia : monstr;
x, y : word;
gd, gm : integer;
begin
gd := detect; initgraph(gd, gm, '...');
Vasia.init(100, 100, 10, 10);
Vasia.draw; Vasia.attack; readln;
x := 110;
while x < 200 do begin
Vasia.move(x, x); inc(x, 7);
delay(200);
end;
readln;
end.