program g2048;
const dx:array[1..4] of integer=(1,0,-1,0);
dy:array[1..4] of integer=(0,1,0,-1);
var a:array[0..5,0..5] of integer;
spacei,spacej:array[1..16] of integer;
i,j,z:integer;
step0:longint;
q:boolean;
procedure print;
var k1,k2:integer;
begin
for k1:=1 to 4 do
begin
for k2:=1 to 4 do
write(a[k1,k2]:4);
writeln;
end;
end;
function remove:boolean;
var z1,z2,z3:integer;
begin
remove:=false;
for z1:=1 to 4 do
for z2:=1 to 4 do
for z3:=1 to 4 do
if a[z1,z2]=a[z1+dx[z3],z2+dy[z3]] then begin remove:=true;exit;end;
end;
function over:boolean;
var k1,k2:integer;
begin
over:=false;
for k1:=1 to 4 do
for k2:=1 to 4 do
if (a[k1,k2]=0) or remove then begin over:=true;exit;end;
end;
function jumpw(i1,i2,i3:integer):boolean;
var k1:integer;
begin
jumpw:=true;
for k1:=i3+1 to i1-1 do if a[k1,i2]<>0 then jumpw:=false;
end;
function jumps(i1,i2,i3:integer):boolean;
var k1:integer;
begin
jumps:=true;
for k1:=i1+1 to i3-1 do if a[k1,i2]<>0 then jumps:=false;
end;
function jumpa(i1,i2,i3:integer):boolean;
var k1:integer;
begin
jumpa:=true;
for k1:=i3+1 to i2-1 do if a[i1,k1]<>0 then jumpa:=false;
end;
function jumpd(i1,i2,i3:integer):boolean;
var k1:integer;
begin
jumpd:=true;
for k1:=i2+1 to i3-1 do if a[i1,k1]<>0 then jumpd:=false;
end;
procedure born;
var k1,k2,k3,ra:integer;
Pascal版2048 来自淘豆网m.daumloan.com转载请标明出处.