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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fivelogic.java

?? j2me上的FIR游戲 從原代碼光盤上復制
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

    private int find4S_3B_2N1BAt(int row, int col, int playerStone, int exceptDirection)
    {
        int dFond = -1;
        int cd[] = connectedIn8D(playerStone, row, col);
        int ed[] = expandedIn8D(playerStone, row, col);
        for(int d = 0; d < 4; d++)
        {
            if(d == exceptDirection)
                continue;
            if(stones[row][col] == playerStone)
            {
                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(stones[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 playerStone, 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 > borderSize)
            rMax = borderSize;
        int cMin = cTest - 3;
        if(cMin < 0)
            cMin = 0;
        int cMax = cTest + 3;
        if(cMax > borderSize)
            cMax = borderSize;
        for(int r = rMin; r < rMax; r++)
        {
            for(int c = cMin; c < cMax; c++)
            {
                if(stones[r][c] != playerStone && stones[r][c] != 0)
                    continue;
                if(only4S)
                    dFond = find4SAt(r, c, playerStone, exceptDirection);
                else
                    dFond = find4S_3B_2N1BAt(r, c, playerStone, exceptDirection);
                if(dFond != -1)
                    break;
            }

            if(dFond != -1)
                break;
        }

        return dFond;
    }

    private Dot thinkInNumber(int stonePlayer, int nl)
    {
        if(stoneCounter[stonePlayer] < nl - 1)
            return null;
        int maxGain = 0;
        Dot dot = null;
        for(int r = 0; r < borderSize; r++)
        {
            for(int c = 0; c < borderSize; c++)
            {
                int gain = thinkInNumberAt(stonePlayer, r, c, nl);
                if(gain > maxGain || gain > 0 && gain == maxGain && randomTrue())
                {
                    maxGain = gain;
                    dot = new Dot(r, c);
                }
            }

        }

        return dot;
    }

    private int thinkInNumberAt(int lineStone, int row, int col, int nl)
    {
        int lines = 0;
        int otherGain = 0;
        if(stones[row][col] == 0)
        {
            int cd[] = connectedIn8D(lineStone, row, col);
            int ed[] = expandedIn8D(lineStone, 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 >= nl)
                        lines++;
                    else
                        otherGain += 2 ^ l;
                }

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

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

        return ed;
    }

    private int expandedIn1D(int stone, int row, int col, int direction)
    {
        int n = 0;
        int cn = 0;
        Dot d = new Dot(row, col);
        while(cn < 4) 
        {
            d.copyFrom(forwardOneStep(d, direction));
            if(!d.inBorder(borderSize))
                break;
            int st = stones[d.row][d.col];
            if(st == 0)
                cn++;
            if(st != stone && st != 0)
                break;
            n++;
        }
        return n;
    }

    private Dot maxGainedDot()
    {
        Dot dotWithMaxGain = null;
        int maxGain = 0;
        for(int r = 0; r < borderSize; r++)
        {
            for(int c = 0; c < borderSize; 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(stones[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(forwardOneStep(d, direction));
            step++;
            if(!d.inBorder(borderSize))
                break;
            int stone = stones[d.row][d.col];
            if(stone == 2)
                break;
            int gainByStone = stone == 1 ? 5 : 1;
            gain += gainByStep(step) * gainByStone;
        } while(true);
        return gain;
    }

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

    private int exist2N1(int row, int col, int playerStone, int exceptDirection)
    {
        int cd[] = connectedIn8D(playerStone, row, col);
        int ed[] = expandedIn8D(playerStone, 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 existNLineWithMinFree(int row, int col, int n, int minFree, int exceptDirection)
    {
        int stone = stones[row][col];
        int cd[] = connectedIn8D(stone, row, col);
        int ed[] = expandedIn8D(stone, 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]) < minFree)
                continue;
            existDirection = i;
            break;
        }

        return existDirection;
    }

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

        return cd;
    }

    private int connectedIn1D(int stone, int row, int col, int direction)
    {
        int n = 0;
        Dot d = new Dot(row, col);
        do
        {
            d.copyFrom(forwardOneStep(d, direction));
            if(d.inBorder(borderSize) && stones[d.row][d.col] == stone)
                n++;
            else
                return n;
        } while(true);
    }

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

        case 1: // '\001'
            r--;
            c++;
            break;

        case 2: // '\002'
            r--;
            break;

        case 3: // '\003'
            r--;
            c--;
            break;

        case 4: // '\004'
            c--;
            break;

        case 5: // '\005'
            r++;
            c--;
            break;

        case 6: // '\006'
            r++;
            break;

        case 7: // '\007'
            r++;
            c++;
            break;
        }
        return new Dot(r, c);
    }

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


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文字幕综合网 | 中文字幕欧美日韩一区| 国产精品久久夜| 同产精品九九九| 成人性生交大片免费看中文网站| 欧美日韩三级一区| 亚洲色图制服诱惑| 激情五月激情综合网| 欧美日韩一区三区四区| 亚洲欧洲一区二区三区| 国产精品18久久久久久久网站| 色国产精品一区在线观看| 久久久久国产成人精品亚洲午夜| 欧洲国产伦久久久久久久| 久久亚洲二区三区| 全部av―极品视觉盛宴亚洲| 日本韩国欧美在线| 成人欧美一区二区三区| 粉嫩av一区二区三区粉嫩| 欧美一级国产精品| 欧美aaa在线| 日韩一区二区精品| 日韩国产欧美在线视频| 欧美日韩国产免费一区二区| 亚洲午夜三级在线| 色噜噜夜夜夜综合网| 亚洲日本在线a| jlzzjlzz欧美大全| 国产精品理伦片| 99久久精品国产导航| 欧美国产视频在线| 成人美女在线观看| 国产精品欧美一区喷水| 成人h版在线观看| 国产精品系列在线| 91蜜桃在线观看| 亚洲另类在线制服丝袜| 欧洲国内综合视频| 日本欧美一区二区三区| 日韩精品一区二区三区中文不卡 | 亚洲视频一区二区在线| av欧美精品.com| 亚洲图片你懂的| 在线国产电影不卡| 水蜜桃久久夜色精品一区的特点| 91精品婷婷国产综合久久性色| 日本欧美加勒比视频| 精品精品国产高清一毛片一天堂| 国产自产v一区二区三区c| 久久久三级国产网站| eeuss鲁片一区二区三区| 亚洲激情av在线| 欧美日韩aaaaa| 韩国中文字幕2020精品| 国产精品国产三级国产普通话99 | 日韩欧美一级二级三级久久久 | 亚洲一区二区三区视频在线| 欧美视频一区二| 久久国产精品99久久久久久老狼| 久久久久久久综合色一本| 成人一道本在线| 亚洲va欧美va人人爽| 欧美不卡激情三级在线观看| 懂色av噜噜一区二区三区av| 一区二区三区波多野结衣在线观看| 4438成人网| 成人国产精品免费观看视频| 亚洲成av人综合在线观看| 2019国产精品| 欧美在线免费播放| 国产精品一区二区x88av| 亚洲精品视频在线| 精品国产青草久久久久福利| 91视频精品在这里| 国产综合成人久久大片91| 一区二区三区四区亚洲| 久久精品一级爱片| 欧美精品在线观看播放| 99re8在线精品视频免费播放| 婷婷开心激情综合| 亚洲人成小说网站色在线 | 7777精品伊人久久久大香线蕉经典版下载| 韩国中文字幕2020精品| 亚洲自拍另类综合| 国产精品网站一区| 欧美老女人在线| 99re热这里只有精品视频| 国产精品一二三四五| 婷婷综合五月天| 一区二区三区日韩在线观看| 国产精品色一区二区三区| 精品福利视频一区二区三区| 欧美日韩在线不卡| 色老汉一区二区三区| av亚洲精华国产精华精华| 国产精品自在在线| 麻豆91在线观看| 天堂成人免费av电影一区| 亚洲日本中文字幕区| 欧美激情在线看| 日本一区二区三区在线观看| 欧美成人三级在线| 日韩欧美的一区| 日韩一区二区三区四区| 欧美日韩高清在线| 欧美三级中文字幕在线观看| 色琪琪一区二区三区亚洲区| 成人丝袜18视频在线观看| 国产美女精品人人做人人爽| 国内一区二区视频| 久久国产综合精品| 精品无人码麻豆乱码1区2区| 青青草原综合久久大伊人精品| 亚洲成av人片| 日韩avvvv在线播放| 丝袜美腿一区二区三区| 日日欢夜夜爽一区| 日本网站在线观看一区二区三区 | 亚洲综合成人在线视频| 亚洲婷婷综合久久一本伊一区| 欧美激情艳妇裸体舞| 亚洲国产精品成人久久综合一区| 国产亚洲欧美一区在线观看| 久久精品视频一区二区三区| 国产欧美日韩在线观看| 国产精品美女久久久久aⅴ| 国产精品区一区二区三区| 亚洲日本欧美天堂| 亚洲国产精品久久人人爱蜜臀| 亚洲综合丁香婷婷六月香| 偷偷要91色婷婷| 久久99精品久久久久久国产越南| 国产乱码精品一区二区三区五月婷| 国产专区综合网| 99精品国产视频| 欧美日韩亚洲综合在线| 日韩欧美国产综合一区| 久久久精品2019中文字幕之3| 中文字幕成人在线观看| 一区二区激情视频| 日本不卡一区二区三区| 美女爽到高潮91| eeuss鲁一区二区三区| 欧美日韩国产一区二区三区地区| 日韩三级伦理片妻子的秘密按摩| 国产欧美日韩不卡| 亚洲国产aⅴ天堂久久| 精品一区二区三区蜜桃| kk眼镜猥琐国模调教系列一区二区| 欧美日韩一卡二卡| 国产欧美精品国产国产专区 | 欧美日韩免费一区二区三区视频| 91精品国产一区二区| 国产精品免费视频观看| 天天色图综合网| www.色综合.com| 7777精品伊人久久久大香线蕉的| 日本一二三四高清不卡| 天堂av在线一区| 成人av在线电影| 日韩视频在线你懂得| 自拍偷拍国产精品| 国内精品国产成人| 欧美亚洲动漫精品| 国产蜜臀97一区二区三区| 日韩av一级电影| 色94色欧美sute亚洲线路一久| 日韩欧美高清在线| 亚洲成人一区二区在线观看| 高清国产一区二区三区| 欧美一区二区啪啪| 亚洲一区二区三区美女| 成人黄色网址在线观看| 日韩免费电影一区| 亚洲高清在线精品| 91一区二区在线观看| 2017欧美狠狠色| 日本伊人色综合网| 欧美色视频一区| 亚洲欧美一区二区三区极速播放 | 亚洲最快最全在线视频| 国产 欧美在线| 久久亚洲精精品中文字幕早川悠里| 午夜日韩在线电影| 欧美亚洲免费在线一区| 综合久久国产九一剧情麻豆| 国产高清精品网站| ww亚洲ww在线观看国产| 久久黄色级2电影| 日韩一区国产二区欧美三区| 亚洲18色成人| 欧美伦理电影网| 五月婷婷另类国产| 欧美日韩国产a| 日韩中文字幕一区二区三区| 欧美三级蜜桃2在线观看| 一区二区免费视频| 欧美日韩一二三| 日本v片在线高清不卡在线观看| 欧美午夜免费电影|