Помощь - Поиск - Пользователи - Календарь
Полная версия: Циклические задачи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
syrt
Люди помогите! Ситуация такая, создать квадрат а в нем бешеный шарик каторый при ударении о стенки квадрата меняет цвет и издает звук! unsure.gif
Jahnerus
;) Да без проблем !!!
Подключаешь модуль graph и crt, инициализируешь её initgraph, затем рисуешь квадрат rectangle, рисуешь шарик circle, и зацикливаешь его например через пост условие (пока не ударится стенки квадрата), а если ударится то setcolor(num) где num 0-15 если 16-ти цветная палитра и пишешь writeln(^G) и у тя системная пищалка при ударении будет звук издовать. А чтобы казалось что шарик движется в цикле надо его сначало заданым цветом нарисовать, затем задержка Delay(1000) - 1 sec, а потом setcolor(0) и стираешь шарик (0-чёрный цвет). Ну вот вроде и всё. :yes:
Да и если всё равно не понятно или ти кодить не умеешь то скажи. Я тебе полностью сорц напишу и выложу.
GoodWind
Цитата
Я тебе полностью сорц напишу и выложу.

это ты молодец...
а вот аватар у тебя подозрительный <_<
Jahnerus
Ну вот типо делать нечего было :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
Здравствуйте, профессионалы и любители Паскаля. Подскажите, пожалуйста, как в графическом режиме в Паскале можно отображать русские буквы? Надеюсь на Ваше понимание и помощь?:p2:
volvo
Тебе нужны русифицированные CHR - шрифты.
Взять их можно, например, здесь
syrt
Jahnerus Спасибо! все вроде запустилось. rolleyes.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.