如何编写一个扫雷速度最快的自动扫雷程序

如何编写一个扫雷速度最快的自动扫雷程序,第1张

#include

#include

#include

using namespace std

int map[12][12] // 为避免边界的特殊处理,故将二维数组四周边界扩展1

int derection[3] = { 0, 1, -1 } //方向数组

int calculate ( int x, int y )

{

int counter = 0

for ( int i = 0i <3i++ )

for ( int j = 0j <3j++ )

if ( map[ x+derection[i]][ y+derection[j] ] == 9 )

counter++// 统计以(x,y)为中心的四周的雷数目

return counter

}

void game ( int x, int y )

{

if ( calculate ( x, y ) == 0 )

{

map[x][y] = 0

for ( int i = 0i <3i++ )

{ // 模拟游戏过判梁程,若点到一个空白,则系统自动向外扩展

for ( int j = 0j <3j++ )

if ( x+derection[i] <= 9 &&y+derection[j] <= 9 &&x+derection[i] >= 1 &&y+derection[j] >= 1

&&!( derection[i] == 0 &&derection[j] == 0 ) && map[x+derection[i]][y+derection[j]] == -1 )

game( x+derection[i], y+derection[j] )// 条件比较多,一是银闹不可以让两个方向坐标同时为0,否则

递归调用本身!

} //二是递归不能出界.三是要保证不返回调用。

}

else

map[x][y] = calculate(x,y)

}

void print ()

{

for ( int i = 1i <10i++ )

{

for ( int j = 1j <10j++ )

{

if ( map[i][j] == -1 || map[i][j] == 9 )

cout <<"#"

else

cout <>x >>y )

{

if ( map[x][y] == 9 )

{

cout <<"GAME OVER" <>ch

cout <<"\n\n"

} while ( ch == 'Y'掘搏运 )

return 0

}

c++:

#include<iostream>

#include<fstream>

#include <ctime>

using namespace std

void layout(int n) {

char**cs = (char**) malloc(sizeof(char*) * n)

srand((unsigned) time(0))

for (int i = 0 i < n ++i) {

cs[i]=(char*) malloc(sizeof(char) * n)

for (int j = 0 j < n ++j) {

int r0 = rand() % 100

int r1 = rand() % 100

if (r1 >= r0 && r1>70) { //雷

cs[i][j] = '*'

} else {

cs[i][j] = ' '

}

}

}

//计算雷的个数

for (int i 册腊= 0 i < n ++i) {

for (int j = 0 j < n ++j) {

if (cs[i][j] == '*')

cout <<"  "<< cs[i][j]

else {

int count = 0

for (int k = i - 1 k <= i + 缓腔1 k++) {

for (int 州哪滑l = j - 1 l <= j + 1 l++) {

if (k >= 0 && l >= 0 && k < n && l < n

&& cs[k][l] == '*'){

count++

}

}

}

cs[i][j]=(char)('0'+count)

cout <<"  "<< cs[i][j]

}

}

cout << endl

}

}

int main() {

int n = 4

cout << "请输入行数:"

cin >> n

layout(n)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8260115.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存