当前位置: 首页 > news >正文

网站是什么程序做的如何做外贸网站的推广

网站是什么程序做的,如何做外贸网站的推广,网站建设有哪些基本流程,wordpress b站播放目录 一.思路 1.成果展示 2.思路 二.具体操作 1.创建"棋盘" 2.初始化雷 3.布置雷 4.打印 5.排除雷 三.代码实现 1.test.c文件 2.thunder.h文件 3.thunder.c文件 Hello,大家好,今天我们来实现扫雷游戏,希望这一篇博客能给带给大家一…

目录

     一.思路

     1.成果展示

     2.思路

     二.具体操作

     1.创建"棋盘"

     2.初始化雷

     3.布置雷

      4.打印

      5.排除雷

     三.代码实现

     1.test.c文件

     2.thunder.h文件

      3.thunder.c文件


       Hello,大家好,今天我们来实现扫雷游戏,希望这一篇博客能给带给大家一些收获。

     一.思路

     1.成果展示

       在真正开始讲解之前,我们先来看一下我的成果展示:

屏幕录制 2024-07-03 165322-CSDN直播

     2.思路

       我们先来讲解一下扫雷游戏的思路:这个思路就是和我们在完游戏时候的那个思路时一模一样的,就是排除雷,简单来说,就是我们给定一个位置,看这个位置是不是雷,如果我们不幸,选中的这个位置就刚好是一个雷的话,那么我们就被炸死了,反之如果这个位置不是雷的话,那么,相应的,我们就要统计一下这个位置旁边与这个位置相邻的位置中雷的个数。

     二.具体操作

     1.创建"棋盘"

       实际上就是创建框架,就是创建如下面所示的一个"棋盘"。

我们首先要创建一个如上图一样的类似于"棋盘"一样的框架,要制作这个框架其实是很简单的,就是建立一个二维数组就可以了,将数组中的所有的元素均设置成 ' * ' 就可以了。这里我们在创建框架的时候需要注意一件事情,就必须要创建两个一模一样的二维数组,大家不妨看一看我们上面的那个游戏思路,如果这个位置是雷,我们就"死了",反之,就要在这个位置上写上周围的所有位置的雷的数目总和。为了区分有雷和无雷,我们将有雷的位置赋值1,无雷的位置赋值为0,那么,这样的话,我们在玩游戏的过程中出现了1的话,我们是无法知道这个位置是雷还是说这个位置不是雷,周围总共有1个雷?如果我们只是使用一个二维数组的话,是无法明白这个出现的1的含义的,会让我们产生歧义。因此,我们在这里要使用两个一模一样的数组来实现,我们呈现在屏幕上面的"棋盘"样式就是上面的那幅图所示,由于 ' * ' 符号属于字符,因此,我们要建立一个字符数组,但是如果按照我们上面所说的那样的话,一个数组是int类型,另一个数组是char类型,这样写的话有一点点麻烦,为了统一,我们这里将两个数组均写成是char类型的。

     2.初始化雷

       通过上面的思路我们可知我们建立了两个char类型的数组,我们接下来就要进行初始化操作了,在进行初始化操作之前,我们首先要知道创建的两个数组是干什么的,一个数组是用来布置雷的,我们为了方便,将雷使用字符 ' 1 ' 来表示,不是雷的位置使用字符 ' 0 ' 来表示,这个数组我们不可以展示出来(因为这个数组中存放的是雷的分布情况),另一个数组就是我们要展示出来的数组,是用来显示我们要查的这个位置又没有雷的存在。

我们将不展示出来的这个数组命名为mine数组,如下图所示:

mine数组我们在进行初始化的时候,将这个数组中的所有的元素全部初始化为字符 ' 0 ' (通过我们上面的解释我们可知 ' 0 ' 代表的是要排查的这个位置没有雷)。

我们将展示出来的这个数组命名为show数组,如下图所示:

show数组我们在进行初始化的时候,将这个数组中的所有元素全部初始化为 ' * ' ,我们这个数组是作为展示的一个数组,因此,我们不能暴露里面的雷的放置情况。

     3.布置雷

       我们的雷的布置这一操作是在mine数组中进行的,我们的"棋盘"是采用的是 9 * 9实现的,我们这里在布置是只布置10个雷就i可以了,我们是要在这个"棋盘"中去进行雷的布置的,因此,不能超过这个"棋盘"的范围,这里我们要使用一个函数,就是 rand( ) 函数,下面是关于这个函数的链接,大家可以去了解一下,这个函数可以随机生成一个随机数,

rand - C++ Referenceicon-default.png?t=N7T8https://legacy.cplusplus.com/reference/cstdlib/rand/?kw=rand我们可以通过这个函数来确定雷的位置,使用这个函数我们就可以得到两个值x,y作为坐标来确定一个地址(这个地址必须在mine函数的范围之内),将这个地址赋值为字符 ' 1 ' ,利用循环,创建10个雷。

      4.打印

        我们在进行打印这一操作的时候,就是将mine数组和show数组中的各个元素均打印到屏幕上即可,这里使用for循环,(最后有代码)。

      5.排除雷

        前面的几步都是我们的准备操作,这一步才是我们玩游戏的步骤,我们给定一个坐标位置,去判断这个位置是否有雷(判断这一步操作是在mine数组中判断的(雷的分布是在mine数组中的)),若mine数组中这个位置是字符 ' 1 ' 的话,就说明我们碰到雷了,反之,若mine数组中这个位置是字符 ' 0 ' 的话,我们就要去统计一下这个位置周围的位置的雷的个数,然后将这个个数转化为字符赋值给show数组中的这个相同的位置,为了方便观看,我们这里将show数组在打印到屏幕上就可以了,这里还要有一个结束条件,就是我们将所有的雷全部都排完之后,我们就扫雷成功了,因此,我们还要定义一个变量来表示我们找到的非雷位置的个数,用这个变量来表示雷有没有被扫完。

     三.代码实现

     1.test.c文件

#include"thunder.h"
void menu()
{printf("********************\n");printf("****   1.play   ****\n");printf("****   0.exit   ****\n");printf("********************\n");
}
void game()
{char mine[COWS][COLS] = { 0 };char show[COWS][COLS] = { 0 };// 初始化雷Initebroad(mine, COWS, COLS, '0');Initebroad(show, COWS, COLS, '*');// 布置雷Setmine(mine, COW, COL);// 打印Displaydroad(mine, COW, COL);Displaydroad(show, COW, COL);// 排除雷Findmine(mine, show, COW, COL);
}
void test()
{int input = 0;srand((unsigned int)time(NULL));do{menu();printf("请选择:");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("游戏结束,退出游戏\n");break;default:printf("输入错误,请重新输入\n");}} while (input);
}
int main()
{test();return 0;
}

     2.thunder.h文件

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#define COW 9
#define COL 9
#define COWS COW+2
#define COLS COL+2
#define mount 10
void Initebroad(char arr[COWS][COLS], int cows, int cols, char set);
void Setmine(char arr[COWS][COLS], int cow, int col);
void Displaydroad(char arr[COWS][COLS], int cows, int cols);
void Findmine(char mine[COWS][COLS], char show[COWS][COLS], int cow, int col);

      3.thunder.c文件

#include"thunder.h"
void Initebroad(char arr[COWS][COLS], int cows, int cols, char set)
{for (int i = 0; i < cows; i++){for (int j = 0; j < cols; j++){arr[i][j] = set;}}
}
void Setmine(char arr[COWS][COLS], int cow, int col)
{int count = mount;while (count > 0){int x = rand() % cow + 1;int y = rand() % col + 1;if (arr[x][y] == '0'){arr[x][y] = '1';count--;}}
}
void Displaydroad(char arr[COWS][COLS], int cow, int col)
{ printf("------开始游戏-----\n");for (int i = 0; i <= col; i++) {printf("%d ",i);}printf("\n");for (int i = 1; i <= cow; i++){printf("%d ",i);for (int j = 1; j <= col; j++){printf("%c ", arr[i][j]);}printf("\n");}
}
//static这个关键字可以保证这个函数只能在当前.c文件中使用,其他的文件使用不了。
static int Getminecount(char arr[COWS][COLS], int x, int y)
{int count = 0;for (int i = x - 1; i <= x + 1; i++){for (int j = y - 1; j <= y + 1; j++){count += arr[i][j] - '0';}}return count;
}
void Findmine(char mine[COWS][COLS], char show[COWS][COLS], int cow, int col)
{int x = 0, y = 0;int win = 0;while (win < cow * col - mount)//确保雷全部被排完。{   printf("请输入要排查的坐标位置\n");scanf("%d %d", &x, &y);if (x >= 1 && x <= cow && y >= 1 && y <= col){if (show[x][y] == '*'){if (mine[x][y] == '1'){printf("很遗憾,您被炸死了\n");Displaydroad(show, COW, COL);break;}else{// 当程序进行到这里时,就说明要排查的当前位置不是雷,那么,就要统计周围一圈的雷的个数。int count = Getminecount(mine, x, y);show[x][y] = count + '0';Displaydroad(show, COW, COL);win++;}}else{printf("这个位置您已经排查过了,请另排查一个\n");}}else{printf("输入的坐标不存在,请重新输入\n");}}if (win == cow * col - mount){printf("恭喜您,排雷成功\n");Displaydroad(mine, COW, COL);}
}

       OK,以上就是我们对于扫雷游戏的全部讲解了,希望能对大家有所收获,感谢大家的支持。 

http://www.zhongyajixie.com/news/23869.html

相关文章:

  • 政府门户网站改版方案开发一个app需要多少钱
  • 网站建设 图片上传网络营销课程个人感悟
  • 武汉网站建设排行网络推广都有哪些方式
  • 网站建站大约多少钱公司做网络推广哪个网站好
  • 编写app讯展网站优化推广
  • 福州疫情最新消息哈尔滨seo关键词排名
  • 没学过计算机开始学做网站广州百度推广客服电话
  • 大连网站建设找简维科技如何优化seo关键词
  • 做盗版电影网站犯法吗舆情监测分析系统
  • 做网站必须要电脑吗微信引流推广精准粉
  • 淮安建设局网站域名地址查询
  • 购物网站开发的描述外链是什么意思
  • 做阿里巴巴企业网站seo网站监测
  • 河南建设安全协会网站百度推广网站一年多少钱
  • 深圳官网网站建设怎么做个网站
  • 手机建网站步骤软件武汉搜索排名提升
  • 启航网站管理系统口碑营销成功案例简短
  • 网站建设明细价单百度seo优化软件
  • 莆田网站制作app推广拉新一手渠道
  • 网站地图怎么做一键导航查询网站域名
  • 南京做中英文网站设计徐州网站关键词排名
  • 福州网站建设服务价格最实惠飓风seo刷排名软件
  • 网站建设公司广告搜索排名查询
  • 做微商哪个网站比较好东莞seo建站
  • 做网站go和php用哪个好重庆网络推广平台
  • 做私服网站租给发布站百度学术官网入口网页版
  • 建网站后如何运营百度拍照搜索
  • 广州天河建站公司自助建站工具
  • 天河网站建设价格杭州百度百家号seo优化排名
  • 网站制作布局百度推广一般要多少钱