⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 llkmatrix.java

📁 一个连连看游戏
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    {
        HSize = hs;
        VSize = vs;

        matrix = new int[HSize][VSize];
        int j = 0;
        int b = 0;
        for (int x = 0; x < HSize; x++)
        {
            for (int y = 0; y < VSize; y++)
            {
                j = 1-j;
                if (j == 1)
                {
                    b = ((x * HSize + y) / 2) % SeedCount;
                }
                matrix[x][y] = b;
  
            }
        }

        do
        {   
        	      shuffleMatrix();
        }
        while (find() == 0);


    }


    public int find()
    {
        for (int i = 0; i < HSize * VSize; i++)
        {
            for (int j = i + 1; j < HSize * VSize; j++)
            {
                if (judge(i % HSize + 1, i / HSize + 1, j % HSize + 1, j /
                    HSize + 1, false) > 0)
                {
                    return i * 1000+j;
                }
            }
        }
        return 0;
    }
    public int getRest()
    {
        int k = 0;
        for (int x = 0; x < HSize; x++)
        {
            for (int y = 0; y < VSize; y++)
            {
                if (matrix[x][y] >= 0)
                {
                        k++;
                }
            }
        }
        return k;
    }
    private void dropdown()
    {
        for (int x = 0; x < HSize; x++)
        {
            for (int y = 0; y < VSize; y++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i > 0; i--)
                    {
                        matrix[x][i] = matrix[x][i - 1];
                    }
                    matrix[x][0] =  - 1;
                }
            }
        }
    }
    private void leftdownrightup()
    {
        for (int x = 0; x < HSize / 2; x++)
        {
            for (int y = 0; y < VSize; y++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i > 0; i--)
                    {
                        matrix[x][i] = matrix[x][i - 1];
                    }
                    matrix[x][0] =  - 1;
                }
            }
        }
        for (int x = HSize / 2; x < HSize; x++)
        {
            for (int y = VSize - 1; y >= 0; y--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i < VSize - 1; i++)
                    {
                        matrix[x][i] = matrix[x][i + 1];
                    }
                    matrix[x][VSize - 1] =  - 1;
                }
            }
        }
    }
    private void goleft()
    {
        for (int y = 0; y < VSize; y++)
        {
            for (int x = HSize - 1; x >= 0; x--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i < HSize - 1; i++)
                    {
                        matrix[i][y] = matrix[i + 1][y];
                    }
                    matrix[HSize - 1][y] =  - 1;
                }
            }
        }
    }
    private void upleftdownright()
    {
        for (int y = 0; y < VSize / 2; y++)
        {
            for (int x = HSize - 1; x >= 0; x--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i < HSize - 1; i++)
                    {
                        matrix[i][y] = matrix[i + 1][y];
                    }
                    matrix[HSize - 1][y] =  - 1;
                }
            }
        }
        for (int y = VSize / 2; y < VSize; y++)
        {
            for (int x = 0; x < HSize; x++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i > 0; i--)
                    {
                        matrix[i][y] = matrix[i - 1][y];
                    }
                    matrix[0][y] =  - 1;
                }
            }
        }
    }
    private void raiseup()
    {
        for (int x = 0; x < HSize; x++)
        {
            for (int y = VSize - 1; y >= 0; y--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i < VSize - 1; i++)
                    {
                        matrix[x][i] = matrix[x][i + 1];
                    }
                    matrix[x][VSize - 1] =  - 1;
                }
            }
        }
    }
    private void updown()
    {
        for (int x = 0; x < HSize; x++)
        {
            for (int y = VSize / 2-1; y >= 0; y--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i < VSize / 2-1; i++)
                    {
                        matrix[x][i] = matrix[x][i + 1];
                    }
                    matrix[x][VSize / 2-1] =  - 1;
                }
            }
            for (int y = VSize / 2; y < VSize; y++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i > VSize / 2; i--)
                    {
                        matrix[x][i] = matrix[x][i - 1];
                    }
                    matrix[x][VSize / 2] =  - 1;
                }
            }
        }
    }
    private void leftright()
    {
        for (int y = 0; y < VSize; y++)
        {
            for (int x = HSize / 2-1; x >= 0; x--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i < HSize / 2-1; i++)
                    {
                        matrix[i][y] = matrix[i + 1][y];
                    }
                    matrix[HSize / 2-1][y] =  - 1;
                }
            }
            for (int x = HSize / 2; x < HSize; x++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i > HSize / 2; i--)
                    {
                        matrix[i][y] = matrix[i - 1][y];
                    }
                    matrix[HSize / 2][y] =  - 1;
                }
            }
        }
    }
    private void updowncenter()
    {
        for (int x = 0; x < HSize; x++)
        {
            for (int y = 0; y <= VSize / 2-1; y++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i > 0; i--)
                    {
                        matrix[x][i] = matrix[x][i - 1];
                    }
                    matrix[x][0] =  - 1;
                }
            }
            for (int y = VSize - 1; y >= VSize / 2; y--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = y; i < VSize - 1; i++)
                    {
                        matrix[x][i] = matrix[x][i + 1];
                    }
                    matrix[x][VSize - 1] =  - 1;
                }
            }
        }
    }
    private void leftrightcenter()
    {
        for (int y = 0; y < VSize; y++)
        {
            for (int x = 0; x <= HSize / 2-1; x++)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i > 0; i--)
                    {
                        matrix[i][y] = matrix[i - 1][y];
                    }
                    matrix[0][y] =  - 1;
                }
            }
            for (int x = HSize - 1; x >= HSize / 2; x--)
            {
                if (matrix[x][y] < 0)
                {
                    for (int i = x; i < HSize - 1; i++)
                    {
                        matrix[i][y] = matrix[i + 1][y];
                    }
                    matrix[HSize - 1][y] =  - 1;
                }
            }
        }
    }
    public void rearrange(int rnd)
    {
    
        switch (rnd)
        {
            case 1:
                raiseup();
                return ;
            case 2:
                // '\002'
                dropdown();
                break;
            case 3:
                // '\003'
                goleft();
                break;
            case 4:
                // '\004'
                updown();
                break;
            case 5:
                // '\005'
                leftright();
                break;
            case 6:
                // '\006'
                updowncenter();
                break;
            case 7:
                // '\007'
                leftrightcenter();
                break;
            case 8:
                // '\b'
                upleftdownright();
                break;
            case 9:
                // '\t'
                leftdownrightup();
                break;
            case 10:
                // '\n'
                updown();
                leftright();
                break;
            case 11:
                // '\013'
                updowncenter();
                leftrightcenter();
                break;
            case 12:
                return ;
  
            default:         
                break;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -