摘要:声明初始化打印棋盘布置雷扫雷游戏实现初始化棋盘打印棋盘布置雷判断坐标周围雷的数量玩扫雷请输入坐标很不幸,你被炸死了输入坐标非法,请重新输入恭喜你,扫雷成功主程序具体实现步骤创建数组初始化棋盘打印棋盘布置雷扫雷创建一个菜单
//声明
#define _CRT_SECURE_NO_WARNINGS 1
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define set_count 10
#include
#include
#include
void Initboard(char mine[ROWS][COLS],int rows,int cols,char set);//初始化
void Displayboard(char mine[ROWS][COLS],int row,int col);//打印棋盘
void setboard(char mine[ROWS][COLS],int row,int col);//布置雷
void playmineboard(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col);//扫雷
//游戏实现
#include"game.h"
初始化棋盘
void Initboard(char mine[ROWS][COLS],int rows,int cols,char set) { int i=0; int j=0; for(i=0;i<rows;i++) { for(j=0;j<cols;j++) { mine[i][j]=set; } } }
打印棋盘
void Displayboard(char mine[ROWS][COLS],int row,int col) { int i=0; int j=0; 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 ",mine[i][j]); } printf("/n"); } }
布置雷
void setboard(char mine[ROWS][COLS],int row,int col) { int x=0; int y=0; int count=set_count; while(count) { x=rand()%row+1; y=rand()%col+1; if(mine[x][y]==0) { { mine[x][y]=1; count--; } } } }
判断坐标周围雷的数量
int set_mine_count(char mine[ROWS][COLS],int x,int y) { return mine[x][y-1]+ mine[x-1][y-1]+ mine[x-1][y]+ 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 playmineboard(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col) { int rmp=row*col-set_count; int x=0; int y=0; int count=0; while(1) { printf("请输入坐标>:"); scanf("%d%d",&x,&y); if(x>0&&x<=row&&y>0&&y<=col) { if(mine[x][y]==0) { int count=set_mine_count(mine,x,y); show[x][y]=count+0;
Displayboard(show,ROW,COL); } else { printf("很不幸,你被炸死了/n"); Displayboard(mine,ROW,COL); break; } } else { printf("输入坐标非法,请重新输入/n"); } if(count==rmp) { printf("恭喜你,扫雷成功/n"); break; } } }
//主程序
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
具体实现步骤
void game() { char mine[ROWS][COLS]={0};//创建数组 char show[ROWS][COLS]={0}; Initboard(mine,ROWS,COLS,0);//初始化棋盘 Initboard(show,ROWS,COLS,*); //Displayboard(mine,ROW,COL);//打印棋盘 Displayboard(show,ROW,COL); setboard(mine,ROW,COL);//布置雷 //Displayboard(mine,ROW,COL); playmineboard(mine,show,ROW,COL);//扫雷 }
创建一个菜单
void menu() { printf("*********************************************/n"); printf("*********** 1. play ***************/n"); printf("*********** 0. exlt ***************/n"); printf("*********************************************/n"); }
主程序
void test() { int input=0; do { menu(); printf("请输入/n"); scanf("%d",&input); switch(input) { case 1: { game(); break; } case 0: { printf("退出游戏/n"); break; } default : { printf("输入数字不合法,请重新输入/n"); break; } } }while(input); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/125773.html
...呈现) test.c代码 game.h代码 game.c代码 1、需求分析 通过C语言实现简单的扫雷小游戏,由于创作者水平有限,未在该游戏中实现图形化界面,同时在真正扫雷游戏中点一个位置成功扫雷多个坐标的功能也未实现,功能较为简单,...
新人小白的第一篇博客,有什么不好之处望多提意见。 这个扫雷小游戏主要是基于二维数组,循环与基本的函数知识等。 本人用的vs2017,在开始上代码之前还是...
...o 时间: 2021-11-10 网站地址:[]:https://github.com/sxfinn 摘要 C语言实现我们小时候玩过的扫雷游戏,最近看到了一些扫雷游戏的简单实现,但是总有功能上的缺失,玩起来不那么的“原汁原味”,因此我增加了一些新功能: 确保玩...
...小游戏便成为了不少人童年的回忆。 今天就让我们就用C语言来实现简易版的扫雷小游戏吧! 游戏实现 我们实现的思路如下: 1.程序开始时打印菜单,让玩家选择开始游戏还是退出游戏 2.玩家选择游戏后进入游戏 3.判断输赢后...
...若对三子棋有兴趣可移步我的另一篇博客。(14条消息) 《C语言入门》三子棋C语言实现(详细版)_m0_60756071的博客-CSDN博客) 我们将雷盘初始化为统一的符号。 下面是部分代码: #define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2 voi...
阅读 103·2023-04-25 19:43
阅读 3119·2021-11-30 14:52
阅读 3065·2021-11-30 14:52
阅读 2996·2021-11-30 14:49
阅读 2935·2021-11-30 14:49
阅读 3101·2021-11-29 11:00
阅读 3159·2021-11-29 11:00
阅读 3126·2021-11-29 11:00