1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Ни на одном форуме мне никто не смог помочь. Надеюсь, что здесь я все таки найду помощь
1. Написать программу, которая выводит на экран меню, в котором в зависимости от выбора пользователя появляется круг, квадрат или треугольник.
2. Напишите программу, которая в зависимости от кода нажатой клавиши (используйте клавиши перемещения курсора) управляет движением фигуры человечка (вверх, вниз, влево, вправо). Образ человечка занесите в память.
которая в зависимости от кода нажатой клавиши (используйте клавиши перемещения курсора) управляет движением фигуры человечка (вверх, вниз, влево, вправо
Я сделал вторую программу, но столкнулся с проблемой. У меня на экране два человечка: один висит в левом верхнем углу, другим я управляю с помощью клавиш. Как убрать первого?
program z1; uses graph,crt; var xold,yold,dx,dy,drivervar,modevar,i,size,x,y,xmax,ymax:integer; p1,p2:pointer; c:char; begin drivervar:=detect; detectgraph(drivervar,modevar); initgraph(drivervar,modevar, ' '); size:=imagesize(0,0,20,100); setlinestyle(0,0,3); pieslice(10,10,0,360,10); fillellipse(10,40,10,20); line(8,50,0,100); line(12,60,20,100); getmem(p1,size); getimage(0,0,20,100,p1^); dx:=1; dy:=1; x:=100;y:=100; xmax:=getmaxx;ymax:=getmaxy; repeat; putimage(x,y,p1^,1); xold:=x;yold:=y; c:=readkey; if c=#0 then c:=readkey; case c of #72:if y>1 then y:=y-dy; #75:if x>2 then x:=x-dx; #80:if y<ymax-100 then y:=y+dy; #77:if x<xmax-20 then x:=x+dx; end; putimage(xold,yold,p1^,1); until c=#27; freemem(p1,size); closegraph; end.
Кстати, добавление 2-х строк выявляет глюк в программе: ты копируешь изображение не полностью. несколько пикселей остаются на экране... Увеличь ширину копируемой области...
Dezman, по приведенной тобой ссылке есть текст модуля... Сохрани его в файл под именем FUNIT.PAS в той же папке, что и твоя программа, и в основной программе делай
Uses { что там у тебя было }, FUnit; { <--- Все, модуль подключен, можешь использовать } ...
(для компиляции нажимай F9, а не Alt+F9, тогда сначала скомпилируется модуль, а потом - твоя программа...)