九宫格移动算法实现.docVIP

  • 6
  • 0
  • 约1.14万字
  • 约 8页
  • 2017-01-06 发布于贵州
  • 举报
九宫格移动算法实现九宫格移动算法实现

用.Net实现九宫格移动算法 说明:在3*3的格子里,假设一个格子为空(在程序里是用0代表),其他格子可以移动到这个格子上,有多少种可能?答案是9的阶乘除以2=181440种,以下为程序实现,输出到d:\GridNine.txt文件中。程序共两个类Program和Mygrid。以下为代码: Program: -------------------------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Windows.Forms; using System.IO; namespace WindowsApplication1 { static class Program { static int gen = 0; /// summary /// 应用程序的主入口点。 /// /summary [STAThread] static void Main() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Form1()); ListMygrid list = new ListMygrid(); Mygrid iniGrid = new Mygrid(1, 2, 3, 4, 0, 5, 6, 7, 8); list.Add(iniGrid); iniGrid.Genaration = gen; gen = gen + 1; //以初始集合开始衍生 ComputeAll(null,list); Console.WriteLine(list.Count); string[] output = new string[list.Count]; for (int i = 0; i list.Count; i++) { Mygrid single = list[i]; output[i] = single.GridToStringAll(); } string context = string.Join(@ , output); using (StreamWriter savefile = new StreamWriter(@d:\GridNine.txt)) { savefile.WriteLine(context); savefile.Close(); } MessageBox.Show(@移动步骤保存成功!文件为:d:\GridNine.txt); } /// summary /// /// /summary /// param name=addList新加入/param /// param name=list全部包含新加入/param static void ComputeAll(ListMygrid addList,ListMygrid list) { ListMygrid newList; if (addList == null) { //计算当前list中变换得来的全部 newList = GetAllNew(list); } else {

文档评论(0)

1亿VIP精品文档

相关文档