[C语言]c语言实现扫雷游戏

目录

前言

一、思路

二、代码

1.saolei.h代码:

2.saoleitest.c

3.saolei.c

总结



前言

扫雷是一个很有趣的小游戏,下面我将用c语言来实现扫雷游戏的编写


提示:以下是本篇文章正文内容,下面案例可供参考

一、思路

分三个文件来写:

saoleitest.c:写游戏的基本框架

saolei.c:写游戏需要的各种函数

saolei.h:写游戏所需要的头文件、函数声明、符号定义

游戏思路:

1.初始化棋盘:
布置雷mine---雷:'1'
        不是雷 '0',开始时全部初始化为'0' 
显示结果show:---一开始全部初始化为'*' 
打印棋盘 

2.布置雷
电脑随机生成坐标,然后把雷放在这些坐标里。 

3.排雷
首先输入一个坐标
(1)是雷:很遗憾,你被炸死了---游戏结束
(2)不是雷:找出周围八个格子有几个雷,然后游戏继续 
  (3)最后排查出所有的雷,游戏结束。 
 

二、代码

1.saolei.h代码:

//头文件 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//定义符号常量
#define ROW 9
#define COL 9
#define EASYLEI 78
//因为要排查所选坐标的周围八个格,为了使边上的格子排查不越界,所以上下左右各加一行格子 
#define ROWS ROW+2
#define COLS COL+2

//函数名:
void menu(); //打印菜单函数 
void chuboard(char board[ROWS][COLS],char ret);//棋盘初始化函数
void displayboard(char board[ROWS][COLS],int row,int col);//打印棋盘函数 
void setboard(char board[ROWS][COLS],int row,int col);//布置雷的函数 
void shaiboard(char board1[ROWS][COLS],int row,int col,char board2[ROWS][COLS]);//排查雷的函数

2.saoleitest.c

代码如下:

#include "saolei.h"
game(){
    char mine[ROWS][COLS]={0};//布置雷的棋盘 
    char show[ROWS][COLS]={0};//显示排查结果的棋盘 
    //初始化棋盘
    chuboard(mine,'0');
    chuboard(show,'*');
    //打印棋盘
    //displayboard(mine,ROW,COL);
    displayboard(show,ROW,COL); 
    //布置雷
    setboard(mine,ROW,COL); 
    displayboard(mine,ROW,COL);
    //排雷
    shaiboard(mine,ROW,COL,show); 
    
     
    
}
int main(){
    char mine[ROWS][COLS]={0};//布置雷的棋盘 
    char show[ROWS][COLS]={0};//显示排查结果的棋盘 
    int input=0;
    srand((unsigned int)time(NULL));
    //游戏开场菜单设置: 
    do{
       menu();
       printf("请输入0或1\n");
       scanf("%d",&input);
       switch(input){
           case 1:game(); 
                  break;
           case 0:printf("退出游戏\n");
                  break;
           default:printf("输入错误,请重新输入\n");
                  break;
       }
    }while(input);
    return 0;
}

3.saolei.c

#include "saolei.h"
//打印菜单 
void menu(){
    printf("1.play\n");
    printf("0.exit\n");
}


//棋牌初始化 
void chuboard(char board[ROWS][COLS],char ret){
    int i=0;
    int j=0;
    for(i=0;i<ROWS;++i){
        for(j=0;j<COLS;++j){
            board[i][j]=ret;
        }
    }
}


//打印棋盘 
void displayboard(char board[ROWS][COLS],int row,int col){
    int i=0;
    int j=0;
    printf("                    \n");
    printf("-----扫雷游戏-----\n"); 
    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");
    }
    printf("-----扫雷游戏-----\n");
  }

//布置雷的函数
void setboard(char board[ROWS][COLS],int row,int col){
    int count=EASYLEI; 
    int x=0;
    int y=0;
    while(count){
    x=rand()%row+1;
    y=rand()%col+1;
    if(board[x][y]=='0'){
    board[x][y]='1';
    count--;}
      }
    

//排雷的函数 
void shaiboard(char board1[ROWS][COLS],int row,int col,char board2[ROWS][COLS]){
    int x=0;
    int y=0;
    int spare=row*col-EASYLEI; 
    while(spare){
        printf("请输入坐标:\n");
        scanf("%d%d",&x,&y);
        if(board1[x][y]=='1'){
            printf("很遗憾,你被炸死了,游戏结束\n");
            break;
        }
        else{
            board2[x][y]='0'+(board1[x-1][y-1]+board1[x-1][y]
            +board1[x-1][y+1]+board1[x][y-1]+board1[x][y+1]
            +board1[x+1][y-1]+board1[x+1][y]+board1[x+1][y+1]-8*'0');
            spare--;
            displayboard(board2,ROW,COL);  
        }
    } 
     if(spare==0){
      printf("恭喜你,扫雷完成!\n"); 
  }
}
     
 

总结

以上就是对c语言实现扫雷小游戏的代码~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值