您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  C#Mines(布雷)代码 【注册男护士专用博客】          

C#Mines(布雷)代码

www.nanhushi.com     佚名   不详 

  本文给出一个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();
  }
  }
  }

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目