Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2012, 14:56   #1
анна2709
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 19
По умолчанию разомкнутая система

Люди помогите пожалуйста
нужно понять какие в программе ошибки..
мне нужно чтобы точка случайно генерировалась на экране и когда мы нажимали стрелочки точка двигалась но ее не было видно с шагом от 3 до 5 по нажатию enter точку было видно, а посередине круг нужно чтобы попадая туда точка сама останавливалась!!!помоги скоро сдавать
uses crt, graph;
const
l=400;
r=25;
dr=2;
c1=Brown;
c2=Blue;
c3=Yellow;
c4=Red;

function Rnd: Integer;
var
r: Integer;
begin
r:=Random(2*r)+l div 2-2*r-dr;
if Random(2)=0 then Rnd:=r
else Rnd:=-r;
end;

procedure Cir(x, y, r: Integer; c: Word);
begin
SetColor(c);
SetFillStyle(SolidFill, c);
FillEllipse(GetMaxX div 2+x, GetMaxY div 2-y, r, r);
end;

function CheckMax(x: Integer): Integer;
var
r: Integer;
begin
if Abs(x)>l div 2 - dr then
begin
r:=l div 2 - dr;
if x<0 then r:=-r;
end
else r:=x;
CheckMax:=r;
end;

function Check(x, y: Integer): Boolean;
begin
if (Abs(x)>r+dr) or (Abs(y)>r+dr) then Check:=false
else Check:=(x*x+y*y)<=Sqr(r+dr);
end;

var
gd,gm, ErrCode, x, y, h: Integer;
ga: String;
ch: Char;
visible: Boolean;
begin
Randomize;
gd:=VGA;
gm:=VGAHi;
ga:='c:\bp\bgi';
InitGraph(gd,gm,ga);
if GraphResult = grOk then
begin
x:=(GetMaxX-l-2) div 2;
y:=(GetMaxY-l-2) div 2;
SetColor(c1);
SetFillStyle(SolidFill, c2);
Bar3D(x, y, x+l+2, y+l+2, 0, TopOff);
OutTextXY(170, 460, 'ESC Enter Spase');
SetColor(LightGray);
OutTextXY(200, 460, '- Exit');
OutTextXY(305, 460, '- View');
OutTextXY(410, 460, '- Start');
repeat
visible:=false;
Cir(0, 0, r, c3);
x:=Rnd;
y:=Rnd;
repeat
ch:=ReadKey;
if (ch=#0) and KeyPressed then
begin
ch:=ReadKey;
if ch in [#72, #75, #77, #80] then
begin
if visible then
begin
Cir(x, y, dr, c2);
if Check(x, y) then Cir(0, 0, r, c3);
end;
h:=Random(3)+3;
case ch of #72:y:=CheckMax(y+h);
#75:x:=CheckMax(x-h);
#77:x:=CheckMax(x+h);
#80:y:=CheckMax(y-h);
end;
if visible then Cir(x, y, dr, c4);
end;
end else if ch=#13 then
begin
visible:=true;
Cir(x, y, dr, c4);
end;
until ch in [#27, ' '];
Cir(x, y, dr, c2);
until ch=#27;
CloseGraph;
end
else begin
Writeln('Ошибка инициализации графики');
ReadKey;
end;
end.
анна2709 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЕАИСТО (единая автоматизированная информационная система технического осмотра)система ioff83 HTML и CSS 0 09.01.2012 16:43
Система принятия решения (Экспертная система) daranton Microsoft Office Excel 4 01.05.2010 17:55
Система (Си) Defa4ka Помощь студентам 2 01.10.2009 02:22
Экспертная система TheX3 Помощь студентам 2 01.04.2009 18:20