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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? checkforbidden.cs

?? 人工智能 五子棋的實(shí)現(xiàn)。AI算法比較高
?? CS
字號(hào):
?using System;
using System.Collections.Generic;
using System.Text;

namespace gobang
{
    class CheckForbidden
    {
        public const int NO_FORBIDDEN = 0;
        public const int THREE_THREE_FORBIDDEN = 1;
        public const int FOUR_FOUR_FORBIDDEN = 2;
        public const int LONG_FORBIDDEN = 3;

        private const int NONE = 0;
        private const int BLACK = 1;
        private const int WHITE = 2;

        public int fobiddenCheck(int[][] chessboard, int x, int y)
        {
            int[] adjsame = new int[8];
            int[] adjempty = new int[8];
            int[] jumpsame = new int[8];
            int[] jumpempty = new int[8];
            int[] jumpjumpsame = new int[8];

            for (int i = 0; i < 8; i++)
            {
                adjsame[i] = adjempty[i] = jumpempty[i] = jumpjumpsame[i] = jumpsame[i] = 0;
            }

            chessboard[x][y] = BLACK;
            int _x, _y;

            for (_y = y - 1; _y >= 0 && chessboard[x][_y] == BLACK; _y--, adjsame[0]++) ;
            for (; _y >= 0 && chessboard[x][_y] == NONE; _y--, adjempty[0]++) ;
            for (; _y >= 0 && chessboard[x][_y] == BLACK; _y--, jumpsame[0]++) ;
            for (; _y >= 0 && chessboard[x][_y] == NONE; _y--, jumpempty[0]++) ;
            for (; _y >= 0 && chessboard[x][_y] == BLACK; _y--, jumpjumpsame[0]++) ;

            for (_x = x + 1, _y = y - 1; _x < 15 && _y >= 0 && chessboard[_x][_y] == BLACK; _x++, _y--, adjsame[1]++) ;
            for (; _x < 15 && _y >= 0 && chessboard[_x][_y] == NONE; _x++, _y--, adjempty[1]++) ;
            for (; _x < 15 && _y >= 0 && chessboard[_x][_y] == BLACK; _x++, _y--, jumpsame[1]++) ;
            for (; _x < 15 && _y >= 0 && chessboard[_x][_y] == NONE; _x++, _y--, jumpempty[1]++) ;
            for (; _x < 15 && _y >= 0 && chessboard[_x][_y] == BLACK; _x++, _y--, jumpjumpsame[1]++) ;

            for (_x = x + 1; _x < 15 && chessboard[_x][y] == BLACK; _x++, adjsame[2]++) ;
            for (; _x < 15 && chessboard[_x][y] == NONE; _x++, adjempty[2]++) ;
            for (; _x < 15 && chessboard[_x][y] == BLACK; _x++, jumpsame[2]++) ;
            for (; _x < 15 && chessboard[_x][y] == NONE; _x++, jumpempty[2]++) ;
            for (; _x < 15 && chessboard[_x][y] == BLACK; _x++, jumpjumpsame[2]++) ;

            for (_x = x + 1, _y = y + 1; _x < 15 && _y < 15 && chessboard[_x][_y] == BLACK; _x++, _y++, adjsame[3]++) ;
            for (; _x < 15 && _y < 15 && chessboard[_x][_y] == NONE; _x++, _y++, adjempty[3]++) ;
            for (; _x < 15 && _y < 15 && chessboard[_x][_y] == BLACK; _x++, _y++, jumpsame[3]++) ;
            for (; _x < 15 && _y < 15 && chessboard[_x][_y] == NONE; _x++, _y++, jumpempty[3]++) ;
            for (; _x < 15 && _y < 15 && chessboard[_x][_y] == BLACK; _x++, _y++, jumpjumpsame[3]++) ;

            for (_y = y + 1; _y < 15 && chessboard[x][_y] == BLACK; _y++, adjsame[4]++) ;
            for (; _y < 15 && chessboard[x][_y] == NONE; _y++, adjempty[4]++) ;
            for (; _y < 15 && chessboard[x][_y] == BLACK; _y++, jumpsame[4]++) ;
            for (; _y < 15 && chessboard[x][_y] == NONE; _y++, jumpempty[4]++) ;
            for (; _y < 15 && chessboard[x][_y] == BLACK; _y++, jumpjumpsame[4]++) ;

            for (_x = x - 1, _y = y + 1; _x >=0 && _y < 15 && chessboard[_x][_y] == BLACK; _x--, _y++, adjsame[5]++) ;
            for (; _x >= 0 && _y < 15 && chessboard[_x][_y] == NONE; _x--, _y++, adjempty[5]++) ;
            for (; _x >= 0 && _y < 15 && chessboard[_x][_y] == BLACK; _x--, _y++, jumpsame[5]++) ;
            for (; _x >= 0 && _y < 15 && chessboard[_x][_y] == NONE; _x--, _y++, jumpempty[5]++) ;
            for (; _x >= 0 && _y < 15 && chessboard[_x][_y] == BLACK; _x--, _y++, jumpjumpsame[5]++) ;

            for (_x = x - 1; _x >= 0 && chessboard[_x][y] == BLACK; _x--, adjsame[6]++) ;
            for (; _x >= 0 && chessboard[_x][y] == NONE; _x--, adjempty[6]++) ;
            for (; _x >= 0 && chessboard[_x][y] == BLACK; _x--, jumpsame[6]++) ;
            for (; _x >= 0 && chessboard[_x][y] == NONE; _x--, jumpempty[6]++) ;
            for (; _x >= 0 && chessboard[_x][y] == BLACK; _x--, jumpjumpsame[6]++) ;

            for (_x = x - 1, _y = y - 1; _x >= 0 && _y >= 0 && chessboard[_x][_y] == BLACK; _x--, _y--, adjsame[7]++) ;
            for (; _x >= 0 && _y >= 0 && chessboard[_x][_y] == NONE; _x--, _y--, adjempty[7]++) ;
            for (; _x >= 0 && _y >= 0 && chessboard[_x][_y] == BLACK; _x--, _y--, jumpsame[7]++) ;
            for (; _x >= 0 && _y >= 0 && chessboard[_x][_y] == NONE; _x--, _y--, jumpempty[7]++) ;
            for (; _x >= 0 && _y >= 0 && chessboard[_x][_y] == BLACK; _x--, _y--, jumpjumpsame[7]++) ;

            chessboard[x][y] = NONE;

            for (int i = 0; i < 4; i++)
            {
                if (adjsame[i] + adjsame[i + 4] == 4)
                    return NO_FORBIDDEN;
            }

            int threecount = 0, fourcount = 0;

            for (int i = 0; i < 4; i++)
            {
                if (adjsame[i] + adjsame[i + 4] >= 5)
                    return LONG_FORBIDDEN;
                else if (adjsame[i] + adjsame[i + 4] == 3)
                {
                    bool isFour = false;
                    if (adjempty[i] > 0)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            isFour = true;
                    }

                    if (adjempty[i + 4] > 0)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i+4], i+4) == NO_FORBIDDEN)
                            isFour = true;
                    }
                    if (isFour)
                        fourcount++;
                }
                else if (adjsame[i] + adjsame[i + 4] == 2)
                {
                    if (adjempty[i] == 1 && jumpsame[i] == 1)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            fourcount++;
                    }
                    if (adjempty[i + 4] == 1 && jumpsame[i + 4] == 1)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i + 4], i + 4) == NO_FORBIDDEN)
                            fourcount++;
                    }

                    bool isThree = false;
                    if ((adjempty[i] > 2 || adjempty[i] == 2 && jumpsame[i] == 0) && (adjempty[i + 4] > 1 || adjempty[i + 4] == 1 && jumpsame[i + 4] == 0))
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            isThree = true;
                    }
                    if ((adjempty[i + 4] > 2 || adjempty[i + 4] == 2 && jumpsame[i + 4] == 0) && (adjempty[i] > 1 || adjempty[i] == 1 && jumpsame[i] == 0))
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i + 4], i + 4) == NO_FORBIDDEN)
                            isThree = true;
                    }
                    if (isThree)
                        threecount++;
                }
                else if (adjsame[i] + adjsame[i + 4] == 1)
                {
                    if (adjempty[i] == 1 && jumpsame[i] == 2)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            fourcount++;
                    }
                    if (adjempty[i + 4] == 1 && jumpsame[i + 4] == 2)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i + 4], i + 4) == NO_FORBIDDEN)
                            fourcount++;
                    }

                    if (adjempty[i] == 1 && jumpsame[i] == 1 && (jumpempty[i] > 1 || jumpempty[i] == 1 && jumpjumpsame[i] == 0)
                        && (adjempty[i + 4] > 1 || adjempty[i + 4] == 1 && jumpsame[i + 4] == 0))
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            threecount++;
                    }
                    if (adjempty[i + 4] == 1 && jumpsame[i + 4] == 1 && (jumpempty[i + 4] > 1 || jumpempty[i + 4] == 1 && jumpjumpsame[i + 4] == 0)
                        && (adjempty[i] > 1 || adjempty[i] == 1 && jumpsame[i] == 0))
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i + 4], i + 4) == NO_FORBIDDEN)
                            threecount++;
                    }
                }
                else if (adjsame[i] + adjsame[i + 4] == 0)
                {
                    if (adjempty[i] == 1 && jumpsame[i] == 3)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            fourcount++;
                    }
                    if (adjempty[i + 4] == 1 && jumpsame[i + 4] == 3)
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i + 4], i + 4) == NO_FORBIDDEN)
                            fourcount++;
                    }

                    if (adjempty[i] == 1 && jumpsame[i] == 2 && (jumpempty[i] > 1 || jumpempty[i] == 1 && jumpjumpsame[i] == 0)
                        && (adjempty[i + 4] > 1 || adjempty[i + 4] == 1 && jumpsame[i + 4] == 0))
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i], i) == NO_FORBIDDEN)
                            threecount++;
                    }
                    if (adjempty[i + 4] == 1 && jumpsame[i + 4] == 2 && (jumpempty[i + 4] > 1 || jumpempty[i + 4] == 1 && jumpjumpsame[i + 4] == 0)
                        && (adjempty[i] > 1 || adjempty[i] == 1 && jumpsame[i] == 0))
                    {
                        if (keyPointForbiddenCheck(chessboard, x, y, adjsame[i + 4], i + 4) == NO_FORBIDDEN)
                            threecount++;
                    }
                }
            }
            if (fourcount > 1)
                return FOUR_FOUR_FORBIDDEN;
            if (threecount > 1)
                return THREE_THREE_FORBIDDEN;
            return NO_FORBIDDEN;
        }

        private int keyPointForbiddenCheck(int[][] chessboard, int x, int y, int adjsame, int direction)
        {
            int i, j;
            adjsame++;
            if (direction >= 4)
                adjsame = -adjsame;

            switch (direction % 4)
            {
                case 0:
                    i = x;
                    j = y - adjsame;
                    break;
                case 1:
                    i = x + adjsame;
                    j = y - adjsame;
                    break;
                case 2:
                    i = x + adjsame;
                    j = y;
                    break;
                default:
                    i = x + adjsame;
                    j = y + adjsame;
                    break;
            }

            chessboard[x][y] = BLACK;
            chessboard[i][j] = BLACK;
            int result = fobiddenCheck(chessboard, i, j);
            chessboard[x][y] = NONE;
            chessboard[i][j] = NONE;

            return result;
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文字幕综合网| 日韩精品每日更新| 国产成人在线色| 国产亚洲成aⅴ人片在线观看| 韩国在线一区二区| 国产精品视频yy9299一区| 99这里只有久久精品视频| 亚洲欧美日本在线| 欧美日韩视频专区在线播放| 日本一区中文字幕| ww久久中文字幕| 粉嫩aⅴ一区二区三区四区五区 | 午夜国产精品一区| 欧美一卡二卡三卡| 国产一区在线看| 亚洲欧美一区二区三区极速播放| 欧美最新大片在线看| 日韩电影在线一区二区三区| 欧美精品一区二区三区蜜桃 | www国产成人免费观看视频 深夜成人网| 精品在线一区二区| 自拍偷在线精品自拍偷无码专区| 色婷婷久久久久swag精品| 丝袜亚洲另类丝袜在线| 久久久精品天堂| 欧美视频在线播放| 国产精品伊人色| 亚洲综合视频网| 久久久99久久精品欧美| 欧美在线制服丝袜| 国产剧情在线观看一区二区| 亚洲乱码日产精品bd| 日韩欧美亚洲一区二区| av亚洲精华国产精华精| 人人超碰91尤物精品国产| 国产精品白丝在线| 精品国内二区三区| 欧美优质美女网站| 丁香一区二区三区| 久久精品国产澳门| 一区二区免费在线播放| 久久久久久免费毛片精品| 在线免费视频一区二区| 国产一区日韩二区欧美三区| 亚洲一区二区三区视频在线播放| 国产亚洲欧美一区在线观看| 欧美美女视频在线观看| 不卡av电影在线播放| 视频一区视频二区中文字幕| 亚洲视频免费看| 国产日本欧洲亚洲| 欧美xxxx老人做受| 欧美美女bb生活片| 欧美午夜精品久久久| 成人v精品蜜桃久久一区| 久久丁香综合五月国产三级网站| 亚洲午夜免费电影| 亚洲手机成人高清视频| 国产日韩欧美制服另类| 日韩精品在线网站| 日韩三级精品电影久久久| 91福利精品第一导航| 91色.com| 91视频在线观看免费| av中文字幕一区| 国产91在线看| 国产成人一级电影| 国产精品一区二区三区99| 麻豆91精品91久久久的内涵| 午夜视频在线观看一区| 午夜一区二区三区在线观看| 亚洲女同一区二区| 夜夜爽夜夜爽精品视频| 一区二区三区国产| 亚洲第一福利一区| 日韩主播视频在线| 蜜臀av在线播放一区二区三区| 五月激情综合网| 日本美女视频一区二区| 免费欧美高清视频| 六月丁香综合在线视频| 久久精品久久精品| 久久99国产精品尤物| 国产精品综合二区| av电影在线不卡| 91成人在线观看喷潮| 在线不卡中文字幕| 欧美电影免费观看高清完整版在线| 日韩女优毛片在线| 久久精品夜夜夜夜久久| 国产精品家庭影院| 亚洲精品乱码久久久久久黑人| 一区二区三区不卡视频 | 中文字幕一区二区三区视频 | 亚洲成年人影院| 老司机免费视频一区二区| 亚洲美女少妇撒尿| 亚洲一二三专区| 久久精品99国产国产精| 欧美丝袜自拍制服另类| 这里只有精品免费| 久久综合狠狠综合久久综合88| 中文字幕欧美区| 一区二区三区中文字幕电影| 午夜精品福利一区二区三区av| 免费在线观看成人| 成人综合婷婷国产精品久久 | 国产乱子轮精品视频| 99久久精品免费| 欧美一区二区三区小说| 欧美国产日本韩| 亚洲成va人在线观看| 精品午夜久久福利影院| 91麻豆国产在线观看| 精品国产乱码久久久久久久 | 天天操天天色综合| 国产传媒欧美日韩成人| 91久久精品国产91性色tv | 91麻豆精品国产91久久久使用方法 | 亚洲va欧美va人人爽| 国产高清成人在线| 精品视频999| 亚洲国产成人在线| 日韩电影一区二区三区| 国产成人精品一区二区三区四区 | 欧美高清性hdvideosex| 欧美国产日韩亚洲一区| 日本不卡在线视频| 91片在线免费观看| 国产亚洲一区二区三区| 亚洲一二三四在线观看| 国产精品一区二区在线播放| 欧美三级视频在线观看| 国产精品日日摸夜夜摸av| 蜜臀av性久久久久蜜臀aⅴ| 91国偷自产一区二区开放时间 | 91无套直看片红桃| 亚洲精品在线观看视频| 亚洲va欧美va人人爽| 97超碰欧美中文字幕| 国产欧美日韩卡一| 久久精品国产精品亚洲综合| 在线日韩国产精品| 中文字幕在线观看一区| 国产露脸91国语对白| 日韩精品资源二区在线| 亚洲第一福利一区| 在线区一区二视频| 亚洲日本电影在线| 成人午夜碰碰视频| 国产亚洲精品7777| 蜜臀av性久久久久蜜臀aⅴ| 欧美撒尿777hd撒尿| 亚洲精品免费视频| 色综合久久88色综合天天免费| 国产女人水真多18毛片18精品视频| 青青草91视频| 欧美欧美午夜aⅴ在线观看| 一区二区三区精品视频| 91久久香蕉国产日韩欧美9色| 国产精品久久久久影院亚瑟 | 色视频一区二区| 亚洲欧洲国产日本综合| 成人高清免费观看| 国产精品国产成人国产三级 | 色视频欧美一区二区三区| 亚洲私人影院在线观看| 色94色欧美sute亚洲线路一ni| 亚洲人午夜精品天堂一二香蕉| av一本久道久久综合久久鬼色| 中文字幕一区av| 色偷偷久久一区二区三区| 亚洲一区二区三区在线看| 欧美精品久久久久久久多人混战| 亚洲成人av一区| 欧美电影免费观看高清完整版在| 久久se精品一区精品二区| 2019国产精品| 国产电影精品久久禁18| 国产精品美女久久久久久久| 91丝袜国产在线播放| 亚洲精品免费看| 制服丝袜亚洲精品中文字幕| 蜜桃av一区二区在线观看| 久久综合九色综合97婷婷| 丁香啪啪综合成人亚洲小说| 亚洲女同一区二区| 日韩一区二区高清| 国产69精品久久99不卡| 亚洲激情av在线| 欧美一级xxx| 懂色av一区二区在线播放| 亚洲天堂2014| 日韩欧美成人激情| 成人av免费在线观看| 亚洲一区二区三区在线播放| 日韩一级免费观看| 99精品国产热久久91蜜凸| 免费在线观看一区二区三区| 国产日韩av一区二区|