您的位置:首页 > 编程语言 > C语言/C++

最简单C语言的扫雷地图(不是游戏)

2015-09-09 20:04 507 查看
//
//  09_homework_扫雷.c
//  day07
//
//  Created by tarena on 15/9/9.
//  Copyright (c) 2015年 Bana. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void SL(int x,int y);
int main(){
printf("请输入两个数(行,列)\n");
int x,y;
scanf("%d",&x);
scanf("%d",&y);
SL(x,y);//扫雷地图生成函数
return 0;
}
void SL(int x,int y){

srand((unsigned)time(0));
int tab[x][y];

//随机生成雷区
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
int num = rand()%((x+y)/2)-1;
if(num == -1)
tab[i][j] =num;
else
tab[i][j] = 0;
}
}

//遍历周围是否有雷区,是就加一
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
if(tab[i][j] == -1)
continue;
for(int m=i-1;m<=i+1;m++){
if( m<0 )
continue;
if(m >= x )
break;
for(int n = j-1;n<=j+1;n++){
if(m ==i && n == j)
continue;
if( n < 0)
continue;
if( n >= y)
break;
if(tab[m]
== -1)
tab[i][j]++;
}
}

}
}

//打印地图
printf("扫雷地图:\n");
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("%d\t",tab[i][j]);
}
printf("\n");
}

return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: