Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 01.06.2012, 20:21   #1
Nikitos_
Пользователь
 
Регистрация: 30.05.2012
Сообщений: 32
Восклицание ПОСМОТРИТЕ В ЧЁМ ОШИБКА

КАЧУ СДЕЛАТЬ ЧТОБЫ КРАСНЫЙ КВАДРАТ ДВИГАЛСЯ А ОН НЕ ДВИГАЕТСЯ НЕ МОГУ ПОНЯТЬ ИЗ ЗА ЧЕГО ПОСМОТРИТЕ
Код:
Program fift;
uses crt,graph;
const
n=4;
type mas=array[1..n,1..n] of integer;

VAR gm,gd,ch,vx,vy,l,i,j,n1,b:integer;
a:mas;
o:char;
procedure  zastavka;
 begin
 end;
procedure kvadrat(x,y,c,k:integer) ;
var i,j:integer;
begin
for i:=0 to k-1 do
for j:=0 to k-1 do
rectangle(x+i*c,y+j*c,x+i*c+c,y+j*c+c);

end;



procedure massiv;
var
i,j,k: integer;
s: set of byte;
begin
s:=[];

randomize;
for i:=1 to n do   begin
for j:=1 to n do begin
repeat
k:=random(16)+1;
until not (k in s );
a[i,j]:=k; s:=s+[k];

end ;
end;
end;

procedure odin (x,y,h:integer);
var i,j,d:integer;
ds:string;
begin
for i:=0 to 4-1 do
for j:=0 to 4-1   do    begin
d:=a[i+1,j+1];
str(d,ds);

if d<>16 then
outtextXY (x+h div 2+h*j,y+h div 2+h*i, ds);
end;
end;
procedure pusto(i,j:integer);
begin

for i:=1 to n do
for j:=1 to n do
if a[i,j]=16 then
floodfill(vx+n,vy+n,15);

end;
procedure kvadrat2(i,j,h,j1:integer);
begin
j1:=red;
setcolor(j1);
rectangle(i+2,j+2,i+h-2,j+h-2);
end;
procedure dvig(i,j,h,j1:integer);

begin
if keypressed then
begin
o:=readkey;
end;

if o=#115 then
begin
delay(100);
kvadrat2(i,j,h,0);
j:=j-h;
kvadrat2(i,j,h,j1);
end;


if o=#119 then
begin
delay(100);
kvadrat2(i,j,h,0);
j:=j+h;
kvadrat2(i,j,h,j1);
end;

if o=#100 then
begin
delay(100);
kvadrat2(i,j,h,0);
i:=i+h;
kvadrat2(i,j,h,j1);
end;

if o=#97 then
begin
delay(100);
kvadrat2(i,j,h,0);
i:=i-h;
kvadrat2(i,j,h,j1);

end;

if o=#27 then exit;
end;
BEGIN
gd:=detect;
Initgraph(gm,gd,'C:\TP7.1\TP\BGI');
vx:=250;
vy:=200;
l:=60;
ch:=4;
n1:=red;
kvadrat2(vx,vy,l,n1);
setcolor(15);
massiv;
kvadrat(vx,vy,l,ch);

odin(vx,vy,l) ;


outtext('exit "enter"');

repeat;
dvig(vx,vy,l,n1);
until o=#27;

end.
Nikitos_ вне форума Ответить с цитированием
Старый 01.06.2012, 21:33   #2
zhenka619
Дурачок
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 33
По умолчанию Форматируй текст, смотреть неприятно!

можешь поосмотреть мой исходник, там танк (прямоугольник) глючит когда стреляет но двигается он норм!!
http://www.cyberforum.ru/pascal/thread592851.html
zhenka619 вне форума Ответить с цитированием
Старый 01.06.2012, 22:08   #3
Nikitos_
Пользователь
 
Регистрация: 30.05.2012
Сообщений: 32
По умолчанию

он тоже не двигается походу((
Nikitos_ вне форума Ответить с цитированием
Старый 02.06.2012, 00:28   #4
zhenka619
Дурачок
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 33
По умолчанию Наоборот двигается

Просто компилируй не free pascal а turbo pascal!!!(free pascal не читает кнопки!!!)
zhenka619 вне форума Ответить с цитированием
Старый 02.06.2012, 01:59   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от zhenka619 Посмотреть сообщение
Просто компилируй не free pascal а turbo pascal!!!(free pascal не читает кнопки!!!)
женька619, не надо людей вводить в заблуждение и перетягивать обратно на старье..
FreePascal прекрасно читает "кнопки" (клавиши, если точнее). Просто надо в строке USES вместо CRT поставить WinCRT.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 02.06.2012, 13:30   #6
Nikitos_
Пользователь
 
Регистрация: 30.05.2012
Сообщений: 32
По умолчанию

поставил я WinCRT, и толку то, раньше хоть клавишу ESC выходило из программи а сейчас и она не действует
Nikitos_ вне форума Ответить с цитированием
Старый 02.06.2012, 13:33   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Free Pascal открывает 2 окна - одно для графики, другое для чтение\вывода, переключаешься между окнами и в выводе жмем свой "ESC"...
Poma][a вне форума Ответить с цитированием
Старый 02.06.2012, 13:43   #8
Nikitos_
Пользователь
 
Регистрация: 30.05.2012
Сообщений: 32
По умолчанию

это я знаю но он всё равно не выходит

а может вы ещё знаете как сделать чтобы пустой квадрат в игре пятнашки появлялся всегда в нижнем правом угло, а он у меня постоянно рондомом появляется

Последний раз редактировалось Stilet; 02.06.2012 в 14:14.
Nikitos_ вне форума Ответить с цитированием
Старый 02.06.2012, 14:47   #9
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Free Pascal открывает 2 окна - одно для графики, другое для чтение\вывода, переключаешься между окнами и в выводе жмем свой "ESC"...
Ромаха, не сбивай народ с толку. Не надо никаких переключений между окнами, если используешь WinCRT.

По Esc прекрасно выходит. И вообще, я отвечал на пост zhenka619. Никитос, я понимаю, что у тебя проблемы с движением квадрата, но на это я не отвечал. Если хочешь - посмотрю, но не сейчас..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 02.06.2012, 14:56   #10
Nikitos_
Пользователь
 
Регистрация: 30.05.2012
Сообщений: 32
По умолчанию

посмотри плиз
Nikitos_ вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём ошибка? kotaina Общие вопросы Delphi 0 24.06.2011 16:36
Посмотрите в чём ошибка процедуры PrintFile. Программа останавливается. Антон Лысенко Помощь студентам 11 26.12.2010 22:07
Посмотрите в чем ошибка Никуля_усталая Помощь студентам 8 13.11.2010 23:05
в чём ошибка артём1 Помощь студентам 1 02.11.2010 02:11