// /***************************************************
// 項(xiàng)目: ? ? ...............................
// 功能: ? ? ...............................
//
// 版本: ? ? 主.次.月日.時(shí)分 ? ?修改內(nèi)容 ? ?修改者姓名
// ? ? ? ? ? ?............ ? ? ? ? ? ?....... ? ? ? ?....
//
// 創(chuàng)建:
// ? ? ? 肖馬克蠻牛 ?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)
{
// 掃雷
// 輸入數(shù)據(jù)浴骂,校驗(yàn)部分忽略
Console.WriteLine ("請輸入長度, 按回車結(jié)束(長度范圍10-25)");
ROW = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("請輸入寬度, 按回車結(jié)束(長度范圍10-25)");
COL = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("請輸入雷數(shù), 按回車結(jié)束(雷數(shù)范圍10-50)");
NUM = Convert.ToInt32 (Console.ReadLine ());
// 生成地圖染坯, -1表示雷, 0-8表示附件的雷的個(gè)數(shù)
MAP = new int[ROW,COL];
// 隨機(jī)生成雷
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;
// 遍歷八個(gè)方向
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)
{
// 八個(gè)方向
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;
// 雷數(shù)+1
MAP [index_x, index_y]++;
}
}
}
}
}
? ?