using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("按enter键挖雷,按Q键标记雷,当雷区都标记正确,就胜利");
Console.WriteLine("输入地雷区域的宽");
int n = Convert.ToInt32(Console.ReadLine());//n标记雷区的宽和高
Console.WriteLine("输入地雷的个数");
int q = Convert.ToInt32(Console.ReadLine());//q标记雷的个数
int q1 = q; //标记下.
Console.Clear();
int x = 0, y = 0;
Console.SetCursorPosition(x, y); //接受用户输入后的初始化值后,清屏
string bianjie = "#";
string[,] b = new string[n, n];//用二维数组b来标记显示的界面.
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
b[i, j] = "■"; //给每个元素赋这个标记
Console.Write(b[i, j]);//并显示界面
if (j == n - 1)//标记右边边界
{
Console.Write(bianjie);
}
}
Console.WriteLine();
}
for (int i2 = 0; i2 < n + 1; i2++)//标记下面边界
{
Console.Write(bianjie);
}
//初始化地雷
int[,] a = new int[n, n]; //用数组a对应 显示数组b的坐标 来标记
Random r = new Random(); //随机数的种子
Program c = new Program(); //使用函数,申请类的实例C
while (true)//填充地雷
{
int x1 = r.Next(0, n);
int y1 = r.Next(0, n);
if (a[x1, y1] != 10)
{
a[x1, y1] = 10;//随机选择地雷的坐标,用数字10在a数组中表示为地雷
c.Bj(a, x1, y1);//调用BJ函数,对雷区周围的格子,进行加1
q--; //如果布置了一个雷,就将总数减一,直到q==0的时候退出
if (q == 0)//如果地雷埋完了,就退出
{
break;
}
}
}
do//上下左右移动光标
{
if (Console.KeyAvailable)
{
#region 接受键盘,和上下左右移动
ConsoleKeyInfo cki = Console.ReadKey(true);
ConsoleKey ck = cki.Key;
if (ck == (ConsoleKey)37 && x != 0)//左
{
x--;
}
if (ck ==
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("按enter键挖雷,按Q键标记雷,当雷区都标记正确,就胜利");
Console.WriteLine("输入地雷区域的宽");
int n = Convert.ToInt32(Console.ReadLine());//n标记雷区的宽和高
Console.WriteLine("输入地雷的个数");
int q = Convert.ToInt32(Console.ReadLine());//q标记雷的个数
int q1 = q; //标记下.
Console.Clear();
int x = 0, y = 0;
Console.SetCursorPosition(x, y); //接受用户输入后的初始化值后,清屏
string bianjie = "#";
string[,] b = new string[n, n];//用二维数组b来标记显示的界面.
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
b[i, j] = "■"; //给每个元素赋这个标记
Console.Write(b[i, j]);//并显示界面
if (j == n - 1)//标记右边边界
{
Console.Write(bianjie);
}
}
Console.WriteLine();
}
for (int i2 = 0; i2 < n + 1; i2++)//标记下面边界
{
Console.Write(bianjie);
}
//初始化地雷
int[,] a = new int[n, n]; //用数组a对应 显示数组b的坐标 来标记
Random r = new Random(); //随机数的种子
Program c = new Program(); //使用函数,申请类的实例C
while (true)//填充地雷
{
int x1 = r.Next(0, n);
int y1 = r.Next(0, n);
if (a[x1, y1] != 10)
{
a[x1, y1] = 10;//随机选择地雷的坐标,用数字10在a数组中表示为地雷
c.Bj(a, x1, y1);//调用BJ函数,对雷区周围的格子,进行加1
q--; //如果布置了一个雷,就将总数减一,直到q==0的时候退出
if (q == 0)//如果地雷埋完了,就退出
{
break;
}
}
}
do//上下左右移动光标
{
if (Console.KeyAvailable)
{
#region 接受键盘,和上下左右移动
ConsoleKeyInfo cki = Console.ReadKey(true);
ConsoleKey ck = cki.Key;
if (ck == (ConsoleKey)37 && x != 0)//左
{
x--;
}
if (ck ==