Не запускается код - Free Pascal (192)

Узнай цену своей работы

Формулировка задачи:

Скопировал код игры хотел посмотреть что вообще из себя это представляет но при компиляции выдает ошибку. Что это за ошибка? Как просмотреть эту программу?
uses wingraph,wincrt;
type mas=array[1..4,1..4] of integer;
var ch:char;
a:mas;
g d,gm,x,x2,y,i,j,xzas,yzas,dxzas,dyzas:integer;
//====================Переменные для картинок
=============
p2048,menu,kmenu,helpkar,game12,proigral,win:pointer;
//================Функция которая загружает
картинки=========
function loader(filename:string):pointer;
var sz:longint;
p:pointer;
f:file;
begin
assign(f,filename);
reset(f,1);
sz:=filesize(f);
getmem(p,sz);
blockread(f,p^,sz);
close(f);
loader:=p;
end;
//================Управление курсором
=====================
procedure upr (var ch:char;var x,y:integer);
begin
ch:=readkey;
putimage(x,y,kmenu^,xorput);
if ch=#0 then ch:=readkey;
case ch of
#72: if y>99 then y:=y-220;
#80: if y<550 then y:=y+220;
end;
if y>545 then y:=100;
if y<100 then y:=540;
putimage(x,y,kmenu^,xorput);
end;
///==============Спавн случайной плитки на
поле =================
procedure random4ik(sran:string;var a:mas);
var start11,start2,r1:integer;
bb:boolean;
begin
bb:=false;
for i:=1 to 4 do
for j:=1 to 4 do
if a[i,j] = 0 then bb:=true;
if (bb = true) then
begin
repeat
start11:=random(4)+1;
start2:=random(4)+1;
until a[start11,start2]=0;
r1:=random(100)+1;3
case r1 of
1..89: a[start11,start2]:=2;
90..100:a[start11,start2]:=4;
end;
settextstyle(0,1,5);
str(a[start11,start2],sran); outtextxy(start2*100,start11*100,sran);
end;
end;
//===========Есть ли пустые клетки на
поле====================
function proverka(a:mas): boolean;
var i,j,k,z:integer;
begin
proverka:=true;
for i:=1 to 4 do
for j:=1 to 4 do
if (a[i,j] = 0) then proverka:=false else
end;
//====================Управление
плитками====================
procedure uprav (var ch:char; var x,x2,y,summa:integer);
var k,i,l,start11,start2,y2,x3:integer;
b:boolean;
s1,schet,sran:string;
begin
ch:=readkey;
if ch=#0 then ch:=readkey;
case ch of
#72: begin
//======================================ВВЕРХ
for j:=1 to 4 do
begin
for i:=1 to 4 do
begin
for k:=i+1 to 4 do
begin
if (a[k,j] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[k,j]) then
begin
a[i,j]:=a[i,j]+a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
//а -¤®¬
if proverka(a)=false then
begin
delay(200);
random4ik(sran,a);
end;
end;
#80: begin
//============================================ВН
ИЗ
for j:=1 to 4 do
begin
for i:=4 downto 1 do
begin
for k:=i-1 downto 1 do
begin
if (a[k,j] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[k,j]) then
begin
a[i,j]:=a[i,j]+a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
//а -¤®¬
if proverka(a)=false then
begin
delay(100);
random4ik(sran,a);
end;
end;
#77: begin
//=========================================ВПРАВ
О
for i:=1 to 4 do
begin
for j:=4 downto 1 do
begin
for k:=j-1 downto 1 do
begin
if (a[i,k] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[i,k]) then
begin
a[i,j]:=a[i,j]+a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end4
else
break;
end;
end;
end;
end;
if proverka(a)=false then
begin
delay(100);
random4ik(sran,a);
end;
end;
#75: begin
//========================================ВЛЕВО
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
for k:=j+1 to 4 do
begin
if (a[i,k] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[i,k]) then
begin
a[i,j]:=a[i,j]+a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
if proverka(a)=false then
begin
delay(100);
random4ik(sran,a);
end;
end;
end;
end;
//================Победа=========================
==
procedure gg(a:mas);
var
i,j:integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
if a[i,j] = 2048 then
begin
cleardevice;
putimage(0,0,win^,xorput);
end;
end;
//==================Процедура
заставки====================
procedure zastavka(var xzas,yzas,dxzas,dyzas:integer);
begin
putimage(xzas,yzas,p2048^,xorput);
xzas:=xzas+dxzas;
yzas:=yzas+dyzas;
if (xzas>getmaxx-100) then dxzas:=-dxzas;
if (xzas<0) then dxzas:=-dxzas;
putimage(xzas,yzas,p2048^,xorput);
if (yzas>getmaxy-100) then dyzas:=-dyzas;
if (yzas<0) then dyzas:=-dyzas;
settextstyle(1,1,1);
outtextxy(0,getmaxy-20,'Game created: Vyacheslav Agibalov');
delay(30);
end;
//===================Процедура
игры=========================
procedure game;
var x1,y1,start11,start12,start2,start22,summa:integer;
s,s1:string;
begin
cleardevice;
start11:=0;
start12:=0;
start2:=0;
summa:=0;
for i:=1 to 4 do
for j:=1 to 4 do a[i,j]:=0;
//=====================Отрисовка игрового
поля============
setfillstyle(1,red);
putimage(0,0,game12^,xorput);
bar(700,400,1000,480);
settextstyle(0,1,5);
outtextxy(700,400,'0');
//===============================================
=========
start11:=random(4)+1;
start2:=random(4)+1 ;
a[start11,start2]:=2;
repeat
start12:=random(4)+1;
start22:=random(4)+1;
until a[start12,start2]=0;
a[start12,start22]:=2;
settextstyle(0,1,5);
str(a[start11,start2],s);
str(a[start12,start22],s1);
outtextxy(start2*100,start11*100,s);
outtextxy(start22*100,start12*100,s1);
repeat
uprav(ch,x,x2,y,summa);
gg(a);
until (ch=#27)or(proverka(a));
if proverka(a) then begin
delay(2000);
cleardevice;
putimage(0,0,proigral^,xorput);
delay(2000);
end;
end;
//======================HELP====================
===========
procedure help;
begin
cleardevice;
putimage(0,0,helpkar^,xorput);
readkey;
end;
//==================ГЛАВНАЯ
ПРОГРАММА=================
begin
gd:=detect;
initgraph(gd,gm ,'');
randomize;
//=================Загрузка
картинок=========================
menu:=loader('2048/menu2.bmp');
kmenu:=loader('2048/kursor.bmp');
helpkar:=loader('2048/help1.bmp');5
p2048:=loader('2048/2048.bmp');
game12:=loader('2048/game12.bmp');
proigral:=loader('2048/pr5.bmp');
win:=loader('2048/win.bmp');
//=================Начальные значения
переменных==============
xzas:=random(getmaxx div 2);
yzas:=random(getmaxy div 2);
x2:=200;
dxzas:=random(10)+20;
dyzas:=random(10)+20;
//==================Заставка======================
=========== putimage(xzas,yzas,p2048^,xorput);
repeat
zastavka(xzas,yzas,dxzas,dyzas);
until keypressed;
readkey;
//==================Меню========================
===========
repeat
x:=400;
y:=100;
cleardevice;
putimage(0,0,menu^,xorput);
putimage(x,y,kmenu^,xorput);
repeat
upr(ch,x,y);
until ch=#13;
case y of
100:game;
320:help;
end;
until y=540;
end.

Решение задачи: «Не запускается код»

textual
Листинг программы
uses wingraph,wincrt;
type mas=array[1..4,1..4] of integer;
var ch:char;
    a:mas;
    g,d,gm,x,x2,y,i,j,xzas,yzas,dxzas,dyzas:integer;
//====================Переменные для картинок=============
p2048,menu,kmenu,helpkar,game12,proigral,win:pointer;
//================Функция которая загружает картинки=========
function loader(filename:string):pointer;
var sz:longint;
    p:pointer;
    f:file;
begin
assign(f,filename);
reset(f,1);
sz:=filesize(f);
getmem(p,sz);
blockread(f,p^,sz);
close(f);
loader:=p;
end;
//================Управление курсором=====================
procedure upr (var ch:char;var x,y:integer);
begin
ch:=readkey;
putimage(x,y,kmenu^,xorput);
if ch=#0 then ch:=readkey;
case ch of
#72: if y>99 then y:=y-220;
#80: if y<550 then y:=y+220;
end;
if y>545 then y:=100;
if y<100 then y:=540;
putimage(x,y,kmenu^,xorput);
end;
///==============Спавн случайной плитки на поле =================
procedure random4ik(sran:string;var a:mas);
var start11,start2,r1:integer;
    bb:boolean;
begin
bb:=false;
for i:=1 to 4 do
for j:=1 to 4 do
if a[i,j] = 0 then bb:=true;
if (bb = true) then
begin
repeat
start11:=random(4)+1;
start2:=random(4)+1;
until a[start11,start2]=0;
r1:=random(100)+1;
case r1 of
1..89  : a[start11,start2]:=2;
90..100:a[start11,start2]:=4;
end;
settextstyle(0,1,5);
str(a[start11,start2],sran); outtextxy(start2*100,start11*100,sran);
end;
end;
//===========Есть ли пустые клетки на поле====================
function proverka(a:mas): boolean;
var i,j,k,z:integer;
begin
proverka:=true;
for i:=1 to 4 do
for j:=1 to 4 do
if (a[i,j] = 0) then proverka:=false else
end;
//====================Управление плитками====================
procedure uprav (var ch:char; var x,x2,y,summa:integer);
var k,i,l,start11,start2,y2,x3:integer;
b:boolean;
s1,schet,sran:string;
begin
ch:=readkey;
if ch=#0 then ch:=readkey;
case ch of
#72: begin
//======================================ВВЕРХ
for j:=1 to 4 do
begin
for i:=1 to 4 do
begin
for k:=i+1 to 4 do
begin
if (a[k,j] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[k,j]) then
begin
a[i,j]:=a[i,j]+a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
//р -дом
if proverka(a)=false then
begin
delay(200);
random4ik(sran,a);
end;
end;
#80: begin
//============================================ВНИЗ
for j:=1 to 4 do
begin
for i:=4 downto 1 do
begin
for k:=i-1 downto 1 do
begin
if (a[k,j] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[k,j]) then
begin
a[i,j]:=a[i,j]+a[k,j];
a[k,j]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(j*100+4,k*100+4,j*100+90,k*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
//р -дом
if proverka(a)=false then
begin
delay(100);
random4ik(sran,a);
end;
end;
#77: begin
//=========================================ВПРАВО
for i:=1 to 4 do
begin
for j:=4 downto 1 do
begin
for k:=j-1 downto 1 do
begin
if (a[i,k] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[i,k]) then
begin
a[i,j]:=a[i,j]+a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
if proverka(a)=false then
begin
delay(100);
random4ik(sran,a);
end;
end;
#75: begin
//========================================ВЛЕВО
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
for k:=j+1 to 4 do
begin
if (a[i,k] <> 0) then
begin
if (a[i,j] = 0) then
begin
a[i,j]:= a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
if (a[i,j] = a[i,k]) then
begin
a[i,j]:=a[i,j]+a[i,k];
a[i,k]:=0;
bar(j*100+4,i*100+4,j*100+90,i*100+90);
bar(k*100+4,i*100+4,k*100+90,i*100+90);
summa:=summa+a[i,j];
str(summa,schet);
bar(700,400,1000,480);
outtextxy(700,400,schet);
str(a[i,j],s1);
outtextxy(j*100,i*100,s1);
end
else
break;
end;
end;
end;
end;
if proverka(a)=false then
begin
delay(100);
random4ik(sran,a);
end;
end;
end;
end;
//================Победа=========================
 
procedure gg(a:mas);
var
i,j:integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
if a[i,j] = 2048 then
begin
cleardevice;
putimage(0,0,win^,xorput);
end;
end;
//==================Процедура заставки====================
procedure zastavka(var xzas,yzas,dxzas,dyzas:integer);
begin
putimage(xzas,yzas,p2048^,xorput);
xzas:=xzas+dxzas;
yzas:=yzas+dyzas;
if (xzas>getmaxx-100) then dxzas:=-dxzas;
if (xzas<0) then dxzas:=-dxzas;
putimage(xzas,yzas,p2048^,xorput);
if (yzas>getmaxy-100) then dyzas:=-dyzas;
if (yzas<0) then dyzas:=-dyzas;
settextstyle(1,1,1);
outtextxy(0,getmaxy-20,'Game created: Vyacheslav Agibalov');
delay(30);
end;
//===================Процедура игры=========================
procedure game;
var x1,y1,start11,start12,start2,start22,summa:integer;
s,s1:string;
begin
cleardevice;
start11:=0;
start12:=0;
start2:=0;
summa:=0;
for i:=1 to 4 do
for j:=1 to 4 do a[i,j]:=0;
//=====================Отрисовка игрового поля============
setfillstyle(1,red);
putimage(0,0,game12^,xorput);
bar(700,400,1000,480);
settextstyle(0,1,5);
outtextxy(700,400,'0');
//========================================================
start11:=random(4)+1;
start2:=random(4)+1 ;
a[start11,start2]:=2;
repeat
start12:=random(4)+1;
start22:=random(4)+1;
until a[start12,start2]=0;
a[start12,start22]:=2;
settextstyle(0,1,5);
str(a[start11,start2],s);
str(a[start12,start22],s1);
outtextxy(start2*100,start11*100,s);
outtextxy(start22*100,start12*100,s1);
repeat
uprav(ch,x,x2,y,summa);
gg(a);
until (ch=#27)or(proverka(a));
if proverka(a) then begin
delay(2000);
cleardevice;
putimage(0,0,proigral^,xorput);
delay(2000);
end;
end;
//======================HELP===============================
procedure help;
begin
cleardevice;
putimage(0,0,helpkar^,xorput);
readkey;
end;
//==================ГЛАВНАЯ ПРОГРАММА=================
begin
g:=detect;
initgraph(g,gm ,'');
randomize;
//=================Загрузка картинок=========================
menu:=loader('2048/menu2.bmp');
kmenu:=loader('2048/kursor.bmp');
helpkar:=loader('2048/help1.bmp');
p2048:=loader('2048/2048.bmp');
game12:=loader('2048/game12.bmp');
proigral:=loader('2048/pr5.bmp');
win:=loader('2048/win.bmp');
//=================Начальные значения переменных==============
xzas:=random(getmaxx div 2);
yzas:=random(getmaxy div 2);
x2:=200;
dxzas:=random(10)+20;
dyzas:=random(10)+20;
//==================Заставка=================================
putimage(xzas,yzas,p2048^,xorput);
repeat
zastavka(xzas,yzas,dxzas,dyzas);
until keypressed;
readkey;
//==================Меню===================================
repeat
x:=400;
y:=100;
cleardevice;
putimage(0,0,menu^,xorput);
putimage(x,y,kmenu^,xorput);
repeat
upr(ch,x,y);
until ch=#13;
case y of
100:game;
320:help;
end;
until y=540;
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5