本文整理汇总了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();
//.........这里部分代码省略.........