当前位置: 首页>>代码示例>>C#>>正文


C# status.init方法代码示例

本文整理汇总了C#中status.init方法的典型用法代码示例。如果您正苦于以下问题:C# status.init方法的具体用法?C# status.init怎么用?C# status.init使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在status的用法示例。


在下文中一共展示了status.init方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: bfs

        public static int zong_num; //纵将的个数

        #endregion Fields

        #region Methods

        public static int bfs(int[,] matrix, string[] name, ref Queue<int[,]> ansinmatrix)
        {
            progress haha = new progress();
            haha.Show();
            zk[] data;
            try
            {
                data = new zk[45000000];
            }
            catch (System.OutOfMemoryException ex)
            {
                haha.Close();
                return -1;
            }
            int i, j;
            for (i = 0; i < 45000000; i++) data[i].vis = false;
            status init = new status();
            init.init();
            int[] universe = { 0, 1, 2, 3, 4, 5 };
            int flag = 0;
            matrix_to_status(universe, matrix, ref init);
            zk start;
            start.cnt = start.cnt_universe = start.pre = 0;
            start.vis = false;
            start.pre = -1; start.vis = true; status_to_num(init, ref start.cnt, ref start.cnt_universe);
            Queue<zk> key = new Queue<zk>();
            key.Enqueue(start);
            int end = start.cnt;
            while (key.Count != 0)
            {
                zk zk_temp = key.ElementAt(0);
                key.Dequeue();
                status cnt = new status();
                cnt.init();
                num_to_status(zk_temp.cnt, zk_temp.cnt_universe, ref cnt);
                for (i = 1; i <= 2; i++)
                {
                    for (j = 1; j <= 4; j++)
                    {
                        status temp = new status();
                        temp.init();
                        if (move(cnt, i, j, ref temp))
                        {
                            int temp_num = 0, temp_universe = 0;
                            status_to_num(temp, ref temp_num, ref temp_universe);
                            if (!data[temp_num].vis)
                            {
                                data[temp_num].vis = true;
                                data[temp_num].cnt = temp_num; data[temp_num].cnt_universe = temp_universe; data[temp_num].pre = zk_temp.cnt;
                                zk zk_temp1;
                                zk_temp1.cnt = temp_num; zk_temp1.cnt_universe = temp_universe; zk_temp1.pre = zk_temp.cnt;
                                zk_temp1.vis = true;
                                key.Enqueue(zk_temp1);
                                if (judge(temp)) { flag = zk_temp1.cnt; break; }
                            }
                        } if (flag != 0) break;
                    } if (flag != 0) break;
                } if (flag != 0) break;
            }
            haha.Close();
            if (flag == 0)
            {
                return 0;
            }
            Queue<int> yes = new Queue<int>();
            yes.Enqueue(flag);
            while (true)
            {
                flag = data[flag].pre;
                yes.Enqueue(flag);
                if (flag == end) break;
            }
            status getansmaxtrix = new status();
            getansmaxtrix.init();
            for (i = yes.Count() - 1; i >= 0; i--)
            {
                int[,] ansmatrix = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };
                getansmaxtrix.init();
                num_to_status(data[yes.ElementAt(i)].cnt, data[yes.ElementAt(i)].cnt_universe, ref getansmaxtrix);
                status_to_matrix(getansmaxtrix, ansmatrix);
                for (int ii = 0; ii < 5; ii++)
                {
                    for (int jj = 0; jj < 4; jj++)
                    {
                        if (1 <= ansmatrix[ii, jj] && ansmatrix[ii, jj] <= 5)
                        {
                            ansmatrix[ii, jj] = getansmaxtrix.universe[ansmatrix[ii, jj]];
                        }
                    }
                }
                ansinmatrix.Enqueue(ansmatrix);
            }
            /*inputstatus haha = new inputstatus();
            haha.Show();
//.........这里部分代码省略.........
开发者ID:zhangkun-bjtu,项目名称:tmp,代码行数:101,代码来源:search.cs


注:本文中的status.init方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。