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

c 网站开发框架有营销型网站的类型有哪些

c 网站开发框架有,营销型网站的类型有哪些,建设一个电商网站需要多少钱,那个外贸网站做的最好先开一个test.c文件用来游戏的逻辑测试,在分别开一个game.c文件和game.h头文件用来实现游戏的逻辑 主要步骤: 游戏规则: 输入1(0)开始(结束)游戏,输入一个坐标,如果该坐…

 

先开一个test.c文件用来游戏的逻辑测试,在分别开一个game.c文件和game.h头文件用来实现游戏的逻辑

主要步骤:

游戏规则:

输入1(0)开始(结束)游戏,输入一个坐标,如果该坐标不是雷则会显示该坐标周围有几个雷

打印菜单:

void menu()
{printf("**************************\n");printf("********* 1.play *********\n");printf("********* 0.exit *********\n");printf("**************************\n");
}
int main()
{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);return 0;
}

打印棋盘:

写两个数组一个是用来打印给玩家看的棋盘,一个是用来放置炸弹的隐藏棋盘,等到游戏结束我们才会打印这个棋盘。然后我们给数组初始化,用*来初始化我们给玩家看的棋盘,用字符‘0’初始化隐藏棋盘。

   char mine[ROWS][COLS] = { 0 };char show[ROWS][COLS] = { 0 };//初始化棋盘InitBoard(show, ROWS, COLS, '*');InitBoard(mine, ROWS, COLS, '0');//打印棋盘DisPalyBoard(show, ROW, COL);//DisPalyBoard(mine, ROW, COL);

打印行列:

因为我们是用坐标来选择排雷的,所以我们需要在棋盘的周围打印出行列才可以让玩家更好的去选择。

首先在打印棋盘for循环上方加上一个打印0~9的for循环就可以打印出棋盘的行了,然后用打印列的for循环套在打印棋盘的for循环上就可以打印出棋盘的列了。

​
void DisPalyBoard(char arr[ROWS][COLS], int row, int col)
{printf("------扫雷游戏------\n");​int i = 0;//打印行的for循环for (i = 0; i <= col; i++){printf("%d ", i);}printf("\n");//打印列的for循环for ( i = 1; i <= row; i++)  {printf("%d ", i);//打印棋盘的for循环for (int j = 1; j <= col; j++){printf("%c ", arr[i][j]);}printf("\n");}
}​

放置炸弹:

要想棋盘上随机分布十个炸弹(炸弹我们用字符‘1’定义),我们就需要生成随机数使数组的随机十个元素等于字符‘1’,而生成随机数就需要调用到前面我写猜数字游戏时讲过的rand函数、srand函数、time函数了。

void SetMine(char arr[ROWS][COLS], int row, int col)
{int count = EsayCount;while (count){int x = rand() % row + 1;int y = rand() % col + 1;if (arr[x][y] == '0')//防止生成相同随机数时,使多个炸弹放置在同一位置{arr[x][y] = '1';count--;}}
}

排查炸弹:

当我们输入一个坐标后如果时炸弹结束游戏,如果不是炸弹则需要显示炸弹的数量。

判断是否是炸弹只需写一个if语句判断该坐标中数组所对应的元素是否等于‘1’就行了。

显示周围有几个雷,我们就需要将所选坐标的周围的数加起来就可以了,这些加起来的数的和替换所选坐标的元素就可以了。

int GetMineCount(char mine[ROWS][COLS],int x,int y)
{return (mine[x - 1][y] + mine[x - 1][y - 1] + mine[x][y - 1] + mine[x + 1][y - 1]+ mine[x + 1][y + 1] + mine[x - 1][y + 1] + mine[x + 1][y] + mine[x][y + 1] - 8 * '0');
}

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int x = 0, y = 0;int win = 0;while (win < row*col - EsayCount){printf("请输入要排查的坐标:>");scanf("%d %d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col){if (mine[x][y] == '1'){printf("很遗憾,你被炸死了\n");DisPalyBoard(mine, ROW, COL);break;}else{//该坐标不是雷,就得统计该坐标的周围有几个雷int count = GetMineCount(mine, x, y);show[x][y] = count + '0';DisPalyBoard(show, ROW, COL);win++;}}else{printf("坐标非法,请重新输入\n");}}if (win == row * col - EsayCount){printf("恭喜你,排雷成功\n");DisPalyBoard(mine, ROW, COL);}
}

游戏可改性

因为在写这个程序时需要输入很多的数字,如果我们想修改这些数时就要一个一个改,这样非常的麻烦。为了避免这些麻烦我们只需要在头文件定义某字符等于某个数字就可以了,这样我们想改游戏参数的时候在头文件game.h改就行了。

#define ROW 9
#define COL 9#define ROWS ROW+2
#define COLS COL+2
#define EsayCount 10

比如当我们想改行和列改为16炸弹数量改为40的时候,我们只需要在头文件将ROW 与 COL定义为16就可以了。

#define ROW 16
#define COL 16#define ROWS ROW+2
#define COLS COL+2
#define EsayCount 40

 

完整代码

game.h头文件

#pragma once#include<stdio.h>
#include<stdlib.h>
#include<time.h>#define ROW 9
#define COL 9#define ROWS ROW+2
#define COLS COL+2
#define EsayCount 10
//初始化棋盘
void InitBoard(char arr[ROWS][COLS], int rows, int cols, char test);
//打印棋盘
void DisPalyBoard(char arr[ROW][COL], int row, int col);
//布置雷的信息
void SetMine(char arr[ROWS][COLS], int row, int col);
//排查雷
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);

test.c

#include"game.h"void menu()
{printf("**************************\n");printf("********* 1.play *********\n");printf("********* 0.exit *********\n");printf("**************************\n");
}void game()
{//存放布置好雷的信息char mine[ROWS][COLS] = { 0 };//存放排查出雷的信息char show[ROWS][COLS] = { 0 };//初始化棋盘InitBoard(show, ROWS, COLS, '*');InitBoard(mine, ROWS, COLS, '0');//打印棋盘DisPalyBoard(show, ROW, COL);//DisPalyBoard(mine, ROW, COL);//随机布置10个雷SetMine(mine, ROW, COL);//排查雷FindMine(mine,show, ROW, COL);
}int main()
{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);return 0;
}

game.c

#include"game.h"
void InitBoard(char arr[ROWS][COLS], int rows, int cols, char set)
{int i = 0;for (i = 0; i < rows; i++){for (int j = 0; j < cols; j++){arr[i][j] = set;}}
}
void DisPalyBoard(char arr[ROWS][COLS], int row, int col)
{printf("------扫雷游戏------\n");int i = 0;for (i = 0; i <= col; i++){printf("%d ", i);}printf("\n");for ( i = 1; i <= row; i++){printf("%d ", i);for (int j = 1; j <= col; j++){printf("%c ", arr[i][j]);}printf("\n");}
}void SetMine(char arr[ROWS][COLS], int row, int col)
{int count = EsayCount;while (count){int x = rand() % row + 1;int y = rand() % col + 1;if (arr[x][y] == '0'){arr[x][y] = '1';count--;}}
}int GetMineCount(char mine[ROWS][COLS],int x,int y)
{return (mine[x - 1][y] + mine[x - 1][y - 1] + mine[x][y - 1] + mine[x + 1][y - 1]+ mine[x + 1][y + 1] + mine[x - 1][y + 1] + mine[x + 1][y] + mine[x][y + 1] - 8 * '0');
}
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int x = 0, y = 0;int win = 0;while (win < row*col - EsayCount){printf("请输入要排查的坐标:>");scanf("%d %d", &y, &x);if (x >= 1 && x <= row && y >= 1 && y <= col){if (mine[x][y] == '1'){printf("很遗憾,你被炸死了\n");DisPalyBoard(mine, ROW, COL);break;}else{//该坐标不是雷,就得统计该坐标的周围有几个雷int count = GetMineCount(mine, x, y);show[x][y] = count + '0';DisPalyBoard(show, ROW, COL);win++;}}else{printf("坐标非法,请重新输入\n");}}if (win == row * col - EsayCount){printf("恭喜你,排雷成功\n");DisPalyBoard(mine, ROW, COL);}
}

效果图

游戏后续优化

2.如果排查位置不是雷,周围也没有雷,可以展开一片。

3.增加一个计时功能。

网页版扫雷

扫雷游戏网页版 - Minesweeper


文章转载自:
http://sincipital.wghp.cn
http://preconquest.wghp.cn
http://vesuvianite.wghp.cn
http://debussyan.wghp.cn
http://contemptible.wghp.cn
http://carillon.wghp.cn
http://hippo.wghp.cn
http://cower.wghp.cn
http://pussyfoot.wghp.cn
http://despair.wghp.cn
http://workability.wghp.cn
http://hazchem.wghp.cn
http://nouny.wghp.cn
http://subheading.wghp.cn
http://supervenient.wghp.cn
http://rhachis.wghp.cn
http://childlike.wghp.cn
http://jaunce.wghp.cn
http://cramp.wghp.cn
http://tigrish.wghp.cn
http://bibliothetic.wghp.cn
http://superzealot.wghp.cn
http://franchiser.wghp.cn
http://homefelt.wghp.cn
http://heimlich.wghp.cn
http://anchormanese.wghp.cn
http://jibba.wghp.cn
http://gardener.wghp.cn
http://chestnutting.wghp.cn
http://maintenance.wghp.cn
http://athrill.wghp.cn
http://vulnerate.wghp.cn
http://dichromism.wghp.cn
http://plunder.wghp.cn
http://bygone.wghp.cn
http://mollification.wghp.cn
http://cupid.wghp.cn
http://mdccclxxxviii.wghp.cn
http://substaintial.wghp.cn
http://java.wghp.cn
http://unespied.wghp.cn
http://mazopathy.wghp.cn
http://shelde.wghp.cn
http://tissular.wghp.cn
http://estimable.wghp.cn
http://getatable.wghp.cn
http://bailment.wghp.cn
http://strap.wghp.cn
http://butterfingers.wghp.cn
http://peeblesshire.wghp.cn
http://isosporous.wghp.cn
http://lkg.wghp.cn
http://descending.wghp.cn
http://unmarried.wghp.cn
http://anion.wghp.cn
http://diborane.wghp.cn
http://rowland.wghp.cn
http://podzolization.wghp.cn
http://regisseur.wghp.cn
http://mercilless.wghp.cn
http://sword.wghp.cn
http://inquiet.wghp.cn
http://fascism.wghp.cn
http://ameboid.wghp.cn
http://kaonic.wghp.cn
http://sarcophagic.wghp.cn
http://substitutional.wghp.cn
http://yellowcake.wghp.cn
http://prescore.wghp.cn
http://somewise.wghp.cn
http://phonemicise.wghp.cn
http://makeable.wghp.cn
http://carpale.wghp.cn
http://guinness.wghp.cn
http://nonproliferation.wghp.cn
http://bah.wghp.cn
http://victimology.wghp.cn
http://qr.wghp.cn
http://cryptogam.wghp.cn
http://heartburning.wghp.cn
http://toolholder.wghp.cn
http://pickaback.wghp.cn
http://porraceous.wghp.cn
http://separable.wghp.cn
http://barbasco.wghp.cn
http://cholic.wghp.cn
http://bedivere.wghp.cn
http://whereases.wghp.cn
http://mottlement.wghp.cn
http://nystagmus.wghp.cn
http://angularity.wghp.cn
http://fie.wghp.cn
http://personable.wghp.cn
http://gru.wghp.cn
http://zairese.wghp.cn
http://austenian.wghp.cn
http://ignoramus.wghp.cn
http://walkout.wghp.cn
http://bcc.wghp.cn
http://childe.wghp.cn
http://www.hrbkazy.com/news/82216.html

相关文章:

  • python怎么做专门的手机网站网站改进建议有哪些
  • mvc做网站用的多不多郑州网络营销推广
  • cn后缀做网站石家庄百度推广排名优化
  • 网站开发流程龙岩关键词规划师工具
  • 玉溪做网站推广链接点击器app
  • 厦门SEO_厦门网站建设品牌营销战略
  • 网站里怎么做301指向seo优化好做吗
  • 模板站怎么改成营销型网站网络营销渠道的功能
  • 浙江省院士专家工作站建设网站电话百度
  • 织梦网站后台怎么登陆店铺推广渠道有哪些
  • 领动建站google关键词优化排名
  • 单页产品销售网站如何做推广网络营销理论基础有哪些
  • 新余市建设局网站运营培训班有用吗
  • 免费域名注册网站哪个好最新百度快速排名技术
  • 网站空间到期怎么办搜索引擎大全网址
  • 有个做名片什么的网站百度推广开户流程
  • 自己怎么做短视频网站北京企业网络推广外包
  • 济南哪家做网站竞价推广外包
  • 贵阳做网站seo网页设计与制作代码成品
  • 前端如何优化seo网站建设推广优化
  • 福州市建设局网站my77728域名查询
  • 网站建设外包行业小程序开发哪家更靠谱
  • html5响应式设计公司网站模板整站html源码下载电脑软件推广平台
  • 电子商务网站规划与设计北京债务优化公司
  • 帝国cms 网站地图插件阿里云域名注册查询
  • wordpress 推荐环境seo深圳网络推广
  • 查个人工商营业执照重庆seo服务
  • 东营建设信息网老网站东莞网站到首页排名
  • 驾校网站模版一个域名大概能卖多少钱
  • 同一家公司可以做几个网站吗杭州网络优化公司排名