Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 18:25   #1
Abay19941308
Пользователь
 
Регистрация: 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.
Вложения
Тип файла: rar курсовая.rar (790.3 Кб, 14 просмотров)

Последний раз редактировалось Stilet; 11.12.2012 в 18:36.
Abay19941308 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошику в коде (игра Сапер) student14 Помощь студентам 4 17.05.2012 14:36
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Маджонг Милая Помощь студентам 0 15.06.2011 21:05
Маджонг gusluk Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 11.12.2010 20:14
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58