2017-05-10

2017-05-10  本文已影响0人  帅帅的浪浪zl

// /***************************************************

// 项目:     ...............................

// 功能:     ...............................

//

// 版本:     主.次.月日.时分    修改内容    修改者姓名

//            ............            .......        ....

//

// 创建:

//       肖马克蛮牛  QQ:1414845674

//

//  Copyright (c) 2017 11:24

//

// 描述:

// ***************************************************/

//

using System;

namespace StudentQuestion

{

class MainClass

{

static int[,] MAP;

static int ROW, COL, NUM;

public static void Main (string[] args)

{

// 扫雷

// 输入数据,校验部分忽略

Console.WriteLine ("请输入长度, 按回车结束(长度范围10-25)");

ROW = Convert.ToInt32 (Console.ReadLine ());

Console.WriteLine ("请输入宽度, 按回车结束(长度范围10-25)");

COL = Convert.ToInt32 (Console.ReadLine ());

Console.WriteLine ("请输入雷数, 按回车结束(雷数范围10-50)");

NUM = Convert.ToInt32 (Console.ReadLine ());

// 生成地图, -1表示雷, 0-8表示附件的雷的个数

MAP = new int[ROW,COL];

// 随机生成雷

Random random = new Random ();

for(int i = 0; i < NUM; i++)

{

while(true)

{

int x = random.Next (0, ROW);

int y = random.Next (0, ROW);

if(MAP[x, y] != -1)

{

MAP [x, y] = -1;

// 遍历八个方向

UpdateMap (x, y);

break;

}

}

}

// 输出地图

for(int i = 0; i < ROW; i++)

{

for(int j = 0; j < COL; j++)

{

Console.Write (MAP[i, j].ToString().PadLeft(3));

}

Console.WriteLine ();

}

}

public static void UpdateMap(int x, int y)

{

// 八个方向

for(int i = -1; i <= 1; i++)

{

for(int j = -1; j <= 1; j++)

{

if (i == 0 && j == 0)

continue;

int index_x = x + i;

int index_y = y + j;

if (index_x < 0 || index_y < 0 || index_x >= ROW || index_y >= ROW)

continue;

if (MAP [index_x, index_y] == -1)

continue;

// 雷数+1

MAP [index_x, index_y]++;

}

}

}

}

}

   

上一篇下一篇

猜你喜欢

热点阅读