Exit code 1 - Free Pascal

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

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

Имеется программка с меню и графикой. Компилируется нормально, но при запуске выдает exit code 1. Как с ним справиться?
uses graph,crt;
type mas=array[1..4,1..4] of integer;
var ch:char;
a:mas;
gd,gm,xkursor,ykursor,i,j,xzas,yzas,dxzas,dyzas,b,c: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 xkursor,y:integer);
  begin
     ch:=readkey;
     putimage(xkursor,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(xkursor,y,kmenu^,xorput);
  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
    for k:=2 to 3 do
     for z:= 2 to 3 do
      if (a[k,z] = a[k+1,z]) or (a[k,z] = a[k-1,z]) or (a[k,z] = a[k,z-1]) or
      (a[k,z] = a[k,z+1]) then
      proverka:=false
       else if ((a[1,j] = a[2,j]) or (a[2,j] = a[3,j]) or
       (a[3,j] = a[4,j])) or ((a[i,1] = a[i,2]) or (a[i,2] = a[i,3]) or
       (a[i,3] = a[i,4])) then proverka:=false;
 
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: Podlesny Ilya');
   delay(30);
  end;
 
 procedure game;
var
f:text;
l,i,n,c,m1,m2,h,z,LoshadCount:Integer;
        max:Real;
        v:array[1..7] of integer;
        s:array[1..7] of real;
begin
begin
        clrscr;
        l:=0;
        Randomize;
        LoshadCount:=Random(6)+2;
        z:=Random(5)+3;
    m1:=Random(4)+2;
        m2:=Random(5)+6;

        begin
                assign(f,'C:\Users\iDeathless\Desktop\data Racecourse\Input.txt');
                rewrite(f);
                write(f,m1);
                write(f,m2);
                close(f);
        end;
 
        for h:=1 to z do
        begin
 
        // Stavki
        Randomize;
        LoshadCount:=Random(6)+2;
        n:=0;
        repeat
                write('Vibirite loshad (ot 1 do ', LoshadCount,'): ');
                readln(n);
        until n in [1..LoshadCount];
 
        // Zaezd
        Randomize;
        for i:=1 to LoshadCount do
                s[i]:=round(Random(m2-m1+1)+m1)*7;
 
        // Finish
        max:=s[1];
        for i:=2 to LoshadCount do
                if s[i]>max then max:=s[i];
 
        c:=0;
        for i:=1 to LoshadCount do
                if s[i]=max then begin
                        Inc(c);
                        v[c]:=i;
                end;
        if c=1 then begin
                c:=v[1];
        end
        else begin
        // Fotofinish
                max:=max+0.001;
                c:=Random(c)+1;
                c:=v[c];
                s[c]:=max;
        end;
 
        // Resultat
        Writeln;
        Writeln ('--------------------');
        Writeln ('      Sredniya');
        Writeln ('Loshad        skorost,        Resultat');
        Writeln ('      km/ch');
        Writeln ('--------------------');
        for i:=1 to LoshadCount do begin
                Write (' ', i, s[i]:15:3);
                if i=c then Write ('     POBEDITEL');
                Writeln();
        end;
        Writeln ('--------------------');
        Writeln;
 
        if c=n then
                begin
                Writeln ('VI VIIGRALI !!!');
                l:=l+1;
                end
        else
                Writeln ('Vi proigrali');
 
        Readln;
        clrscr;
end;
end;
begin
assign(f,'C:\Users\iDeathless\Desktop\data Racecourse\Output.txt');
rewrite(f);
write(f,l);
write(f,z);
close(f);
end;
end;

procedure help;
 begin
     cleardevice;
     putimage(0,0,helpkar^,xorput);
     readkey;
 end;
 
begin
 gd:=detect;
 b:=9;
 c:=11;
 initgraph(b,c,'');
 randomize;
 
 menu:=loader('buhf/menu2.bmp');
 kmenu:=loader('buhf/kursor.bmp');
 helpkar:=loader('buhf/help1.bmp');
 p2048:=loader('buhf/2048.bmp');
 game12:=loader('buhf/game12.bmp');
 proigral:=loader('buhf/pr5.bmp');
 win:=loader('buhf/win.bmp');
 
 xzas:=random(getmaxx div 2);
 yzas:=random(getmaxy div 2);
 dxzas:=random(10)+20;
 dyzas:=random(10)+20;
 
 putimage(xzas,yzas,p2048^,xorput);
 repeat
  zastavka(xzas,yzas,dxzas,dyzas);
 until keypressed;
 readkey;
 
 repeat
  xkursor:=400;
  ykursor:=100;
    cleardevice;
     putimage(0,0,menu^,xorput);
     putimage(xkursor,ykursor,kmenu^,xorput);
      repeat
        upr(ch,xkursor,ykursor);
      until ch=#13;
       case ykursor of
         100:game;
         320:help;
   end;
 until ykursor=540;
end.

Решение задачи: «Exit code 1»

textual
Листинг программы
putimage(xzas,yzas,p2048^,xorput);
 repeat
  zastavka(xzas,yzas,dxzas,dyzas);
 until keypressed;
 readkey;

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

6   голосов , оценка 3.833 из 5
Похожие ответы