示例#1
0
        /// <summary>
        /// AI 长考,判断是否有确定是地雷的位置
        /// </summary>
        /// <param name="now"></param>
        /// <returns></returns>
        public int AI_DeepThink(int now)
        {
            if (now == 0)
            {
                return(0);
            }
            int flag = 0;

            for (int k = 0; k < now; k++)
            {
                Console.WriteLine("Start = " + ans[k].x + " " + ans[k].y);

                Pane pane = (Pane)this.Controls[Map[ans[k].x, ans[k].y]];
                Console.WriteLine(pane._Around + " " + get_mine(ans[k]));

                AI_Find_Ans(8, pane._Around - get_mine(ans[k]), ans[k], 1 << 8, 0);
                for (int i = 0; i < this.row * this.col; i++)
                {
                    int tmp = 1;
                    for (int j = 0; j < ansnum; j++)
                    {
                        tmp = tmp & allans[j, i];
                    }
                    if (tmp == 1)
                    {
                        point pt = new point();
                        pt = get_point(i);
                        _is_mine[pt.x, pt.y] = 1;
                        pane = (Pane)this.Controls[Map[pt.x, pt.y]];
                        pane._aiper();
                        flag = 1;
                    }
                }
                for (int i = 0; i < ansnum; i++)
                {
                    for (int j = 0; j < 10000; j++)
                    {
                        allans[i, j] = 0;
                    }
                }
                ansnum = 0;
            }
            return(flag);
        }