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

📄 bobble.java~2~

📁 泡泡龙游戏原代码
💻 JAVA~2~
📖 第 1 页 / 共 2 页
字号:
            {                if(aA[5 + 6 * bY] == -1 && j2 == j - 6 || aA[5 + 6 * bY] != -1 && j2 == j - 6 - 1)                {                    aA[j] = aM;                    sbA();                    nA++;                    return 0;                }            } else            if(mD < 21 && aA[j2 + 1] > 0 && aA[j2 - 1] > 0 && (aA[5 + 6 * bY] == -1 && j2 == j - 6 || aA[5 + 6 * bY] != -1 && j2 == j - 6 - 1))            {                aA[j2] = aM;                bY = l1;                bX = i2;                sbA();                nA++;                return 0;            }        }        if(bX > 0 && bX < 5 - i && mD > 21)        {            int k2;            if(aA[5 + 6 * bY] == -1)                k2 = aX - 4;            else                k2 = aX - 0;            if(k2 % 8 >= 5 && k2 % 8 <= 7 && aA[j + 1] > 0)            {                aA[j] = aM;                sbA();                nA++;                return 0;            }        } else        if(bX > 0 && bX < 5 - i && mD < 21)        {            int l2;            if(aA[5 + 6 * bY] == -1)                l2 = aX - 4;            else                l2 = aX - 0;            if(l2 % 8 >= 0 && l2 % 8 <= 2 && aA[j - 1] > 0)            {                aA[j] = aM;                sbA();                nA++;                return 0;            }        }        return byte0;    }    public static final void dtR(int i)    {        int ai[] = new int[60];        for(int j = 0; j < 60; j++)            ai[j] = aA[j];        i = i / 2 + 3;        if(i > 7)            i = 7;        int i1 = 0;        for(int k = 0; k < 6; k++)        {            int j1;            while((j1 = (rA.nextInt() >>> 1) % i + 1) == i1) ;            if(j1 == 7 && (ai[k] & 0xf) == j1)                j1 = (rA.nextInt() >>> 1) % 6 + 1;            if(j1 == 7 && ai[5] == -1 && k > 0 && (ai[k - 1] & 0xf) == j1)                j1 = (rA.nextInt() >>> 1) % 6 + 1;            if(j1 == 7 && ai[5] != -1 && (ai[k + 1] & 0xf) == j1)                j1 = (rA.nextInt() >>> 1) % 6 + 1;            i1 = j1;            aA[k] = j1;            nA++;        }        i1 = 1;        for(int k1 = 0; i1 < 10; k1++)        {            for(int l = 0; l < 6; l++)                aA[l + 6 * i1] = ai[l + 6 * k1];            i1++;        }        if(aA[11] != -1)        {            nA--;            aA[5] = -1;        }        sbA();    }    public static int bom()    {        int ai[] = new int[60];        for(int i = 0; i < 60; i++)            ai[i] = aA[i];        int k = sNB(bX + 6 * bY);        if(k >= 3)        {            nA -= k;        } else        {            for(int j = 0; j < 60; j++)                aA[j] = ai[j];            k = 0;        }        return k;    }    public static int drp()    {        int k = 0;        for(int i = 0; i < 60; i++)            if(aA[i] > 0 && (aA[i] & 0x40) != 64 && !sND(i))            {                aA[i] |= 0x10;                aA[i] &= 0x18ffff;                k++;            }        for(int j = 59; j >= 0; j--)            if(aA[j] > 0)            {                if((aA[j] & 0x40) == 64)                    aA[j] &= 0xffffffbf;                if((aA[j] & 0x10) == 16)                {                    int l = 0;                    if(aA[((j / 6) * 6 + 6) - 1] == -1)                        l = 1;                    if((aA[j] & 0x80000) > 0 && aA[j + 6 + l] > 0 && (aA[j + 6 + l] & 0x10) == 0)                    {                        aA[j] &= 0xffffffef;                        k--;                    }                    if((aA[j] & 0x100000) > 0 && aA[j + 5 + l] > 0 && (aA[j + 5 + l] & 0x10) == 0)                    {                        aA[j] &= 0xffffffef;                        k--;                    }                }            }        nA -= k;        return k;    }    private static int sNB(int i)    {        int j2 = 0;        int j = 0;        if(aA[((i / 6) * 6 + 6) - 1] == -1)            j = 1;        if((aA[i] & 0xff00) >= 256)        {            if((aA[i] & 0x10) != 16)            {                aA[i] |= 0x10;                j2++;            }            for(int k2 = 256; k2 < 16384; k2 <<= 1)            {                int k = aA[i] & 0xff00 & k2;                aA[i] &= ~k;                if(k == 256)                {                    int l = (i - 7) + j;                    j2 += sNB(l);                } else                if(k == 512)                {                    int i1 = (i - 6) + j;                    j2 += sNB(i1);                } else                if(k == 1024)                {                    int j1 = i + 1;                    j2 += sNB(j1);                } else                if(k == 2048)                {                    int k1 = i + 6 + j;                    j2 += sNB(k1);                } else                if(k == 4096)                {                    int l1 = i + 5 + j;                    j2 += sNB(l1);                } else                if(k == 8192)                {                    int i2 = i - 1;                    j2 += sNB(i2);                }            }        }        return j2;    }    private static boolean sND(int i)    {        if(aA[i] == -1)            return true;        if(i >= 0 && i < 6)            return true;        if((aA[i] & 0x40) == 64)            return true;        boolean flag = false;        int j = 0;        if(aA[((i / 6) * 6 + 6) - 1] == -1)            j = 1;        for(int l1 = 0x10000; l1 < 0x400000; l1 <<= 1)        {            int k = aA[i] & 0xff0000 & l1;            if(k == 0x10000)            {                aA[i] &= ~k;                int l = (i - 7) + j;                flag = sND(l);                aA[i] |= k;            } else            if(k == 0x20000)            {                aA[i] &= ~k;                int i1 = (i - 6) + j;                flag = sND(i1);                aA[i] |= k;            } else            if(k == 0x40000)            {                aA[i] &= ~k;                int j1 = i + 1;                flag = sND(j1);                aA[i] |= k;            } else            if(k == 0x200000)            {                aA[i] &= ~k;                int k1 = i - 1;                flag = sND(k1);                aA[i] |= k;            }            if(!flag)                continue;            aA[i] |= 0x40;            break;        }        return flag;    }    public static void cBA(int i)    {        int j1 = 0;        if(aA[((i / 6) * 6 + 6) - 1] == -1)            j1 = 1;        if((aA[i] & 0x10000) == 0x10000)        {            int j = (i - 7) + j1;            aA[j] &= 0xfff7ffff;        }        if((aA[i] & 0x20000) == 0x20000)        {            int k = (i - 6) + j1;            aA[k] &= 0xffefffff;        }        if((aA[i] & 0x40000) == 0x40000)            aA[i + 1] &= 0xffdfffff;        if((aA[i] & 0x80000) == 0x80000)        {            int l = i + 6 + j1;            aA[l] &= 0xfffeffff;        }        if((aA[i] & 0x100000) == 0x100000)        {            int i1 = i + 5 + j1;            aA[i1] &= 0xfffdffff;        }        if((aA[i] & 0x200000) == 0x200000)            aA[i - 1] &= 0xfffbffff;        aA[i] = 0;    }    private static void sCk()    {        cL = 0;        for(int k = 8; k >= 0; k--)        {            int l = k * 6;            if((aA[l] & 0xf) > 0)            {                aG = 0;                if(aA[l + 5] == -1)                    aG = 1;                for(int i = 0; i < 60; i++)                    if((l = sCs(l)) < 0)                        return;            }        }        for(int i1 = 0; i1 < 6; i1++)        {            if(aA[i1] == -1)                break;            if((aA[i1] & 0xf) > 0)            {                aG = 2;                for(int j = 0; j < 60; j++)                    if((i1 = sCs(i1)) < 0)                        return;            }        }        if((cL & 0x10) == 0)            cL = 1;    }    private static int sCs(int i)    {        int k = i;        aG -= 3;        if(aG < 0)            aG += 6;        if(aA[k] > 0)            cL |= 1 << (aA[k] & 0xf) - 1;        for(int l = 5; l-- >= 0;)        {            aG--;            if(aG < 0)                aG += 6;            int j = 0;            if(aA[((i / 6) * 6 + 6) - 1] == -1)                j = 1;            if(aG == 0)                k = (i - 7) + j;            else            if(aG == 1)                k = (i - 6) + j;            else            if(aG == 2)                k = i + 1;            else            if(aG == 3)                k = i + 6 + j;            else            if(aG == 4)                k = i + 5 + j;            else            if(aG == 5)                k = i - 1;            if(j != 1 ? i > ((i / 6) * 6 + 6) - 1 : i > ((i / 6) * 6 + 6) - 2)                break;            if(k < 0)            {                k = i;                for(k++; ++k <= 5;)                    if((aA[k] & 0xf) > 0)                    {                        aG = 2;                        return k;                    }                break;            }            if(k >= 60)                return -1;            if((aA[k] & 0xf) > 0)                return k;        }        return -1;    }}

⌨️ 快捷键说明

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