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

📄 thinkthread.java

📁 五子棋,J2ME小游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    if(abyte0[j6][j5] == 0)
                        l7++;
                    if(l3 == byte0)
                        i += dValuesSelf[l7][j2];
                    else
                        i += dValuesEnemy[l7][j2];
                    j2 = 1;
                }
                l3 = byte3;
                j5++;
            }

        }

        for(int i1 = 0; i1 < 15; i1++)
        {
            int k2 = 1;
            int i4 = 0;
            int k5 = i1;
            for(int k6 = 0; k5 < 15 && k6 < 15; k6++)
            {
                byte byte4 = abyte0[k6][k5];
                if(byte4 != 0 && byte4 == i4)
                    k2++;
                else
                if(byte4 != i4 && i4 != 0)
                {
                    if(k2 > 6)
                        k2 = 6;
                    int i8 = 0;
                    if(k5 - (k2 + 1) >= 0 && k6 - (k2 + 1) >= 0 && abyte0[k6 - (k2 + 1)][k5 - (k2 + 1)] == 0)
                        i8++;
                    if(abyte0[k6][k5] == 0)
                        i8++;
                    if(i4 == byte0)
                        i += dValuesSelf[i8][k2];
                    else
                        i += dValuesEnemy[i8][k2];
                    k2 = 1;
                }
                i4 = byte4;
                k5++;
            }

        }

        for(int j1 = 0; j1 < 15; j1++)
        {
            int l2 = 1;
            int j4 = 0;
            int l5 = 14;
            for(int l6 = j1; l5 >= 0 && l6 < 15; l6++)
            {
                byte byte5 = abyte0[l6][l5];
                if(byte5 != 0 && byte5 == j4)
                    l2++;
                else
                if(byte5 != j4 && j4 != 0)
                {
                    if(l2 > 6)
                        l2 = 6;
                    int j8 = 0;
                    if(l5 + (l2 + 1) >= 0 && l6 - (l2 + 1) >= 0 && abyte0[l6 - (l2 + 1)][l5 + (l2 + 1)] == 0)
                        j8++;
                    if(abyte0[l6][l5] == 0)
                        j8++;
                    if(j4 == byte0)
                        i += dValuesSelf[j8][l2];
                    else
                        i += dValuesEnemy[j8][l2];
                    l2 = 1;
                }
                j4 = byte5;
                l5--;
            }

        }

        for(int k1 = 14; k1 >= 0; k1--)
        {
            int i3 = 1;
            int k4 = 0;
            int i6 = 0;
            for(int i7 = k1; i7 >= 0 && i6 < 15; i6++)
            {
                byte byte6 = abyte0[i6][i7];
                if(byte6 != 0 && byte6 == k4)
                    i3++;
                else
                if(byte6 != k4 && k4 != 0)
                {
                    if(i3 > 6)
                        i3 = 6;
                    int k8 = 0;
                    if(i7 + (i3 + 1) >= 0 && i6 - (i3 + 1) >= 0 && abyte0[i6 - (i3 + 1)][i7 + (i3 + 1)] == 0)
                        k8++;
                    if(abyte0[i6][i7] == 0)
                        k8++;
                    if(k4 == byte0)
                        i += dValuesSelf[k8][i3];
                    else
                        i += dValuesEnemy[k8][i3];
                    i3 = 1;
                }
                k4 = byte6;
                i7--;
            }

        }

        return i;
//        Throwable throwable;
//        throwable;
//        throwable.printStackTrace();
//        return 0;
    }

    int staticEval1(byte abyte0[][], byte byte0, int i, int j)
    {
        byte0 = (byte)(3 - byte0);
        int k = 0;
        for(int l = 0; l < dxs.length; l++)
        {
            int i1 = dxs[l];
            int j1 = dys[l];
            StringBuffer stringbuffer = new StringBuffer();
            int k1 = i - i1 * 6;
            int l1 = j - j1 * 6;
            for(int j2 = 0; j2 < 12; j2++)
            {
                char c = 'X';
                if(k1 >= 0 && k1 < 15 && l1 >= 0 && l1 < 15)
                    if(abyte0[k1][l1] == 0)
                        c = '.';
                    else
                    if(abyte0[k1][l1] == byte0)
                        c = 'M';
                    else
                    if(abyte0[k1][l1] == 3 - byte0)
                        c = 'W';
                if(k1 == i && l1 == j)
                    c = 'O';
                stringbuffer.append(c);
                k1 += i1;
                l1 += j1;
            }

            String s = stringbuffer.toString();
            for(int i2 = 0; i2 < patterns.length; i2++)
                if(s.indexOf(patterns[i2].pattern) >= 0)
                    k += patterns[i2].value;

        }

        return -k;
    }

    void sort(Vector vector, int i)
    {
        for(int j = 0; j < Math.min(i, vector.size() - 1); j++)
        {
            int k = ((OneStep)vector.elementAt(j)).value;
            int l = j;
            for(int i1 = j + 1; i1 < vector.size(); i1++)
            {
                int j1 = ((OneStep)vector.elementAt(i1)).value;
                if(j1 > k)
                {
                    l = i1;
                    k = j1;
                }
            }

            Object obj = vector.elementAt(j);
            vector.setElementAt(vector.elementAt(l), j);
            vector.setElementAt(obj, l);
        }

    }

    void sortFirstGroup(Vector vector)
    {
        for(int i = 0; i < vector.size() - 1; i++)
        {
            int j = ((OneStep)vector.elementAt(i)).value;
            int k = i;
            for(int l = i + 1; l < vector.size(); l++)
            {
                int i1 = ((OneStep)vector.elementAt(l)).value;
                if(i1 > j)
                {
                    k = l;
                    j = i1;
                }
            }

            Object obj = vector.elementAt(i);
            vector.setElementAt(vector.elementAt(k), i);
            vector.setElementAt(obj, k);
            if(i > 0 && ((OneStep)vector.elementAt(i)).value != ((OneStep)vector.elementAt(i - 1)).value)
                return;
        }

    }

    byte board[][];
    BoardCanvas boardCanvas;
    static Random rand = new Random();
    static byte computerSide = 1;
    static byte userSide = 2;
    static final int dValuesWhen2SidesSelf[] = {
        0, 1, 8, 16, 1024, 32767, -32767
    };
    static final int dValuesWhen1SideSelf[] = {
        0, 0, 4, 8, 16, 32767, -32767
    };
    static final int dValuesWhen0SideSelf[] = {
        0, 0, 0, 0, 0, 32767, -32767
    };
    static final int dValuesSelf[][] = {
        dValuesWhen0SideSelf, dValuesWhen1SideSelf, dValuesWhen2SidesSelf
    };
    static final int dValuesWhen2SidesEnemy[] = {
        0, 0, -4, -8, -512, -32767, 32767
    };
    static final int dValuesWhen1SideEnemy[] = {
        0, 0, -2, -4, -6, -32767, 32767
    };
    static final int dValuesWhen0SideEnemy[] = {
        0, 0, 0, 0, 0, -32767, 32767
    };
    static final int dValuesEnemy[][] = {
        dValuesWhen0SideEnemy, dValuesWhen1SideEnemy, dValuesWhen2SidesEnemy
    };
    static Pattern patterns[] = {
        new Pattern("WOM.", 1), new Pattern("WMO.", 1), new Pattern("WOMM.", 2), new Pattern("WMOM.", 2), new Pattern("WMMO.", 2), new Pattern("WOMMM.", 8), new Pattern("WMOMM.", 8), new Pattern("WMMOM.", 8), new Pattern("WMMMO.", 8), new Pattern("WOMMMM.", 16384), 
        new Pattern("WMOMMM.", 16384), new Pattern("WMMOMM.", 16384), new Pattern("WMMMOM.", 16384), new Pattern("WMMMMO.", 16384), new Pattern("XOM.", 1), new Pattern("XMO.", 1), new Pattern("XOMM.", 2), new Pattern("XMOM.", 2), new Pattern("XMMO.", 2), new Pattern("XOMMM.", 8), 
        new Pattern("XMOMM.", 8), new Pattern("XMMOM.", 8), new Pattern("XMMMO.", 8), new Pattern("OMMMM", 16384), new Pattern("MOMMM", 16384), new Pattern("MMOMM", 16384), new Pattern("MMMOM", 16384), new Pattern("MMMMO", 16384), new Pattern(".OM.", 1), new Pattern(".MO.", 1), 
        new Pattern(".OMM.", 2), new Pattern(".MOM.", 2), new Pattern(".MMO.", 2), new Pattern(".OMMM.", 8), new Pattern(".MOMM.", 8), new Pattern(".MMOM.", 8), new Pattern(".MMMO.", 8), new Pattern("OMMMMM", -16384), new Pattern("MOMMMM", -16384), new Pattern("MMOMMM", -16384), 
        new Pattern("MMMOMM", -16384), new Pattern("MMMMOM", -16384), new Pattern("MMMMMO", -16384), new Pattern(".OMMMM.", 16384), new Pattern(".MOMMM.", 16384), new Pattern(".MMOMM.", 16384), new Pattern(".MMMOM.", 16384), new Pattern(".MMMMO.", 16384), new Pattern("MWO.", 1), new Pattern("MWWO.", 1), 
        new Pattern("MWWWO.", 2), new Pattern("MWOW.", 1), new Pattern("MWWOW.", 2), new Pattern("MWOWW.", 2), new Pattern("WOWWW", 256), new Pattern("WWOWW", 256), new Pattern("WWWOW", 256), new Pattern("WWWWO", 256), new Pattern("WWOWWW.", 256), new Pattern("WWWOWW.", 256), 
        new Pattern("WWWWOW.", 256), new Pattern(".WWO.", 4), new Pattern(".WOW.", 4), new Pattern(".WWOW.", 32), new Pattern(".WWWO.", 32)
    };
    static final int dxs[] = {
        1, 1, 0, -1, -1, -1, 0, 1
    };
    static final int dys[] = {
        0, 1, 1, 1, 0, -1, -1, -1
    };

}

⌨️ 快捷键说明

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