VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • c# Mines布雷 代码

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  本文给出一个 C# Mines(布雷)的 代码,新手研究一下吧。  以下是引用片段:
  usingSystem.Collections;
  usingSystem.IO;
  usingSystem;
  namespacecom.Mines
  {
  classSearchingMines
  {
  publicArrayListlist=newArrayList();
  publicint[,]mines=newint[10,10];
  staticvoidMain(string[]args)
  {
  SearchingMinessm=newSearchingMines();
  sm.initMines();
  sm.HidenMines();
  sm.FillInOtherNumber();
  sm.display();
  //sm.SaveTxt();
  }
  publicvoidinitMines()
  {
  for(inti=0;i<this.mines.GetLength(0);i++)
  {
  for(intj=0;j<this.mines.GetLength(1);j++)
  {
  this.mines[i,j]=0;
  list.Add(this.mines[i,j]);
  }
  }
  }
  publicvoidHidenMines()
  {
  Randomr=newRandom();
  for(inti=0;i<9;i++)
  {
  intcount=this.list.Count;
  intnumber=r.Next(count);
  introw=number/10;
  intcolumn=number%10;
  this.mines[row,column]=9;
  this.list.RemoveAt(this.mines[row,column]);
  }
  }
  publicvoidFillInOtherNumber()
  {
  try
  {
  for(inti=0;i<this.mines.GetLength(0);i++)
  {
  for(intj=0;j<this.mines.GetLength(1);j++)
  {
  intleft=j-1;
  intright=j+1;
  inttop=i-1;
  intbottom=i+1;
  if(this.mines[i,j]!=9)
  {
  if(top>=0&&left>=0)//左边和上边
  {
  if(this.mines[top,left]==9)//判断左上方是否为9
  {
  mines[i,j]+=1;
  }
  }
  if(top>=0&&right<10)//右边和上边
  {
  if(this.mines[top,right]==9)//判断该点的右上方是否
  {
  mines[i,j]+=1;
  }
  }
  if(top>=0)//最上边
  {
  if(this.mines[top,j]==9)//上边的那个是否为9
  {
  mines[i,j]+=1;
  }
  }
  if(left>=0)//最左边
  {
  if(this.mines[i,left]==9)//看左边那个是否为9
  {
  mines[i,j]+=1;
  }
  }
  if(right<10)//最右边
  {
  if(this.mines[i,right]==9)//看右边是否为9
  {
  mines[i,j]+=1;
  }
  }
  if(bottom<10&&left>=0)//底部和左边
  {
  if(this.mines[bottom,left]==9)//左下方是否为9
  {
  mines[i,j]+=1;
  }
  }
  if(bottom<10&&right<10)//右下方
  {
  if(this.mines[bottom,right]==9)右下方
  {
  mines[i,j]+=1;
  }
  }
  if(bottom<10)//底部
  {
  if(this.mines[bottom,j]==9)//底部是否为9
  {
  mines[i,j]+=1;
  }
  }
  //if(left<0)//左边
  //{
  //if(this.mines[i,right]==9)//右侧是否为9
  //{count+=1;}
  //if(bottom<10&&bottom>0)//如果底边的范围是除过头节点和尾节点
  //{
  //if(this.mines[bottom,j]==9)//底部是否为9
  //{count+=1;}
  //if(this.mines[bottom,right]==9)//右下是否为9
  //{count+=1;}
  //}
  //if(top>0&&top<10)//上边除过头结点和尾节点
  //{
  //if(this.mines[top,j]==9)//头上那个点是否为9
  //{count+=1;}
  //if(this.mines[top,right]==9)//右上是否为9
  //{count+=1;}
  //}
  //}
  //if(j==this.mines.GetLength(0))
  //{
  //if(i==0)
  //{
  //if(this.mines[i,j-1]==9)
  //{count+=1;}
  //if(this.mines[i-1,j-1]==9)
  //{count+=1;}
  //if(this.mines[i-1,j]==9)
  //{count+=1;}
  //
  //}
  //if(i>0&&i 
  //{
  //if(this.mines[i+1,j-1]==9)
  //{count+=1;}
  //if(this.mines[i+1,j]==9)
  //{count+=1;}
  //if(this.mines[i,j-1]==9)
  //{count+=1;}
  //if(this.mines[i-1,j]==9)
  //{count+=1;}
  //if(this.mines[i-1,j-1]==9)
  //{count+=1;}
  //}
  //if(i==this.mines.GetLength(1))
  //{
  //if(this.mines[i-1,j-1]==9)
  //{count+=1;}
  //if(this.mines[i-1,j]==9)
  //{count+=1;}
  //if(this.mines[i,j-1]==9)
  //{count+=1;}
  //}
  //}
  //this.mines[i,j]=count;
  }
  }
  }
  }
  catch(Exceptionex)
  {
  Console.WriteLine(ex.Message);
  }
  }
  publicvoiddisplay()
  {
  for(inti=0;i<this.mines.GetLength(0);i++)
  {
  for(intj=0;j<this.mines.GetLength(1);j++)
  {
  Console.Write(this.mines[i,j]+"");
  }
  Console.Write("n");
  }
  }
  publicvoidSaveTxt()
  {
  StreamWritersw=newStreamWriter(@"c:abc.txt");
  for(inti=0;i<this.mines.GetLength(0);i++)
  {
  for(intj=0;j<this.mines.GetLength(1);j++)
  {
  sw.Write(this.mines[i,j]+"");
  }
  sw.WriteLine();
  }
  sw.Flush();
  sw.Close();
  }
  }
  }



相关教程