初级扫雷小程序代码

#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#define ROW 9
#define COL 9
#define Easy_count 80

#define ROWS ROW+2
#define COLS COL+2
void InitBoard(char Board[ROWS][COLS], int rows, int cols,char set);
void Display(char Board[ROWS][COLS], int row, int col);
void Setmine(char Board[ROWS][COLS], int row, int col);
void findmine(char mine[ROWS][COLS], char show[ROWS][COLS],int row,int col);

#include "game.h"
void InitBoard(char Board[ROWS][COLS], int rows, int cols,char set)
{
    int i, j;
    for (i = 0; i < rows; i++)
    {
        for (j = 0; j < cols;j++)
        {
            Board[i][j] = set;
        }
    }
}
void Display(char Board[ROWS][COLS], int row, int col)
{
    int i, j;
    //打印列号
    for (i = 0; i <= col; i++)
    {
        printf("%d ", i);
    }printf("\n");
    for (i = 1; i <= row; i++)
    {
        printf("%d ",i);
        for (j = 1; j <= col; j++)
        {
            printf("%c ", Board[i][j]);
        }
        printf("\n");
    }
}
void Setmine(char Board[ROWS][COLS], int row, int col)
{
    int count = Easy_count;
    while (count)
    {
        int x = rand()%  row + 1;
        int y = rand() % col + 1;
        if (Board[x][y] == ‘0‘)
        {
            Board[x][y] = ‘1‘;
            count--;
        }
    }
}
int getmine(char mine[ROWS][COLS], int x, int y)
{
    return mine[x - 1][y] +
        mine[x - 1][y - 1] +
        mine[x][y - 1] +
        mine[x + 1][y - 1] +
        mine[x + 1][y] +
        mine[x + 1][y + 1] +
        mine[x][y + 1] +
        mine[x - 1][y + 1]-8*‘0‘;

}

void findmine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
    int x, y;
    int win = 0;
    while (win<row*col-Easy_count)
    {

        printf("请输入排查坐标:");
        scanf("%d%d", &x, &y);
        if (x >= 1 && x <= row && y >= 1 && y <= col)
        {
            //坐标合法
            if (mine[x][y] == ‘1‘)
            {
                printf("很遗憾,死了\n");
                Display(mine, row, col);
                break;
            }
            else
            {
                //非雷  计算周围几个雷
                int count=getmine(mine, x, y);
                show[x][y] = count + ‘0‘;
                Display(show, row, col);
                win++;
            }
        }
        else
        {
            printf("输入非法重新输\n");
        }
    }
    if (win == row * col - Easy_count)
    {
        printf("恭喜你成功");
        Display(mine, row, col);
    }
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "game.h"
void menu()
{
    printf("********************************\n");
    printf("***1.玩游戏****2.退出***********\n");
    printf("********************************\n");
}
void game()
{
    //1  布置好的雷的信息
    char mine[ROWS][COLS] = {0};
    //2   排查出雷的信息
    char show [ROWS][COLS] = { 0 };
    //初始化
    InitBoard(mine, ROWS, COLS, ‘0‘);
    InitBoard(show, ROWS, COLS, ‘*‘);
    //打印棋盘
    //Display(mine, ROW, COL);
    Display(show, ROW, COL);
     //布置雷
    Setmine(mine, ROW, COL);
    Display(mine, ROW, COL);
    //扫雷
    findmine(mine,show,ROW,COL);

}
void test()
{

    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
        menu();
        printf("请选择:");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 2:
            printf("退出游戏,结束\n");
            break;
        default:
            printf("选择错误,重新选择\n");
            break;
        }
    } while (input);

}
int main()
{
    test();

    return 0;
}

原文地址:https://blog.51cto.com/14736509/2480785

时间: 2024-11-09 19:00:06

初级扫雷小程序代码的相关文章

福利贴——爬取美女图片的Java爬虫小程序代码

自己做的一个Java爬虫小程序 废话不多说,先上图. 文件夹命名是用标签缩写,如果大家看得不顺眼可以等下载完成后手动改一下,比如像有强迫症的我一样... 这是挂了一个晚上下载的总大小,不过还有很多因为一些问题没有遍历下载到,而且会产生很多空文件,最下面我附带了一个递归删除空文件夹的小程序代码. 接下来是文件夹内部~ 图片存放位置默认为d:\picture,可在程序中更改,main函数的开头就是,有注释.爬取的网站为http://www.mmonly.cc/,大家有更好的资源网站可以私我. 爬虫源

共享链小程序代码开发

一.共享链小程序代码开发.共享链小程序源码搭建.共享链小程序软件开发(陈丽:136电3226微1730) 二.对商业模式发展趋势的认同IDENTIFICATION OF TRENDS IN BUSINESS MODELS1.消费支付的变化:支付方式经过纸币,银行卡,网上支付,到现在的移动支付2.共享经济颠覆性经济模式:摩拜单车.滴滴打车.Airbnb.云计算资源分享 三.共享链小程序代码(陈丽:136电3226微1730) <html lang="en">   <he

微信小程序代码片段

微信小程序代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验.展示组件和 API 的使用.复现开发问题等等.分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段.如果网页可点击的链接指向的是分享链接,那么点击链接也会自动打开工具进入代码片段导入页. 创建代码片段 在工具选择项目的界面中,右侧可以选择代码片段页卡,查看所有本地代码片段,在右下角可以点击创建代码片段. 创建代码片段需要填入代码片段名称.本地存放目录.AppID 不是必填项,如果需要演示依赖 Ap

webstorm开发微信小程序代码提醒(webstorm开发工具)

使用了微信提供的开发工具是真心难用,卡顿厉害.中英文切写注释换相当不爽.还没办法多开窗口,相信大家也遇到过这种现象. 下边我们介绍下webstorm来开发微信小程序的一些配置: 1.首先FileType下Cascading Style Sheet 添加*.wxss 1.png 2.FileType下HTML 添加*.wxml 2.png 3.将其中的wecharCode.jar下载下来,然后在webStorm 的 File -> import settings 中导入即可 3.png 配置已经完

Python小程序代码片

用于记录自己写的,或学习期间看到的不错的,小程序,持续更新...... **************************************************************** [例001]计算:1-2+3-4..+199-200值 #encoding=utf-8 #计算 1-2+3-4..+199-200值 #1+3+5+7+...199 #-2-4-6...-200 sum1 = 0 sum2 = 0 for i in range(1,200,2): #计算1+3+5

微信小程序代码结构

我们通过开发者工具快速创建了一个 QuickStart 项目.你可以留意到这个项目里边生成了不同类型的文件: .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 .wxss 后缀的 WXSS 样式文件 .js 后缀的 JS 脚本逻辑文件 接下来我们分别看看这4种文件的作用. JSON 配置 我们可以看到在项目的根目录有一个 app.json 和 project.config.json,此外在 pages/logs 目录下还有一个 logs.json,我们依次来说明一下

vscode小程序代码高亮

vscode无法识别wxml,wxss语法: wxml文件设置: (1)任意打开一wxml文件,点击下方语言模式选择,这里已关联wxm所以当前显示wxml.默认关联为纯文本或者html或其他语法,点击即可.如下图 (2)点击".wxml"的配置文件关联....如下图 (3)下拉选择wxml关联即可,这里vscode安装了小程序的各种插件,没有wxml时关联html可以起到同样的效果.如下图 (4)wxss方法相同,关联wxss语法或者css语法即可.效果如下图 原文地址:https:/

微信小程序代码片段分享

Thor UI组件库,微信小程序源码分享 原文地址:https://blog.51cto.com/12418608/2409634

安卓使用代码来安装apk的小程序代码

1 private void intallApk(File t) { //t指的是apk文件的所在位置 2 Intent intent = new Intent(); 3 intent.setAction(Intent.ACTION_VIEW); 4 intent.addCategory(Intent.CATEGORY_DEFAULT); 5 intent.setDataAndType(Uri.fromFile(t), 6 "application/vnd.android.package-arc