Esempio n. 1
0
void Board::generate()
{
    int i,j,k,l;
    int num;
    int tLeft = length*height;
    int x, y;
    int **temp = new int *[height+2];
    for (i = 0; i <= height+1; i++)
        temp[i] = new int[length+2];
    for (i = 0; i <= height+1; i++)
        for (j = 0; j <= length+1; j++)
            matrix[i][j] = temp[i][j] = -1;

    srand((unsigned int)time(NULL));
    for (i = 0; i < (height*length)/2; i++)
    { 
        num = rand() % pictureType;
        for (j = 0; j < 2; j++)
        {
            x = rand()%height+1;
            y = rand() % length+1;
            while (matrix[x][y] != -1)
            {
                y++;
                if ( y == length+1)
                {
                    y = 1;
                    x += 1;
                }
                if (x == height+1)
                    x = 1;
            }
            matrix[x][y] = num;
        }
    }

    while (tLeft > 0)
    {
        for (i = 1; i <= height; i++)
            for(j = 1; j <= length; j++)
                for (k = 1; k <= height; k++)
                    for (l = 1; l <= length; l++)
                    {
                        if (i == k && j == l)
                            continue;
                        if (matrix[i][j] != -1 && matrix[k][l] != -1)
                        {
                            //std::cout << i << ' ' << j << ':' << matrix[i][j] << '\n';
                            if (linkable(i,j,k,l))
                            {
                                temp[i][j] = matrix[i][j];
                                temp[k][l] = matrix[k][l];
                                matrix[i][j] = matrix[k][l] = -1;
                                tLeft -= 2;
                            }
                        }
                    }

        rearrange(matrix);
        //show();
    }

    for (i = 0; i < height; i++)
        delete []matrix[i];
    delete []matrix;
    matrix = temp;
    
}
Esempio n. 2
0
void WMRemoveBoxSubview(WMBox * bPtr, WMView * view)
{
	if (WMRemoveFromArrayMatching(bPtr->subviews, matchView, view)) {
		rearrange(bPtr);
	}
}
Esempio n. 3
0
void Board::rearrange()
{
    rearrange(matrix);
}