亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? firlogic.java

?? 非常好的JAVA編程的例子
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        int ed[] = expandedIn8D(player, row, col);
        for(int d = 0; d < 4; d++)
        {
            if(d == exceptDirection)
                continue;
            if(table[row][col] == player)
            {
                int nConnect = cd[d] + cd[d + 4] + 1;
                int nFree1 = ed[d] - cd[d];
                int nFree2 = ed[d + 4] - cd[d + 4];
                boolean b4S = nConnect >= 4 && (nFree1 >= 1 || nFree2 >= 1);
                boolean b3B = nConnect >= 3 && nFree1 >= 1 && nFree2 >= 1;
                if(b4S || b3B)
                {
                    dFond = d;
                    break;
                }
            }
            if(table[row][col] != 0)
                continue;
            int nFree1 = ed[d] - cd[d];
            int nFree2 = ed[d + 4] - cd[d + 4];
            boolean b2N1 = cd[d] >= 2 && cd[d + 4] >= 1 || cd[d] >= 1 && cd[d + 4] >= 2;
            boolean bSFree = nFree1 >= 1 && nFree2 >= 1;
            if(!b2N1 || !bSFree)
                continue;
            dFond = d;
            break;
        }

        return dFond;
    }

    private int find4S_3B_2N1B(int player, int exceptDirection, int rTest, int cTest, boolean only4S)
    {
        int dFond = -1;
        int rMin = rTest - 3;
        if(rMin < 0)
            rMin = 0;
        int rMax = rTest + 3;
        if(rMax > boardSize)
            rMax = boardSize;
        int cMin = cTest - 3;
        if(cMin < 0)
            cMin = 0;
        int cMax = cTest + 3;
        if(cMax > boardSize)
            cMax = boardSize;
        for(int r = rMin; r < rMax; r++)
        {
            for(int c = cMin; c < cMax; c++)
            {
                if(table[r][c] != player && table[r][c] != 0)
                    continue;
                if(only4S)
                    dFond = find4SAt(r, c, player, exceptDirection);
                else
                    dFond = find4S_3B_2N1BAt(r, c, player, exceptDirection);
                if(dFond != -1)
                    break;
            }

            if(dFond != -1)
               break;
        }

        return dFond;
    }

    private Dot to5L(int player)
    {
        if(playerCounter[player] < 4)
            return null;
        int maxGain = 0;
        Dot dot = null;
        for(int r = 0; r < boardSize; r++)
        {
            for(int c = 0; c < boardSize; c++)
            {
                int gain = to5LAt(player, r, c);
                if(gain > maxGain || gain > 0 && gain == maxGain && randomTrue())
                {
                    maxGain = gain;
                    dot = new Dot(r, c);
                }
            }

        }

        return dot;
    }

    private int to5LAt(int player, int row, int col)
    {
        int lines = 0;
        int otherGain = 0;
        if(table[row][col] == 0)
        {
            int cd[] = connectedIn8D(player, row, col);
            int ed[] = expandedIn8D(player, row, col);
            for(int i = 0; i < 4; i++)
                if(ed[i] + ed[i + 4] + 1 >= 5)
                {
                    int l = cd[i] + cd[i + 4] + 1;
                    if(l >= 5)
                        lines++;
                    else
                        otherGain += 2 ^ l;
                }

        }
        return lines > 0 ? lines * 32 + otherGain : 0;
    }

    private int[] expandedIn8D(int player, int row, int col)
    {
        int ed[] = new int[8];
        for(int d = 0; d < 8; d++)
            ed[d] = expandedIn1D(player, row, col, d);

        return ed;
    }

    private int expandedIn1D(int player, int row, int col, int direction)
    {
        int n = 0;
        int cn = 0;
        Dot d = new Dot(row, col);
        while(cn < 4) 
        {
            d.copyFrom(moveOneStep(d, direction));
            if(!d.isInBoard(boardSize))
                break;
            int p = table[d.row][d.col];
            if(p == 0)
                cn++;
            if(p != player && p != 0)
                break;
            n++;
        }
        return n;
    }

    private Dot maxGainedDot()
    {
        Dot dotWithMaxGain = null;
        int maxGain = 0;
        for(int r = 0; r < boardSize; r++)
        {
            for(int c = 0; c < boardSize; c++)
            {
                int gain = gainAt(r, c);
                if(gain > maxGain || gain > 0 && gain == maxGain && randomTrue())
                {
                    maxGain = gain;
                    dotWithMaxGain = new Dot(r, c);
                }
            }

        }

        return dotWithMaxGain;
    }

    private int gainAt(int row, int col)
    {
        if(table[row][col] == 0)
        {
            int gain = 0;
            for(int d = 0; d < 8; d++)
            {
                int gd = gainAtDirection(row, col, d);
                if(gd == 0)
                    gain >>= 2;
                else
                    gain += gd;
            }

            if(gain < 1)
                gain = 1;
            return gain;
        } else
        {
            return 0;
        }
    }

    private int gainAtDirection(int row, int col, int direction)
    {
        int gain = 0;
        Dot d = new Dot(row, col);
        int step = 0;
        do
        {
            d.copyFrom(moveOneStep(d, direction));
            step++;
            if(!d.isInBoard(boardSize))
                break;
            int player = table[d.row][d.col];
            if(player == 2)
                break;
            int gainByStone = player == 1 ? 5 : 1;
            gain += gainByStep(step) * gainByStone;
        } while(true);
        return gain;
    }

    private int gainByStep(int step)
    {
        int gain = (boardSize - step) / 2;
        if(gain < 1)
            gain = 1;
        return gain;
    }

    private int exist2N1(int row, int col, int player, int exceptDirection)
    {
        int cd[] = connectedIn8D(player, row, col);
        int ed[] = expandedIn8D(player, row, col);
        int existDirection = -1;
        for(int i = 0; i < 4; i++)
        {
            if(i == exceptDirection || (cd[i] < 2 || cd[i + 4] < 1) && (cd[i] < 1 || cd[i + 4] < 2) || (ed[i] - cd[i]) + (ed[i + 4] - cd[i + 4]) <= 0)
                continue;
            existDirection = i;
            break;
        }

        return existDirection;
    }

    private int checkFiveInRow(int row, int col, int n, int exceptDirection)
    {
        int player = table[row][col];
        int cd[] = connectedIn8D(player, row, col);
        int ed[] = expandedIn8D(player, row, col);
        int existDirection = -1;
        for(int i = 0; i < 4;  i++)
        {                
            if(i == exceptDirection || cd[i] + cd[i + 4] + 1 < n || (ed[i] - cd[i]) + (ed[i + 4] - cd[i + 4]) < 0)
                continue;
               

            existDirection = i;
            break;
        }

        return existDirection;
    }

    private int[] connectedIn8D(int player, int row, int col)
    {
        int cd[] = new int[8];
        for(int d = 0; d < 8; d++)
            cd[d] = connectedIn1D(player, row, col, d);

        return cd;
    }

    private int connectedIn1D(int player, int row, int col, int direction)
    {
        int n = 0;
        Dot d = new Dot(row, col);
        do
        {
            d.copyFrom(moveOneStep(d, direction));
            if(d.isInBoard(boardSize) && table[d.row][d.col] == player)
                n++;
            else
                return n;
        } while(true);
    }

    private Dot moveOneStep(Dot d, int direction)
    {
        int r = d.row;
        int c = d.col;
        switch(direction)
        {
        case 0: 
            c++;
            break;

        case 1: 
            r--;
            c++;
            break;

        case 2: 
            r--;
            break;

        case 3: 
            r--;
            c--;
            break;

        case 4: 
            c--;
            break;

        case 5: 
            r++;
            c--;
            break;

        case 6: 
            r++;
            break;

        case 7: 
            r++;
            c++;
            break;
        }
        return new Dot(r, c);
    }

    private boolean randomTrue()
    {
        return rndNum.nextInt() % 2 == 0;
    }


}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91豆麻精品91久久久久久| 国产xxx精品视频大全| 91成人免费网站| 亚洲欧美日韩在线播放| 成人免费电影视频| 国产日产欧美一区| 丁香一区二区三区| 亚洲国产成人在线| 成人激情免费电影网址| 欧美国产日本视频| 成人精品在线视频观看| 欧美国产日韩一二三区| 国产精品99久久久久久宅男| 久久久亚洲精华液精华液精华液| 精品一区二区三区欧美| 久久午夜电影网| 国产一区二区美女| 久久久久国产精品免费免费搜索| 国产精品99久久久久久久女警| 26uuu国产电影一区二区| 国产自产2019最新不卡| 国产亚洲欧美日韩在线一区| 风间由美一区二区三区在线观看| 国产精品美女www爽爽爽| 91在线码无精品| 亚洲一卡二卡三卡四卡| 欧美午夜精品理论片a级按摩| 亚洲午夜私人影院| 欧美一区午夜精品| 久久成人免费日本黄色| 久久精品夜色噜噜亚洲a∨| 国产成人免费xxxxxxxx| 国产嫩草影院久久久久| 91在线观看一区二区| 亚洲免费av高清| 欧美日韩国产精品成人| 久久爱www久久做| 欧美激情艳妇裸体舞| 色综合久久综合中文综合网| 性欧美疯狂xxxxbbbb| 日韩精品综合一本久道在线视频| 激情综合网激情| 中文字幕中文乱码欧美一区二区| 91亚洲午夜精品久久久久久| 五月天一区二区三区| 精品国精品国产尤物美女| 国产成人自拍在线| 日本欧美一区二区三区| 亚洲动漫第一页| 日韩欧美中文字幕公布| 国内精品自线一区二区三区视频| 中文字幕国产精品一区二区| 91国偷自产一区二区三区成为亚洲经典 | 日韩精品中文字幕一区二区三区| 黑人巨大精品欧美一区| 中文字幕中文字幕一区二区| 欧美日韩免费视频| 久色婷婷小香蕉久久| 中文字幕第一页久久| 欧美午夜精品电影| 国产呦精品一区二区三区网站| 在线观看一区不卡| 日韩av高清在线观看| 制服丝袜中文字幕亚洲| 国产一区二区精品久久99| 国产精品传媒在线| 7777精品伊人久久久大香线蕉完整版| 久久69国产一区二区蜜臀| 中文字幕欧美日韩一区| 欧美日韩高清在线播放| 国产91综合网| 爽好久久久欧美精品| 国产偷v国产偷v亚洲高清| 欧美亚洲国产一区在线观看网站| 美日韩黄色大片| 亚洲欧美另类在线| 日韩精品一区二区三区在线观看| 成人一二三区视频| 免费黄网站欧美| 亚洲欧洲制服丝袜| 久久众筹精品私拍模特| 在线观看日韩av先锋影音电影院| 国产在线精品一区二区不卡了 | 精品成人a区在线观看| 91美女福利视频| 国产精品综合二区| 肉色丝袜一区二区| 亚洲色欲色欲www| 久久久美女毛片| 欧美一卡二卡三卡| 欧美三级视频在线| 本田岬高潮一区二区三区| 久久99九九99精品| 三级久久三级久久久| 亚洲色图欧美激情| 国产欧美日韩久久| 日韩一级欧美一级| 欧美日韩中文国产| 97国产精品videossex| 国产精品一区在线观看你懂的| 午夜精品福利在线| 亚洲欧美一区二区三区孕妇| 国产日韩精品一区二区浪潮av| 国产精品一区一区| 一区二区三区在线视频免费| 中文字幕第一区| 久久久噜噜噜久久人人看 | 风流少妇一区二区| 亚洲国产视频在线| 欧美电影精品一区二区| 欧美亚洲综合在线| 91女人视频在线观看| 国产一区二区在线观看免费| 日韩二区在线观看| 午夜电影久久久| 亚洲不卡在线观看| 亚洲国产aⅴ天堂久久| 亚洲免费av在线| 成人免费在线视频| 国产精品理论片| 欧美高清在线视频| 国产欧美1区2区3区| 国产日韩欧美制服另类| 精品国产一区二区国模嫣然| 欧美一区二区日韩一区二区| 欧美日韩国产三级| 欧美三级欧美一级| 欧日韩精品视频| 在线日韩一区二区| 在线亚洲免费视频| 欧美日韩一区小说| 在线成人av网站| 欧美精品在线观看播放| 欧美日韩专区在线| 欧美人妖巨大在线| 91精品国产欧美一区二区成人| 在线播放日韩导航| 91精品国产乱| 精品少妇一区二区三区免费观看| 欧美zozo另类异族| 久久久99精品久久| 国产亚洲欧洲997久久综合| 国产清纯美女被跳蛋高潮一区二区久久w| 久久久久久**毛片大全| 国产精品色哟哟| 国产精品国产自产拍高清av| 亚洲欧洲韩国日本视频| 一区二区三区日韩精品视频| 亚洲一区二区三区精品在线| 亚洲午夜av在线| 视频在线观看一区| 激情六月婷婷综合| 丁香天五香天堂综合| 日本vs亚洲vs韩国一区三区| 夜夜嗨av一区二区三区网页| 亚洲mv在线观看| 美国毛片一区二区三区| 国产精品1024久久| 99久久久免费精品国产一区二区 | 激情伊人五月天久久综合| 国产又黄又大久久| av一区二区久久| 欧美午夜寂寞影院| 欧美电影免费提供在线观看| 2019国产精品| 中文字幕亚洲综合久久菠萝蜜| 一区二区三区国产| 蜜臀av国产精品久久久久| 国产成人精品三级| 91色porny| 91精品国产欧美一区二区| 久久久www成人免费毛片麻豆| 国产精品短视频| 视频一区视频二区在线观看| 国内精品久久久久影院色| 9i看片成人免费高清| 51精品国自产在线| 欧美国产日韩在线观看| 亚洲成av人**亚洲成av**| 激情成人综合网| 91亚洲精品久久久蜜桃网站| 欧美精品粉嫩高潮一区二区| 国产亚洲成aⅴ人片在线观看| 伊人婷婷欧美激情| 久久超级碰视频| 色先锋资源久久综合| 日韩欧美国产一区二区三区| 国产精品久久久久久久久免费桃花| 一区二区日韩av| 国产在线一区观看| 欧美午夜影院一区| 国产日韩欧美不卡| 日韩精品一二三区| av亚洲产国偷v产偷v自拍| 在线不卡的av| 日韩理论片在线| 激情图区综合网| 欧美日韩精品一二三区| 国产精品国模大尺度视频| 玖玖九九国产精品|