【C语言】扫雷—初学者也能写的小游戏

这篇博客适合C语言初学者,通过217行代码教你如何编写扫雷小游戏。讲解了游戏的布局、创建雷区、初始化、生成雷和排查雷的步骤,并提供了完整代码。文章在VS2019环境下编写,通过创建三个文件协同工作,帮助初学者理解C语言编程。
摘要由CSDN通过智能技术生成

【C语言】扫雷

整体来说比较简单

适合初学C语言的小白
需要你掌握以下知识:

掌握——分支switch、循环for、while语句
掌握——函数(传参,声明,创建)
掌握——数组(创建,传参)

阅读文章须知

此代码在VS2019软件中编写 (Visual Studio 2019)
文章顺序

1.先说整体思路
2.写出部分代码
3.解析上述代码
布局
    1.打印菜单
    2.接收变量
    3.打印雷区
    4.接收坐标
    5.判断雷区周围包括坐标本身在内的 9个坐标内有几个雷
    6.  *为显示可排查区域
    7.  1为雷
    8.踩到雷结束游戏
    9.全部排查则游戏胜利
    
    ************************
    *******  1.play  *******
    *******  0.exly  *******
    ************************
    请选择输入开始游戏:> 1
    共有30个雷
    0 1 2 3 4 5 6 7 8 9
    1 * * * * * * * * *
    2 * * * * * * * * *
    3 * * * * * * * * *
    4 * * * * * * * * *
    5 * * * * * * * * *
    6 * * * * * * * * *
    7 * * * * * * * * *
    8 * * * * * * * * *
    9 * * * * * * * * *
    
    //作弊 看到雷的布局
    0 1 2 3 4 5 6 7 8 9
    1 0 0 1 1 1 0 0 1 0
    2 1 0 0 1 1 0 0 0 1
    3 0 0 0 1 1 0 0 1 0
    4 1 1 0 1 1 0 0 0 0
    5 0 0 1 1 0 1 1 1 1
    6 0 0 0 1 0 0 0 0 0
    7 1 1 0 1 0 0 1 0 0
    8 0 0 0 0 0 0 0 0 0
    9 0 0 1 1 1 0 0 0 1
    
    请输入坐标:5 5
    0 1 2 3 4 5 6 7 8 9
    1 * * * * * * * * *
    2 * * * * * * * * *
    3 * * * * * * * * *
    4 * * * * * * * * *
    5 * * * * 5 * * * *    显示周围雷的数量
    6 * * * * * * * * *
    7 * * * * * * * * *
    8 * * * * * * * * *
    9 * * * * * * * * *
游戏分为——两部分
  • 开始游戏
  • 结束游戏
开始游戏分为——四部分
  • 创建雷区
  • 初始化并打印
  • 生成雷
  • 排查雷
简单看一下整体布局 不至于从一开始就劝退初学者
全文共217行代码 整体代码在文章最后

下面跟随我的思路一起完成扫雷游戏吧!

首先创建三个文件

.c 文件是C语言文件
.h 文件是头文件

  • test.c :写主程序的.c文件
  • game.c : 写游戏主要代码的.c文件
  • game.h :引用 头文件 和 声明的.h头文件
在test.c文件中

创建main函数主体
主要思路是:

  • 先打印菜单: 1开始 / 0结束
  • 选择并开始游戏

如在手机中观看 可左右滑动查看查处部分代码

    void emnu()
    {
   
    	printf("************************\n");
    	printf("*******  1.play  *******\n");
    	printf("*******  0.exly  *******\n");
    	printf("************************\n");
    
    }
    int main()
    {
   
    	int input = 0;
    	srand((unsigned int)time(NULL)); //后面创建随机数的函数
    	do {
   
    		//打印菜单
    		emnu();
    		printf("请选择输入开始游戏:> ");
    		scanf("%d", &input);
    		switch (input)
    		{
   
    		case 1:
    			game();
    			//printf("游戏开始\n");
    			break;
    		case 0:
    			printf("游戏结束\n");
    			break;
    		default:
    			printf("输入错误,请重新选择!\n");
    			break;
    		}
    
    	} while (input);
    	return 0;
    }

srand((unsigned int)time(NULL)); 对于这句话后面会讲到

  • 上述代码分为 ——— 三部分

    1.打印菜单
    2.接收字符
    3.判断状态

    为了一打开程序就进入游戏状态
    所以用了 do{}while{} 循环

1.打印菜单调用 emnu()函数

        void emnu()
        {
   
        	printf("************************\n");
        	printf("*******  1.play  *******\n");
        	printf("*******  0.exly  *******\n");
        	printf("************************\n");
        }

2.接收字符

        我们在循环外部定义 
            int input = 0;  接收指令的变量
        
            scanf("%d",&input);  接收键盘输入的函数
                注意:
                    %d后面不要加空格 
                     & 符号不要忘记写

3.判断接收字符的状态

        switch(整形表达式) 
        {
   
            case 整形常量表达式:
                break; //跳出switch 去下面的while中判断是否继续循环
            case 0:
                break;
            default://相当于if语句中的else的作用
                    //当上面的语句都不满足时 执行此语句
                break;
        }while(input); //input为0时结束游戏
        
    输入1       继续游戏
    输入0       结束游戏
    输入错误    给出提示并从新输入
  • 当你想验证一下现在写的代码时
    • 可以在game.h中引入头文件
    • 并且在test.c中引入game.h头文件
    • 这样所有头文件都放在game.h中就可以了

    game.h

        #pragma once
        #include <stdio.h>
    
      在头文件中  第一行  写入#pragma once
      在其他文件中不管包含几次<stdio.h>都只拷贝一次
      是为了防止头文件重复 做无用功
    

    test.c

        #include "game.h"
    
经过上面的代码 可以在case 1: 中调用函数game()

ganme()分为——五部分

  • 1.创建雷区
  • 2.初始化
  • 3.打印初始化
  • 4.生成雷
  • 5.排查雷
1.创建雷区
  • 154
    点赞
  • 461
    收藏
    觉得还不错? 一键收藏
  • 93
    评论
评论 93
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值