Пользователь
Регистрация: 29.10.2012
Сообщений: 64
|
Игра маджонг. Ошибка в коде!!!
Игра маджонг.
Не могу вывести на экран картинки(фишки) так чтобы выводилось по 4 одинаковых фишки на игровом поле.Всего фишек 100.Ошибка как я думаю в этом куске кода
Код:
procedure GenMap(var z: mas; var n: byte);
var i,j,ik,jk:byte;
begin
n:=10; ik:=random(n)+1; jk:=random(n)+1;
for i:=1 to n do
for j:=1 to n do
begin
repeat
ik:=random(n)+1; jk:=random(n)+1;
until z[ik,jk]=0;
nk:=0; flag:=0; vyh:=true;
while vyh do
begin
flag:=0;
nk:=random(10)+1;
for i1:=1 to i do
for j1:=1 to j do
if z[i1,j1]=nk then flag:=flag+1;
if (flag<4) then vyh:=false;
writeln(nk:10, flag:5);
for i1:=1 to n do begin
for j1:=1 to n do
write(z[i1,j1]:5);
writeln;
end;
writeln; writeln; writeln; writeln; writeln;
end;
z[ik,jk]:=nk;
writeln(nk);
//z[ik,jk]:=j;
end;
for i:=1 to n do begin
for j:=1 to n do
write(z[i,j]:5);
writeln;
end;
end;
сама курсовая
Код:
uses graphabc,Events,ABCObjects;
const nmax=10;
type mas=array [1..nmax,1..nmax] of byte;
var Mk:array [1..10, 1..10] of PictureABC;
a: mas; n: byte;ll,zp:PictureABC;k,b,i,j,i1,j1,flag,flag1, nk:integer;
xk,yk: integer; vyh:boolean;
procedure numb(x,y,n: integer);
begin
ll:=PictureABC.Create(x,y,'bamboo'+inttostr(n)+'.png');
end;
procedure GenMap(var z: mas; var n: byte);
var i,j,ik,jk:byte;
begin
n:=10; ik:=random(n)+1; jk:=random(n)+1;
for i:=1 to n do
for j:=1 to n do
begin
repeat
ik:=random(n)+1; jk:=random(n)+1;
until z[ik,jk]=0;
nk:=0; flag:=0; vyh:=true;
while vyh do
begin
flag:=0;
nk:=random(10)+1;
for i1:=1 to i do
for j1:=1 to j do
if z[i1,j1]=nk then flag:=flag+1;
if (flag<4) then vyh:=false;
writeln(nk:10, flag:5);
for i1:=1 to n do begin
for j1:=1 to n do
write(z[i1,j1]:5);
writeln;
end;
writeln; writeln; writeln; writeln; writeln;
end;
z[ik,jk]:=nk;
writeln(nk);
//z[ik,jk]:=j;
end;
for i:=1 to n do begin
for j:=1 to n do
write(z[i,j]:5);
writeln;
end;
end;
procedure DrawMap(z: mas; n: byte);
var i,j: byte; x,y: integer;
begin
n:=10;
for i:=1 to n do
for j:=1 to n do
begin
xk:=25+(43*i); yk:=25+(60*j);
//numb(xk,yk,z[i,j]);
mk[i,j]:= PictureABC.Create(xk,yk,'bamboo'+inttostr(a[i,j])+'.png');
end;end;
procedure mousedown(x,y,mb:integer);
begin
//âòîðîé êëèê
if (k<>0) and (b<>0) then
begin
flag1:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j]<>0 then if mk[i,j].ptinside(x,y)=true then
if a[i,j] = a[k,b] then begin mk[i,j].destroy; mk[k,b].destroy; a[i,j] :=0; a[k,b]:=0; flag1:=1; end;
end;
if (flag1 = 0) then begin zp.visible:=false; k:=0; b:=0; end;
{i1:=i1+1;j1:=j1+1;
writeln(1);
Mk[i1,j1]:=pictureABC.create(x,y,'bamboo'+inttostr(a[i,j])+'.png');
writeln(2);
a[i1,j1]:=1; }
flag:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j]<>0 then if mk[i,j].ptinside(x,y)=true then begin
zp.visible:=true;
zp.moveto(mk[i,j].left,mk[i,j].top);
mk[i,j].tofront;
k:=i;
b:=j;
flag:=1;
//k,b - íîìåð óæå âûäåëåííîãî ýëåìåíòà ôëàã äëÿ ïðîâåðêè âûäåëåíèÿ
//mk[i,j].destroy; //âûäåëÿòü ìåòêà 1
//a[i,j]:=0;
//mk[i+1,j+1].destroy;
end;
if (flag = 0) then begin zp.visible:=false; k:=0; b:=0; end;
end;
begin
k:=0;
b:=0;
loadwindow('ñíèìîê.png');
GenMap(a,n);
DrawMap(a,n);
SetWindowSize(648,496);
i1:=1;j1:=1;
onmousedown:=mousedown;
{ zp:=CreatePictureABC(0,200,'11.bmp');
zp.width:=45;
zp.height:=60;
zp.visible:=false; }
end.
Последний раз редактировалось Stilet; 11.12.2012 в 18:36.
|