iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言编写扫雷小程序
  • 673
分享到

C语言编写扫雷小程序

2024-04-02 19:04:59 673人浏览 独家记忆
摘要

本文实例为大家分享了C语言实现扫雷小程序的具体代码,供大家参考,具体内容如下 首先创建一个项目,建立一个头文件game.h,两个源文件game.c和test.c game.h代码片:

本文实例为大家分享了C语言实现扫雷小程序的具体代码,供大家参考,具体内容如下

首先创建一个项目,建立一个头文件game.h,两个源文件game.c和test.c

game.h代码片:

#ifndef  __GAME_H__
#define  __GAME_H__

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define ROWS 10//行数
#define COLS 10//列数
#define MINE 20//雷数

void Init_board(char arr[ROWS+2][COLS+2],int rows,int cols, char a);
void Is_show(char arr[ROWS+2][COLS+2], int rows, int cols);
void Set_mine(char arr[ROWS + 2][COLS + 2], int rows, int cols);
void Over_board(char arr[ROWS + 2][COLS + 2], int rows, int cols);


#endif

test.c代码片:

#include"game.h"
#include<time.h>
void menu()   //打印菜单栏
{
    int i = 0;
    int j = 0;
    for (i = 0; i < 5; i++)
    {
        if (i == 2)
        {
            printf("   1.Play       0.Exit    ");
        }
        else
        {
            for (j = 0; j < COLS * 3; j++)
            {
                printf("%c", 3);
            }
        }
        printf("\n");
    }

}

int  get_mine(char arr[ROWS + 2][COLS + 2], int x, int y)//用于清空没有雷区的地方
{
    return (arr[x - 1][y] - '0')
        + (arr[x - 1][y - 1] - '0')
        + (arr[x - 1][y + 1] - '0')
        + (arr[x][y - 1] - '0')
        + (arr[x][y + 1] - '0')
        + (arr[x + 1][y - 1] - '0')
        + (arr[x + 1][y + 1] - '0')
        + (arr[x + 1][y] - '0');
}
void game()  //玩游戏函数
{
    char mine[ROWS+2][COLS+2] = { 0 };
    char show[ROWS+2][COLS+2] = { 0 };
    int win = 1;
    srand((unsigned int)time(NULL));
    Init_board(mine, ROWS + 2, COLS + 2, '0');
    Init_board(show, ROWS + 2, COLS + 2, '*');
    
    //打印雷区棋盘 方便调试
    Set_mine(mine, ROWS + 2, COLS + 2);
    
    Is_show(show, ROWS + 2, COLS + 2);
    while (win < ROWS*COLS - MINE)
    {
        int x = 0;
        int y = 0; 
        printf("请选择>:");
        scanf("%d%d", &x, &y);
        if ((x >= 1) && (x <= 10) && (y >= 1) && (y <= 10))
        {
            if (mine[x][y] == '1')
            {
                printf("你输了!\n");
                Over_board(mine, ROWS + 2, COLS + 2);
                Is_show(mine, ROWS + 2, COLS + 2);
                break;
            }
            else
            {
                int count = get_mine(mine, x, y);
                if (count == 0)
                {
                    win += 9;
                    show[x][y] = ' ';
                    show[x - 1][y - 1] = ' ';
                    show[x - 1][y] = ' ';
                    show[x - 1][y + 1] = ' ';
                    show[x][y - 1] = ' ';
                    show[x][y + 1] = ' ';
                    show[x + 1][y - 1] = ' ';
                    show[x + 1][y] = ' ';
                    show[x + 1][y + 1] = ' ';
                    Is_show(show, ROWS + 2, COLS + 2);
                }
                else
                {
                    win++;
                    show[x][y] = count + '0';
                    Is_show(show, ROWS + 2, COLS + 2);
                }
            }
        }
        else
        {
            printf("输入有误,请重新输入%c", 1);
        }
    }
    if (win >=ROWS*COLS - MINE)
    {
        Over_board(show, ROWS + 2, COLS + 2);
        printf("你赢了!\n");
        Is_show(show, ROWS + 2, COLS + 2);
    }
}

int main()
{

    int input = 0;
    do
    {
        menu();
        printf("请选择>;");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            break;
        default:
            printf("选择错误,请重新选择\n");
            break;
        }
    } while (input);
    return 0;
}

game.c代码片:

#include"game.h"

void Init_board(char arr[ROWS+2][COLS+2], int rows, int cols, char a)//初始化棋盘
{
    memset(arr, a, rows*cols);
}

void Is_show(char arr[ROWS+2][COLS+2], int rows, int cols)//打印棋盘
{

    int i = 0;
    int j = 0;
    printf("      ");
    for (i = 0; i < rows - 2; i++)
    {
        printf("_%d__", i + 1);
    }
    printf("\n");
    for (i = 0; i < rows - 2; i++)
    {
        printf("%2d   ", i + 1);
        for (j = 0; j < cols - 2; j++)
        {
            printf("|_%c_", arr[i + 1][j + 1]);


        }
        printf("|\n");
    }
}

void Set_mine(char arr[ROWS + 2][COLS + 2], int rows, int cols)//设置雷区
{
    int x = 0;
    int y = 0;
    int count = MINE;
    while (count)
    {
        x = rand() % 10 + 1;
        y = rand() % 10 + 1;
        if (arr[x][y] != '1')
        {
            arr[x][y] = '1';
            count--;
        }
    }
}

void Over_board(char arr[ROWS + 2][COLS + 2], int rows, int cols)//将所有不是雷区的位置清空
{
    int i = 0;
    int j = 0;

    for (i = 0; i < rows - 2; i++)
    {
        for (j = 0; j < cols - 2; j++)
        {
            if (arr[i + 1][j + 1] == '0')
                arr[i + 1][j + 1] = ' ';
        }
    }


}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言编写扫雷小程序

本文链接: https://www.lsjlt.com/news/167190.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言编写扫雷小程序
    本文实例为大家分享了C语言实现扫雷小程序的具体代码,供大家参考,具体内容如下 首先创建一个项目,建立一个头文件game.h,两个源文件game.c和test.c game.h代码片:...
    99+
    2022-11-13
  • C语言实现扫雷小程序
    前言 《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。 多文件形式 在实现游戏...
    99+
    2022-11-12
  • 用C语言实现扫雷小程序
    本文实例为大家分享了C语言实现扫雷小程序的具体代码,供大家参考,具体内容如下 扫雷程序的编写需要有清晰的思路,所以我们先要清楚扫雷的实现有几个功能模块让我们编写,再用主函数将功能结合...
    99+
    2022-11-13
  • C语言版扫雷小游戏
    本文实例为大家分享了C语言版扫雷小游戏的具体代码,供大家参考,具体内容如下 一、游戏功能 1、显示该点周围雷的个数 2、第一次下子,不炸死 3、坐标周围没雷,可以实现展开 二、效果...
    99+
    2022-11-12
  • C语言扫雷排雷小游戏实现全程
    目录test.cgame.hgame.c详解游戏代码的实现1初化扫雷区2打印扫雷区3 设置雷4 排雷4.1展开一片的功能4.2雷标记功能的实现游戏过程test.c 在这个文件中,我们...
    99+
    2022-11-13
  • C语言实现简易扫雷程序
    前言 前面写了三子棋的小游戏,感觉不过瘾,今天再来一个扫雷的小游戏。欢迎评论探讨 思路分析 游戏简介 说到扫雷很容易想起很多个方形格子,表面什么也没有,点击其中一个小格子,如果时炸弹...
    99+
    2022-11-12
  • 利用C语言编写一个扫雷游戏
    本篇文章为大家展示了利用C语言编写一个扫雷游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方...
    99+
    2023-06-06
  • C语言编程实现扫雷游戏
    本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下 在我们熟知的扫雷中,我们点击小方块,小方块要么出现数字,要么遇到地雷。我打算,使用数组的方式来完成扫雷游戏...
    99+
    2022-11-12
  • C语言实现扫雷小项目
    本文实例为大家分享了C语言实现扫雷小项目的具体代码,供大家参考,具体内容如下 游戏的基本设计流程如下: 菜单实现: void menu() { printf("#######...
    99+
    2022-11-12
  • 用C语言实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 1. 规则 随便点一个格子,会有一块,上面的数字就代表数字周围八个格子会有几个雷,是1他周围就只有1个雷...
    99+
    2022-11-12
  • C语言练习之扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 *1.设计思路与实现要求 (1)创建两个二维数组 9x9 ,一个表示显示地图数组showMap-未翻开状...
    99+
    2022-11-12
  • c语言扫雷小游戏源代码
    这期内容当中小编将会给大家带来有关c语言扫雷小游戏源代码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。说明:该游戏的实现需要建立三个文件test2.c:整个游戏,开始游戏/退出游戏的大体执行流程game2...
    99+
    2023-06-06
  • C语言如何实现一个扫雷程序
    本篇内容介绍了“C语言如何实现一个扫雷程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!整个游戏设计中主要的函数为:1、初始化地雷棋盘和显示...
    99+
    2023-06-17
  • C语言编程怎么实现扫雷游戏
    这篇文章主要讲解了“C语言编程怎么实现扫雷游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言编程怎么实现扫雷游戏”吧!在我们熟知的扫雷中,我们点击小方块,小方块要么出现数字,要么遇到地...
    99+
    2023-06-20
  • C语言实现扫雷代码怎么写
    这篇文章主要介绍了C语言实现扫雷代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言实现扫雷代码怎么写文章都会有所收获,下面我们一起来看看吧。C语言实现扫雷OvO0.打印菜单void men...
    99+
    2023-06-29
  • 基于C语言实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 game.h 设置头文件 #include<stdio.h> #include<s...
    99+
    2022-11-12
  • C语言轻松实现扫雷小游戏
    前言 扫雷是一款经典的小游戏,那么如何用c语言来实现呢?下面我将带你搞定扫雷小游戏。 注:本此游戏所用到的文件与上篇三子棋类似,最后附有代码展示。 1.游戏设计逻辑 1.布置雷&md...
    99+
    2022-11-13
    C语言 扫雷
  • 使用C语言实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 游戏规则 在一个9*9的地图上一共有十个雷,翻开所有不是雷的位置 游戏即为胜利, 如果踩到雷,游戏结束 ...
    99+
    2022-11-12
  • C语言实现扫雷小游戏详解
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 一.实现功能 首先显示一个小菜单,选择是否玩游戏。当用户选择退出时,程序运行结束,当用户选择玩游戏时,将...
    99+
    2022-11-12
  • C语言简易实现扫雷小游戏
    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 经典扫雷游戏规则: 当玩家点击游戏区域,该处周围的八个位置有几个雷(如果是角落则是周边三个位置雷的个数,...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作