如何使用C语言代码实现扫雷游戏
如何使用C语言代码实现扫雷游戏
本篇内容主要讲解“如何使用C语言代码实现扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用C语言代码实现扫雷游戏”吧!
概述
扫雷是一款大众类的益智小游戏。游戏目标是根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。
实现过程
1、创建一个用户交互菜单
2、布雷函数
3、显示扫雷矩阵
4、玩家自定义坐标
5、计算排雷数
多文件实现
头文件 clear_mine.h
#pragmaonce//防止头文件被重复包含#define_CRT_SECURE_NO_WARNINGS1//实现scanf编译通过#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineROW8#defineCOL8#defineSTYLE'?'//初始化#defineNUM20//埋雷数externvoidGame();
源文件main.c
向玩家展示菜单栏
#include"clear_mine.h"staticvoidMenu()//用户交互菜单{printf("########################\n");printf("#1.Play0.Exit#\n");printf("########################\n");}intmain(){intquit=0;intselect=0;while(!quit){Menu();printf("PleaseEnter#");scanf("%d",&select);switch(select){case1:Game();break;case0:quit=1;break;default:printf("PositionError,TryAgain!\n");break;}}printf("byebye!\n");system("pause");return0;}
源文件clear_mine.c
#include"clear_mine.h"staticvoidSetMines(charboard[][COL],introw,intcol)//布雷{intcount=NUM;while(count){intx=rand()%(row-2)+1;inty=rand()%(col-2)+1;//随机数生成矩阵长宽分别-2的随机数if(board[x][y]=='0')//非法判断只能同一个位置生成一个随机数{board[x][y]='1';count--;}}}staticvoidShowLine(intcol){for(inti=0;i<=(col-2);i++){printf("----");}printf("\n");}staticvoidShowBoard(charboard[][COL],introw,intcol)//显示扫雷矩阵{printf("");for(inti=1;i<=(col-2);i++)//表头数字打印{printf("%d",i);}printf("\n");ShowLine(col);for(inti=1;i<=(row-2);i++){printf("%-3d|",i);for(intj=1;j<=(col-2);j++){printf("%c|",board[i][j]);}printf("\n");ShowLine(col);}}staticcharCountMines(charboard[][COL],intx,inty)//计算某点周围8个位置雷总数{returnboard[x-1][y-1]+board[x-1][y]+board[x-1][y+1]+\board[x][y+1]+board[x+1][y+1]+board[x+1][y]+\board[x+1][y-1]+board[x][y-1]-7*'0';}voidGame(){srand((unsignedlong)time(NULL));//生成随机数种子charshow_board[ROW][COL];charmine_board[ROW][COL];memset(show_board,STYLE,sizeof(show_board));//生成用户显示矩阵memset(mine_board,'0',sizeof(mine_board));//生成扫雷矩阵SetMines(mine_board,ROW,COL);//布雷intcount=(ROW-2)*(COL-2)-NUM;//排雷while(count){system("cls");//清屏ShowBoard(show_board,ROW,COL);printf("PleaseEnterYourPosition<x,y>#");intx=0;inty=0;scanf("%d%d",&x,&y);if(x<1||x>10||y<1||y>10)//非法性判断{printf("PostionError!\n");continue;}if(show_board[x][y]!=STYLE){printf("PostionIsnot*\n");continue;}if(mine_board[x][y]=='1'){printf("gameover!\n");ShowBoard(mine_board,ROW,COL);break;}show_board[x][y]=CountMines(mine_board,x,y);count--;}}
初始化好的扫雷矩阵
游戏体验结果
到此,相信大家对“如何使用C语言代码实现扫雷游戏”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!