game puzzle trên pascal

C

chauchim

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

đây là code game puzzle trên pascal của kien_coi_1997
mình chạy toàn bị lỗi ko tạo được ra file bitmap
mọi người xem giúp mình với



Mã:
program game;
uses graph,crt;
var
 c,c1:char;
 x,y:shortint;dem,rd,z:word;
 lp,lp2:byte;  {lp2:dong,lp:cot}
 mau,maux:array[1..4,1..4]of shortint;
 Gd,Gm: Integer;
{____}
function mu(c,e:integer):integer;
var l1:integer;n:integer;
begin
n:=1;
if e>0 then
for l1:=1 to e do
n:=n*c;
mu:=n;
end;
{____}
procedure writedem(x,y:word);
var a,b:word;d:integer;
begin
 b:=dem;
 for d:=4 downto 0 do
 begin
  a:=b div (mu(10,d));
  case a of
   0:outtextxy(x+(4-d)*10,y,'0');
   1:outtextxy(x+(4-d)*10,y,'1');
   2:outtextxy(x+(4-d)*10,y,'2');
   3:outtextxy(x+(4-d)*10,y,'3');
   4:outtextxy(x+(4-d)*10,y,'4');
   5:outtextxy(x+(4-d)*10,y,'5');
   6:outtextxy(x+(4-d)*10,y,'6');
   7:outtextxy(x+(4-d)*10,y,'7');
   8:outtextxy(x+(4-d)*10,y,'8');
   9:outtextxy(x+(4-d)*10,y,'9');
   10:outtextxy(x+(4-d)*10,y,'10');
  end;
 b:=b mod mu(10,d);
 end;
end;
procedure hcn(x1,y1,x2,y2,mausac:word);
var loop:word;
begin
 setcolor(mausac);
 rectangle(x1,y1,x2,y2);
 for loop:=1 to y2-y1 do
 line(x1,y1+loop,x2,y1+loop);
end;
{_____}
procedure draw;
begin
 for lp:=1to 4do
  for lp2:=1 to 4 do
   hcn(50*(lp+7),50*(lp2),50*(lp+8),50*(lp2+1),maux[lp,lp2]);
   setcolor(15);
  rectangle(400,50,600,250);
  hcn(40+240,270,120+240,330,lightgray);
  setcolor(white);
  writedem(55+240,295);
  rectangle(45+240,275,115+240,325);
end;
{____}
procedure duoi;
var tmp:shortint;
begin
 if y>1 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x,y-1];
  maux[x,y-1]:=tmp;
  dem:=dem+1;
  y:=y-1;
 end;
end;
{____}
procedure tren;
var tmp:shortint;
begin
 if y<4 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x,y+1];
  maux[x,y+1]:=tmp;
  dem:=dem+1;
  y:=y+1;
 end;
end;
procedure phai;
var tmp:shortint;
begin
 if x>1 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x-1,y];
  maux[x-1,y]:=tmp;
  dem:=dem+1;
  x:=x-1;
 end;
end;
{____}
procedure trai;
var tmp:shortint;
begin
 if x<4 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x+1,y];
  maux[x+1,y]:=tmp;
  dem:=dem+1;
  x:=x+1;
 end;
end;
{ct chinh}
begin
 Gd := Detect; InitGraph(Gd, Gm,' ');
 if GraphResult <> grOk then Halt(1);
repeat
 cleardevice;
 dem:=0;
 {random}
 randomize;
 hcn(95,75,500,125,lightgray);
 setcolor(white);
 rectangle(100,80,495,120);
 Outtextxy(100,100,'           Nhan phim Enter de tiep tuc');
 repeat
 rd:=random(1000)+1;
 until keypressed;
 readln;
 cleardevice;
 {ve ket qua}
 for lp:=1to 4do
  for lp2:=1 to 4 do
  begin
  mau[lp,lp2]:=(lp-1)*4+(lp2); mau[4,4]:=0;
  hcn(50*(lp),50*(lp2),50*(lp+1),50*(lp2+1),mau[lp,lp2]);
  end; x:=4;y:=4; {x:cot,y:dong}
  setcolor(15);
  rectangle(50,50,250,250); {to vien}
 {gan maux = mau}
  for lp:=1 to 4 do
   for lp2:= 1 to 4 do
   maux[lp,lp2]:=mau[lp,lp2];
 {luat choi}
 OutTextXY(100,400,'Luat choi:');
 OutTextXY(100,420,'Ban hay an cac phim mui ten de xep hinh.');
 OutTextXY(105,430,'-   : Len tren');
 OutTextXY(105,440,'-   : Xuong duoi');
 OutTextXY(105,450,'-   : Sang trai');
 OutTextXY(105,460,'-   : Sang phai');
 OutTextXY(105,470,'- Esc : Thoat');
 outtextxy(120,430,#24);
 outtextxy(120,440,#25);
 outtextxy(120,450,#26);
 outtextxy(120,460,#27);
 {trao doi}
 repeat
 rd:=random(1000);
 if(rd mod 4 = 0) then tren;
 if(rd mod 4 = 1) then duoi;
 if(rd mod 4 = 2) then trai;
 if(rd mod 4 = 3) then phai;
 z:=z+1;
 until (z>200)and(x=4)and(y=4);
 dem:=0;draw;
 {bd choi}
 repeat
 c:=readkey;
 if c=#0 then
 begin
 c1:=readkey;
 if c1=#80 then duoi;
 if c1=#72 then tren;
 if c1=#75 then trai;
 if c1=#77 then phai;
 end;
 draw;
 z:=0;
 for lp:= 1 to 4 do
  for lp2:= 1 to 4 do
   if maux[lp,lp2]=mau[lp,lp2] then
    z:=z+1;
   if z=16 then c:=chr(27);
 until c=chr(27);
 {thang thua}
 if z=16 then
 begin
  cleardevice;
  hcn(30,40,600,110,lightgray);
  setcolor(white);
  rectangle(35,45,595,105);
  outtextxy(100,60,'Ban da thang voi ');
  writedem(235,60);
  outtextxy(245,60,'      lan di chuyen');
  outtextxy(100,80,'Nhan Esc de thoat hoac nhan Enter de tiep tuc');
  c:=readkey;
 end;
until c=chr(27);
CloseGraph;
end.
 
V

vao_lop_10

đây là code game puzzle trên pascal của kien_coi_1997
mình chạy toàn bị lỗi ko tạo được ra file bitmap
mọi người xem giúp mình với



Mã:
program game;
uses graph,crt;
var
 c,c1:char;
 x,y:shortint;dem,rd,z:word;
 lp,lp2:byte;  {lp2:dong,lp:cot}
 mau,maux:array[1..4,1..4]of shortint;
 Gd,Gm: Integer;
{____}
function mu(c,e:integer):integer;
var l1:integer;n:integer;
begin
n:=1;
if e>0 then
for l1:=1 to e do
n:=n*c;
mu:=n;
end;
{____}
procedure writedem(x,y:word);
var a,b:word;d:integer;
begin
 b:=dem;
 for d:=4 downto 0 do
 begin
  a:=b div (mu(10,d));
  case a of
   0:outtextxy(x+(4-d)*10,y,'0');
   1:outtextxy(x+(4-d)*10,y,'1');
   2:outtextxy(x+(4-d)*10,y,'2');
   3:outtextxy(x+(4-d)*10,y,'3');
   4:outtextxy(x+(4-d)*10,y,'4');
   5:outtextxy(x+(4-d)*10,y,'5');
   6:outtextxy(x+(4-d)*10,y,'6');
   7:outtextxy(x+(4-d)*10,y,'7');
   8:outtextxy(x+(4-d)*10,y,'8');
   9:outtextxy(x+(4-d)*10,y,'9');
   10:outtextxy(x+(4-d)*10,y,'10');
  end;
 b:=b mod mu(10,d);
 end;
end;
procedure hcn(x1,y1,x2,y2,mausac:word);
var loop:word;
begin
 setcolor(mausac);
 rectangle(x1,y1,x2,y2);
 for loop:=1 to y2-y1 do
 line(x1,y1+loop,x2,y1+loop);
end;
{_____}
procedure draw;
begin
 for lp:=1to 4do
  for lp2:=1 to 4 do
   hcn(50*(lp+7),50*(lp2),50*(lp+8),50*(lp2+1),maux[lp,lp2]);
   setcolor(15);
  rectangle(400,50,600,250);
  hcn(40+240,270,120+240,330,lightgray);
  setcolor(white);
  writedem(55+240,295);
  rectangle(45+240,275,115+240,325);
end;
{____}
procedure duoi;
var tmp:shortint;
begin
 if y>1 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x,y-1];
  maux[x,y-1]:=tmp;
  dem:=dem+1;
  y:=y-1;
 end;
end;
{____}
procedure tren;
var tmp:shortint;
begin
 if y<4 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x,y+1];
  maux[x,y+1]:=tmp;
  dem:=dem+1;
  y:=y+1;
 end;
end;
procedure phai;
var tmp:shortint;
begin
 if x>1 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x-1,y];
  maux[x-1,y]:=tmp;
  dem:=dem+1;
  x:=x-1;
 end;
end;
{____}
procedure trai;
var tmp:shortint;
begin
 if x<4 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x+1,y];
  maux[x+1,y]:=tmp;
  dem:=dem+1;
  x:=x+1;
 end;
end;
{ct chinh}
begin
 Gd := Detect; InitGraph(Gd, Gm,' ');
 if GraphResult <> grOk then Halt(1);
repeat
 cleardevice;
 dem:=0;
 {random}
 randomize;
 hcn(95,75,500,125,lightgray);
 setcolor(white);
 rectangle(100,80,495,120);
 Outtextxy(100,100,'           Nhan phim Enter de tiep tuc');
 repeat
 rd:=random(1000)+1;
 until keypressed;
 readln;
 cleardevice;
 {ve ket qua}
 for lp:=1to 4do
  for lp2:=1 to 4 do
  begin
  mau[lp,lp2]:=(lp-1)*4+(lp2); mau[4,4]:=0;
  hcn(50*(lp),50*(lp2),50*(lp+1),50*(lp2+1),mau[lp,lp2]);
  end; x:=4;y:=4; {x:cot,y:dong}
  setcolor(15);
  rectangle(50,50,250,250); {to vien}
 {gan maux = mau}
  for lp:=1 to 4 do
   for lp2:= 1 to 4 do
   maux[lp,lp2]:=mau[lp,lp2];
 {luat choi}
 OutTextXY(100,400,'Luat choi:');
 OutTextXY(100,420,'Ban hay an cac phim mui ten de xep hinh.');
 OutTextXY(105,430,'-   : Len tren');
 OutTextXY(105,440,'-   : Xuong duoi');
 OutTextXY(105,450,'-   : Sang trai');
 OutTextXY(105,460,'-   : Sang phai');
 OutTextXY(105,470,'- Esc : Thoat');
 outtextxy(120,430,#24);
 outtextxy(120,440,#25);
 outtextxy(120,450,#26);
 outtextxy(120,460,#27);
 {trao doi}
 repeat
 rd:=random(1000);
 if(rd mod 4 = 0) then tren;
 if(rd mod 4 = 1) then duoi;
 if(rd mod 4 = 2) then trai;
 if(rd mod 4 = 3) then phai;
 z:=z+1;
 until (z>200)and(x=4)and(y=4);
 dem:=0;draw;
 {bd choi}
 repeat
 c:=readkey;
 if c=#0 then
 begin
 c1:=readkey;
 if c1=#80 then duoi;
 if c1=#72 then tren;
 if c1=#75 then trai;
 if c1=#77 then phai;
 end;
 draw;
 z:=0;
 for lp:= 1 to 4 do
  for lp2:= 1 to 4 do
   if maux[lp,lp2]=mau[lp,lp2] then
    z:=z+1;
   if z=16 then c:=chr(27);
 until c=chr(27);
 {thang thua}
 if z=16 then
 begin
  cleardevice;
  hcn(30,40,600,110,lightgray);
  setcolor(white);
  rectangle(35,45,595,105);
  outtextxy(100,60,'Ban da thang voi ');
  writedem(235,60);
  outtextxy(245,60,'      lan di chuyen');
  outtextxy(100,80,'Nhan Esc de thoat hoac nhan Enter de tiep tuc');
  c:=readkey;
 end;
until c=chr(27);
CloseGraph;
end.
Nếu trên win vis, 7, 8 thì chạy bằng free pascal
 
T

thienvamai

đây là code game puzzle trên pascal của kien_coi_1997
mình chạy toàn bị lỗi ko tạo được ra file bitmap
mọi người xem giúp mình với



Mã:
program game;
uses graph,crt;
var
 c,c1:char;
 x,y:shortint;dem,rd,z:word;
 lp,lp2:byte;  {lp2:dong,lp:cot}
 mau,maux:array[1..4,1..4]of shortint;
 Gd,Gm: Integer;
{____}
function mu(c,e:integer):integer;
var l1:integer;n:integer;
begin
n:=1;
if e>0 then
for l1:=1 to e do
n:=n*c;
mu:=n;
end;
{____}
procedure writedem(x,y:word);
var a,b:word;d:integer;
begin
 b:=dem;
 for d:=4 downto 0 do
 begin
  a:=b div (mu(10,d));
  case a of
   0:outtextxy(x+(4-d)*10,y,'0');
   1:outtextxy(x+(4-d)*10,y,'1');
   2:outtextxy(x+(4-d)*10,y,'2');
   3:outtextxy(x+(4-d)*10,y,'3');
   4:outtextxy(x+(4-d)*10,y,'4');
   5:outtextxy(x+(4-d)*10,y,'5');
   6:outtextxy(x+(4-d)*10,y,'6');
   7:outtextxy(x+(4-d)*10,y,'7');
   8:outtextxy(x+(4-d)*10,y,'8');
   9:outtextxy(x+(4-d)*10,y,'9');
   10:outtextxy(x+(4-d)*10,y,'10');
  end;
 b:=b mod mu(10,d);
 end;
end;
procedure hcn(x1,y1,x2,y2,mausac:word);
var loop:word;
begin
 setcolor(mausac);
 rectangle(x1,y1,x2,y2);
 for loop:=1 to y2-y1 do
 line(x1,y1+loop,x2,y1+loop);
end;
{_____}
procedure draw;
begin
 for lp:=1to 4do
  for lp2:=1 to 4 do
   hcn(50*(lp+7),50*(lp2),50*(lp+8),50*(lp2+1),maux[lp,lp2]);
   setcolor(15);
  rectangle(400,50,600,250);
  hcn(40+240,270,120+240,330,lightgray);
  setcolor(white);
  writedem(55+240,295);
  rectangle(45+240,275,115+240,325);
end;
{____}
procedure duoi;
var tmp:shortint;
begin
 if y>1 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x,y-1];
  maux[x,y-1]:=tmp;
  dem:=dem+1;
  y:=y-1;
 end;
end;
{____}
procedure tren;
var tmp:shortint;
begin
 if y<4 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x,y+1];
  maux[x,y+1]:=tmp;
  dem:=dem+1;
  y:=y+1;
 end;
end;
procedure phai;
var tmp:shortint;
begin
 if x>1 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x-1,y];
  maux[x-1,y]:=tmp;
  dem:=dem+1;
  x:=x-1;
 end;
end;
{____}
procedure trai;
var tmp:shortint;
begin
 if x<4 then
 begin
  tmp:=maux[x,y];
  maux[x,y]:=maux[x+1,y];
  maux[x+1,y]:=tmp;
  dem:=dem+1;
  x:=x+1;
 end;
end;
{ct chinh}
begin
 Gd := Detect; InitGraph(Gd, Gm,' ');
 if GraphResult <> grOk then Halt(1);
repeat
 cleardevice;
 dem:=0;
 {random}
 randomize;
 hcn(95,75,500,125,lightgray);
 setcolor(white);
 rectangle(100,80,495,120);
 Outtextxy(100,100,'           Nhan phim Enter de tiep tuc');
 repeat
 rd:=random(1000)+1;
 until keypressed;
 readln;
 cleardevice;
 {ve ket qua}
 for lp:=1to 4do
  for lp2:=1 to 4 do
  begin
  mau[lp,lp2]:=(lp-1)*4+(lp2); mau[4,4]:=0;
  hcn(50*(lp),50*(lp2),50*(lp+1),50*(lp2+1),mau[lp,lp2]);
  end; x:=4;y:=4; {x:cot,y:dong}
  setcolor(15);
  rectangle(50,50,250,250); {to vien}
 {gan maux = mau}
  for lp:=1 to 4 do
   for lp2:= 1 to 4 do
   maux[lp,lp2]:=mau[lp,lp2];
 {luat choi}
 OutTextXY(100,400,'Luat choi:');
 OutTextXY(100,420,'Ban hay an cac phim mui ten de xep hinh.');
 OutTextXY(105,430,'-   : Len tren');
 OutTextXY(105,440,'-   : Xuong duoi');
 OutTextXY(105,450,'-   : Sang trai');
 OutTextXY(105,460,'-   : Sang phai');
 OutTextXY(105,470,'- Esc : Thoat');
 outtextxy(120,430,#24);
 outtextxy(120,440,#25);
 outtextxy(120,450,#26);
 outtextxy(120,460,#27);
 {trao doi}
 repeat
 rd:=random(1000);
 if(rd mod 4 = 0) then tren;
 if(rd mod 4 = 1) then duoi;
 if(rd mod 4 = 2) then trai;
 if(rd mod 4 = 3) then phai;
 z:=z+1;
 until (z>200)and(x=4)and(y=4);
 dem:=0;draw;
 {bd choi}
 repeat
 c:=readkey;
 if c=#0 then
 begin
 c1:=readkey;
 if c1=#80 then duoi;
 if c1=#72 then tren;
 if c1=#75 then trai;
 if c1=#77 then phai;
 end;
 draw;
 z:=0;
 for lp:= 1 to 4 do
  for lp2:= 1 to 4 do
   if maux[lp,lp2]=mau[lp,lp2] then
    z:=z+1;
   if z=16 then c:=chr(27);
 until c=chr(27);
 {thang thua}
 if z=16 then
 begin
  cleardevice;
  hcn(30,40,600,110,lightgray);
  setcolor(white);
  rectangle(35,45,595,105);
  outtextxy(100,60,'Ban da thang voi ');
  writedem(235,60);
  outtextxy(245,60,'      lan di chuyen');
  outtextxy(100,80,'Nhan Esc de thoat hoac nhan Enter de tiep tuc');
  c:=readkey;
 end;
until c=chr(27);
CloseGraph;
end.
cái này hình như phải chạy bằng turbo pascal đấy
 
Top Bottom