C语言开发实战--C语言实现小游戏——扫雷
小职 2021-08-27 来源 : 阅读 688 评论 0

摘要:本篇主要介绍了C语言开发实战--C语言实现小游戏——扫雷,通过具体的内容展现,希望对大家C语言的学习有一定的帮助。

本篇主要介绍了C语言开发实战--C语言实现小游戏——扫雷,通过具体的内容展现,希望对大家C语言的学习有一定的帮助。

C语言开发实战--C语言实现小游戏——扫雷

C语言编写的有点粗糙,模拟的功能基本齐全,看见不足,还请赐教!


1.建立一个可以持续玩下去的框架


int main()

{

int input;

srand((unsigned)time(NULL));

do

{

printf("******** 1.paay   2.exit  **********\n");//菜单

scanf("%d", &input);

switch (input)

{

case 1:

game();

break;

case 0:

printf("游戏退出\n");

break;

default:

printf("选择错误,请选择!\n");

break;

}

} while (input);

return 0;

}

2.框架完成后就该填充内容,完成game函数!


        建立扫雷战场,初始化好

C语言开发实战--C语言实现小游戏——扫雷

C语言开发实战--C语言实现小游戏——扫雷


C语言开发实战--C语言实现小游戏——扫雷


        


         下面就是设置雷的位置,采用随机函数和下标结合的手法,

C语言开发实战--C语言实现小游戏——扫雷



        扫雷过程,一步一次判断;

C语言开发实战--C语言实现小游戏——扫雷

 


 源代码如下:


#include

#include

#include

#define ROW 9

#define COL 9

 

#define ROWS ROW+2

#define COLS COL+2

 

#define LEISHU 10

 

void Initboard(char qi[ROWS][COLS], int row, int col, char set)

{

for (int i = 0; i < row; i++)

{

for (int j = 0; j < col; j++)

{

qi[i][j] = set;

}

}

}

 

void printboard(char qi[ROWS][COLS], int row, int col)

{

for (int i = 0; i <= 9; i++)

printf("%d ", i);

printf("\n");

for (int i = 1; i <= row; i++)

{

printf("%d ", i);

for (int j = 1; j <= col; j++)

{

printf("%c ",qi[i][j]);

}

printf("\n");

}

}

 

void setboard(char qi[ROWS][COLS], int row, int col)

{

int count =LEISHU;

while (count)

{

//设置雷数组下标;

int x = rand() % row + 1;

int y = rand() % col + 1;

if (qi[x][y] != '1')

{

qi[x][y] = '1';

count--;

}

}

}

 

void findmine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)

{

int x, y;//数组行列坐标;

while (1)

{

printf("请输入坐标:");

scanf("%d %d", &x, &y);

if (mine[x][y] != '1')

{

//没有雷,打印show

int count = (mine[x - 1][y - 1] + mine[x - 1][y] + mine[x - 1][y + 1] +

mine[x][y - 1] + mine[x + 1][y + 1] + mine[x][y + 1] +

mine[x + 1][y - 1] + mine[x + 1][y] - 8 * '0');//除你在你输入坐标以外,周围8个含有地雷的个数

show[x][y] = count + '0';

printboard(show, ROW, COL);

}

else

{

printf("您被炸死了!\n");

break;

}

 

}

printboard(mine, ROW, COL);//不管输赢这局结束后把显示雷的数组打印出来

}

 

 

game()

{

char mine[ROWS][COLS] = { 0 };//摆放雷的数组

char show[ROWS][COLS] = { 0 };//排查雷的个数的数组

//初始化雷数组

Initboard(mine, ROWS, COLS, '0');//初始化为零

Initboard(show, ROWS, COLS, '*');//初始化为*

 

//设置雷

setboard(mine, ROW, COL);

printboard(show, ROW, COL);

//排查雷

findmine(mine, show,ROW, COL);

 

}

int main()

{

int input;

srand((unsigned)time(NULL));

do

{

printf("******** 1.paay   2.exit  **********\n");//菜单

scanf("%d", &input);

switch (input)

{

case 1:

game();

break;

case 0:

printf("游戏退出\n");

break;

default:

printf("选择错误,请选择!\n");

break;

}

} while (input);

return 0;

}


————————————————

我是小职,记得找我

✅ 解锁高薪工作

✅ 免费获取基础课程·答疑解惑·职业测评

C语言开发实战--C语言实现小游戏——扫雷

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程