扫雷游戏(纯C实现)(二)

2014-11-23 21:45:53 · 作者: · 浏览: 22

<1>:返回周围地雷个数的函数
函数原型: int round_num_mines(int i,int j);

原函数见:html">http://www.2cto.com/kf/201104/87210.html

   
优化后的

算法函数接口:
1 .返回周围地雷个数的函数
/* ************************************************************
返回周围地雷个数的函数
函数原型: int round_num_mines(int i,int j);
参 数: int i, int j为当前的坐标
返回值类型: int 返回该坐标处周围的地雷数
返回值情况:(1)返回1-8代表周围有1-8个地雷;
(2)返回0代表周围没有地雷;
(3)返回*代表此坐标时地雷;
*********************************************************
*/
//////////////////////////////////////////////////////
//
// 就是搞不懂为什么下面两个函数不
会出现数组越界情况
//
//////////////////////////////////////////////////////
char round_num_mines( int i, int j)
{
if (map[i][j] == * )
{
return * ;
}

int k = 0 ;
if (map[i + 1 ][j] == * ) k ++ ;
if (map[i + 1 ][j - 1 ] == * ) k ++ ;
if (map[i + 1 ][j + 1 ] == * ) k ++ ;
if (map[i][j + 1 ] == * ) k ++ ;
if (map[i - 1 ][j] == * ) k ++ ;
if (map[i - 1 ][j + 1 ] == * ) k ++ ;
if (map[i][j - 1 ] == * ) k ++ ;
if (map[i - 1 ][j - 1 ] == * ) k ++ ;
return k;
}
*/
// 改进后的(书上的)代码:
(改进算法)
(
1 ).首先定义一个二维数组:
int