新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> .Net技术 >> 文章正文

C# Mines(布雷) 代码

一个C# Mines(布雷)的 代码,新手研究一下吧,新疆软件开发网 www.k8w.net

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<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; }
// 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();

}


}

}


in

作者:未知 | 文章来源:未知 | 更新时间:2007-11-17 17:16:57

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    C#实现短信发送程序的例子
    .net学习:c#事件的深入分析
    基础学习:java中使用存储过程
    C#如何设置或者获取目录的权限?
    解析c#语言和java语言最相似的地方
    C#中如何才能调用QTP自动化对象
    C#如何转换AVI文件为BMP位图文件
    c#如何连接各类数据库
    C#abstact interface 学习
    c#中的interface abstract与virtual学习
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·.net技术 asp.net MVC3 Vi
    ·.net将视频文件格式转换成
    ·NET Framework 2.0 Servic
    ·如何动态修改winform的app
    ·asp,net软件结构设计和相关
    ·学习怎样使用ASP.NET中的虚
    ·,net基础类的学习:system
    ·.net学习:c#事件的深入分
    ·Facade Pattern学习总结
    ·C#如何设置或者获取目录的
    ·如何使用XSL来定义ASP.NET
    ·理解WCF Data Contract契约
    ·如何能在.net2.0开发的控件
    ·模式怎样使用,讲解模式的
    ·如何解决Menu菜单被frame遮
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000