扫雷游戏可以经由过程已掀开格子所提醒的四周地雷数,实现判定未掀开格子里是否有地雷,此刻给出一个n行m列的雷区分布图,每个格子四周有八个:上、下、左、右、左上、左下、右上和右下,要求输出每个非地雷格子四周的地雷数。
如何用C++实现这一算法呢?小编与大师分享编程经验。
输入数据时,第一行为地雷分布图的行数和列数,划定雷区的行列数小于100。接下来是雷区分布图各格的地雷分布,“*”暗示是地雷,“?”暗示格子中无地地雷,每个字符之间无任何分隔符。
输出数据时,输出雷区的每个格子,若是格子中是地雷,则用“*”暗示,若是格子中无地雷则用四周的地雷数暗示,每个字符之间无任何分隔符。
首先,界说一个常量,用来节制数组的大小。
接着,界说各整型变量,实现法式的运算。
界说两个整型数组,保留雷区分布图和响应雷区的描述。
然后,界说两个整型一维数组,保留四周八个格子的相对坐标。
输入雷区的行数和列数,保留在变量n和m中。
输入雷区分布图,保留在二维数组mine中。
一一读取雷区分布图中的各格数据,用来运算雷区的描述。
若是读取的格子为地雷,则暗示对应格子的描述值设置为“*”,保留在变量s中。
若是雷区格子中没有地雷,则一一计较四周的地雷数。
用if语句判定计较出的四周格子是否在雷区中,若是前提当作立且四周格子中是地雷,则计数值count累加1。
然后,将计较出的四周地雷数转化为字符,保留在字符数组s中。
最后,输出二维数组s中的值,即输出整个雷区的描述图。
运行法式,输入雷区的行数和列数,以及整个雷区分布图,电脑就管帐算出响应雷区的描述图。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!