C# Mines(布雷) 代码

2016-02-19 13:47 8 1 收藏

下面图老师小编跟大家分享一个简单易学的C# Mines(布雷) 代码教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

以下是引用片段:
  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 && right10)//右边和上边
  {
  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(right10)//最右边
  {
  if (this.mines[i, right] == 9)//看右边是否为9
  {
  mines[i,j] += 1;
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

以下是引用片段:
  }
  if(bottom10 && left =0)//底部和左边
  {
  if (this.mines[bottom, left] == 9)//左下方是否为9
  {
  mines[i,j] += 1;
  }
  }
  if(bottom10 && right10)//右下方
  {
  if (this.mines[bottom, right] == 9)右下方
  {
  mines[i,j] += 1;
  }
  }
  if(bottom10)//底部
  {
  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(i0&&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;
  }
  }
  }
  }

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

以下是引用片段:
  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 && right10)//右边和上边
  {
  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(right10)//最右边
  {
  if (this.mines[i, right] == 9)//看右边是否为9
  {
  mines[i,j] += 1;
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

以下是引用片段:
  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();
  }
  }
  }

来源:http://www.tulaoshi.com/n/20160219/1605224.html

延伸阅读
摘要  想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动。最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快乐,那么请跟我来。  正文  1.先介绍一下使用的类:  DNS类:在.net中的System.net命名空间下,主要的功能是从 Internet&...
  using System;  using System.ComponentModel;  using System.Windows.Forms;  using System.Threading;   namespace AutoResetEventTest  {      public partial class Form1 : Form      { &nb...
先引用using System.Runtime.InteropServices; 的命名空间, 然后在合适的位置加上如下代码就OK。。注意:Form1_Load和Form1_FormClosed不能直接copy哦~ 代码如下: [DllImport("user32")] public static extern bool RegisterHotKey(IntPtr hWnd,int id,uint control,Keys vk ); //注册热键的api [DllImport("user32")] public static e...
using System;using System.DirectoryServices; //要增加此DLL文件 private void button3_Click(object sender, System.EventArgs e) { try { DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry NewUser = AD.Children.Add("TestUser1", "use...
标签: Web开发
正好有时间所以用C#写了一段正则表达式,作用是删除 Page 里面Code 中的 HTML标签,这在做采集信息,消除其中的HTML很有用处。 以下是引用片段: publicstringcheckStr(stringhtml) { System.Text.RegularExpressions.Regexregex1=newSystem.Text.RegularExpressions.Regex(@"script[sS]+/script*",System.Text.RegularExpr...

经验教程

13

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部