Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 14.03.2011, 00:10   #1 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
Arrow .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
 stado[i].hit;
 stado[j].nit;
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.
Хелен вне форума   Ответить с цитированием
Старый 15.03.2011, 20:48   #2 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию

Сама разобралась. кому понадобится - обращайтесь
Хелен вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:35.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.