void CUkladanka::PrzygotujUkladanke()
{
//* początkowa inicjalizacja elementami kolejno 0-99 // 0-99 poprawny uklad
for(int i=0; i < rozmiar; i++)
for(int j=0; j < rozmiar;j++)
elementy[i][j] = rozmiari + j;
int rx=0, ry=0, c = 0;
//*/ pomieszanie elementów ukladanki metodą zamiany miejscami*//
for(int i = 0; i < rozmiar; i++)
for(int j=0; j < rozmiar; j++)
{
rx = rand() % rozmiar;
ry = rand() % rozmiar;
c = elementy[i][j];
elementy[i][j] = elementy[rx][ry];
elementy[rx][ry] = c;
}
pi = rand() % rozmiar;
pj = rand() % rozmiar;
pi = 1;
pj = 1;
elementy[pi][pj] = -100; // wartosc luki
}
void CUkladanka::Rysuj()
{
int d; // wymiar bitmapy bufor
d = obrazek->w / rozmiar;
BITMAP *czarna = create_bitmap(d,d);
clear_to_color(czarna,CZARNY);
int x,y;
int bx,by;
BITMAP *bufor;
for(int i=0; i < rozmiar;i++)
for(int j=0; j < rozmiar; j++)
{
x = j*d;
y = i*d;
bx = (elementy[i][j] % rozmiar)*d;//bx by to sa pozycje w pikselach z ktorych nalezy zaczac kopiowanie fragmentu bitmapy z obrazkiem przedstawiajacej element
//dzilelisz przez rozmiar zeby uzyskac wiersz i kolumne danego elementu
by = (elementy[i][j] / rozmiar)*d;
if(elementy[i][j] == -100)
blit(czarna,pole_gry,0,0,x,y,d,d);
else
blit(obrazek,pole_gry,bx,by,x,y,d,d);
}
Wiem ze to zawracanie głowy ale chciałbym sie dowiedziec jak działaja te funkcje linijka po linijce bardzo istotne prosze o pomoc.