当前位置:首页 » 网站技术 » C#

C#排雷游戏(Mines)代码

...

  本文给出一个C# Mines(布雷)的 代码,新手研究一下吧。

//以下是引用片段:

  using System.Collections;
  using System.IO;
  using System;
  namespace com.Mines
  {
  class SearchingMines
  {
  public ArrayList list = new ArrayList();
  public int[,] mines = new int[10, 10];
  static void Main(string[] args)
  {
  SearchingMines sm = new SearchingMines();
  sm.initMines();
  sm.HidenMines();
  sm.FillInOtherNumber();
  sm.display();
  // sm.SaveTxt();
  }
  public void initMines()
  {
  for (int i = 0; i < this.mines.GetLength(0); i++)
  {
  for (int j = 0; j < this.mines.GetLength(1); j++)
  {
  this.mines[i, j] = 0;
  list.Add(this.mines[i, j]);
  }
  }
  }
  public void HidenMines()
  {
  Random r = new Random();
  for (int i = 0; i < 9; i++)
  {
  int count = this.list.Count;
  int number = r.Next(count);
  int row = number / 10;
  int column = number % 10;
  this.mines[row, column] = 9;
  this.list.RemoveAt(this.mines[row, column]);
  }
  }
  public void FillInOtherNumber()
  {
  try
  {
  for (int i = 0; i < this.mines.GetLength(0); i++)
  {
  for (int j = 0; j < this.mines.GetLength(1); j++)
  {
  int left = j - 1;
  int right = j + 1;
  int top = i - 1;
  int bottom = 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 (Exception ex)
  {
  Console.WriteLine(ex.Message);
  }
  }
  public void display()
  {
  for (int i = 0; i < this.mines.GetLength(0); i++)
  {
  for (int j = 0; j < this.mines.GetLength(1); j++)
  {
  Console.Write(this.mines[i, j] + " ");
  }
  Console.Write("n");
  }
  }
  public void SaveTxt()
  {
  StreamWriter sw = new StreamWriter(@"c:abc.txt");
  for (int i = 0; i < this.mines.GetLength(0); i++)
  {
  for (int j = 0; j < this.mines.GetLength(1); j++)
  {
  sw.Write(this.mines[i, j] + " ");
  }
  sw.WriteLine();
  }
  sw.Flush();
  sw.Close();
  }
  }
  }

继续阅读
C#设计模式学习之一:开篇
C#设计模式学习之二:Singleton
C#设计模式学习之三:Abstract Factory
C#设计模式学习之四:Factory Method
C#读写文本文件代码
C#开发智能手机游戏-推箱子
C#编写的蜘蛛爬虫程序
C#远程连接SQL Server2005
C#和ASP.NET开发的一些小技巧及注意事项
发表评论

昵称:
最新评论
暂时没有评论!