首页 > 编程开发 > Objective-C编程 >
-
c# Mines布雷 代码
本文给出一个 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();
}
}
}