Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Циклические задачи

Автор: syrt 14.10.2004 23:28

Люди помогите! Ситуация такая, создать квадрат а в нем бешеный шарик каторый при ударении о стенки квадрата меняет цвет и издает звук! unsure.gif

Автор: Jahnerus 16.10.2004 5:47

;) Да без проблем !!!
Подключаешь модуль graph и crt, инициализируешь её initgraph, затем рисуешь квадрат rectangle, рисуешь шарик circle, и зацикливаешь его например через пост условие (пока не ударится стенки квадрата), а если ударится то setcolor(num) где num 0-15 если 16-ти цветная палитра и пишешь writeln(^G) и у тя системная пищалка при ударении будет звук издовать. А чтобы казалось что шарик движется в цикле надо его сначало заданым цветом нарисовать, затем задержка Delay(1000) - 1 sec, а потом setcolor(0) и стираешь шарик (0-чёрный цвет). Ну вот вроде и всё. :yes:
Да и если всё равно не понятно или ти кодить не умеешь то скажи. Я тебе полностью сорц напишу и выложу.

Автор: GoodWind 16.10.2004 7:45

Цитата
Я тебе полностью сорц напишу и выложу.

это ты молодец...
а вот аватар у тебя подозрительный <_<

Автор: Jahnerus 18.10.2004 3:49

Ну вот типо делать нечего было :p2: и я тут вроде как написал код (ну не удержался):

Код

uses crt,graph;
const x1=100;
     x2=540;
     y1=50;
     y2=430;
     r=9;
var t,c,x,y,xi,yi,dr,md:integer;
   n:longint;
procedure pr(var c:integer);
begin
randomize;
c:=random(15)+1;
write(^g);
end;
begin
clrscr;
write('Сколько секунд выполнять программу (0-для безконечного выполнения) ');
readln(t);
dr:=9;
md:=2;
initgraph(dr,md,'c:\bp\bgi');
rectangle(x1,y1,x2,y2);
xi:=1; yi:=1;
x:=(x1+x2) div 2;
y:=(y1+y2) div 2;
repeat
setcolor(0);
circle(x,y,r);
x:=x+xi;
y:=y+yi;
if x=(x2-r-1) then begin
  xi:=-1;
  pr(c);
  end;
if x=(x1+r+1) then begin
  xi:=1;
  pr(c);
  end;
if y=(y2-r-1) then begin
  yi:=-1;
  pr(c);
  end;
if y=(y1+r+1) then begin
  yi:=1;
  pr(c);
  end;
setcolor(c);
circle(x,y,r);
delay(1000);
n:=n+1;
if n=t*200 then exit;
until false;
closegraph;
end.

Ну вот в принцыпе и всё.
В проге нужно указывать сколько секунд выполнятся потому, что если делать цикл вроде
repeat
...
until keypressed;
он по началу ничё работает а потом начинает тормозить со страшной силой...

Автор: Swe 18.10.2004 16:24

Здравствуйте, профессионалы и любители Паскаля. Подскажите, пожалуйста, как в графическом режиме в Паскале можно отображать русские буквы? Надеюсь на Ваше понимание и помощь?:p2:

Автор: volvo 18.10.2004 17:05

Тебе нужны русифицированные CHR - шрифты.
Взять их можно, например, http://www.ishodniki.ru/base/Pascal/bgirfont.zip

Автор: syrt 18.10.2004 21:03

Jahnerus Спасибо! все вроде запустилось. rolleyes.gif