扫雷(代码详解)

文件夹的创建:首先我们先创建三个文件夹(1)game.c (2) game.h(3)   扫雷.c。 然后我们用game.h来声明函数,用game.c来定义函数,用扫雷.c来实现游戏的运行。

第一步:我们现在扫雷.c里面写出下面这个函数

这个就是游戏的一个界面,效果如下:

然后我们先实现游戏大概的框架,代码如下


然后我们又创建了game函数,游戏的运行我们就用它来完成,代码如下

首先扫雷我们创建一个9×9的格子,如下:

先创建两个数组           char mine[ROWS][COLS];
                                    char show[ROWS][COLS];

用这个函数来实现初始化,然后再用下面这个函数打印

这两个函数的定义如下:

这时候我们就把扫雷的图已经完成了,接下来就是布置雷的个数,然后排雷,那如果这个位置布置雷,我们就存放1,没有布置雷就存放0.现在就是有一个问题,如果出现1,那麽到底是附近有一个雷还是这个地方是雷,所以我们用字符1表示雷,1表示附近雷的数量

 

用这两个函数来实现布置雷和排雷,函数的定义如下

我们统一把这些定义放入game.c里面,只需要调用game.h就可以,最后排雷函数如下

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
    int x, y;
    int win = 0;
    while (win < row * col - 10)
    {
        printf("请输入要盘查的坐标:");
        scanf("%d%d", &x, &y);
        if (x >= 1 && x <= row && y >= 1 && y <= col)
        {
            if (mine[x][y] == '1')
            {
                printf("很遗憾,你死了\n");
                DisplayBoard(mine, ROW, COL);
                break;
            }
            else
            {
                int n = GetMineCount(mine, x, y);
                show[x][y] = n + '0';
                DisplayBoard(show, ROW, COL);
                win++;
            }
        }
        else
        {
            printf("坐标非法,请重新输入");
        }
    }

    if (win == row * col - 10)
    {
        printf("恭喜你,成功了");
        DisplayBoard(mine, ROW, COL);
    }
}

我们在game.h自己定义了扫雷图的大小,这样可以方便修改

写的很差,希望各位谅解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值