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

wordpress+整站下载aspnet网站开发教程数据库

wordpress+整站下载,aspnet网站开发教程数据库,舟山网站制作公司,可以做微信游戏的网站本程序由团队中的一个人所写#xff0c;本人看懂并写下此文章 题目#xff1a;扫雷 3.1问题描述 扫雷游戏 [基本要求] #xff08;1#xff09;完成棋盘的初始化并在标准显示器中显示 #xff08;2#xff09;通过输入行列值确定用户输入 #xff08;3#xff09;游…本程序由团队中的一个人所写本人看懂并写下此文章 题目扫雷 3.1问题描述 扫雷游戏 [基本要求] 1完成棋盘的初始化并在标准显示器中显示 2通过输入行列值确定用户输入 3游戏进行给出提示信息 4给出游戏的测试程序。 3.2.算法设计与分析 3.2.1设计思路分析 首先定义一个二维数组的棋盘用伪随机数在棋盘上生成地雷。通过从键盘上输入坐标判断此位置是不是存在地雷存在则游戏结束不存在则展开棋盘。展开的周围显示出附近存在的地雷个数。依次类推直到找出所有地雷。 3.2.2设计程序流程图要求图文并茂 首先进入菜单选择开始游戏生成棋盘与地雷然后显示棋盘用户输入相应的位置坐标程序进行判断该位置是否为地雷是的话游戏结束不是的话则展开棋盘继续输入并统计地雷个数依次类推直到地雷数统计完则游戏结束。 3.2.3数据结构定义 #define COUNT 10 #define ROW 9 #define CLO 9 #define ROWS 11 #define CLOS 11 char arr[ROW][CLO] { 0 }; //显示棋盘 char arrs[ROWS][CLOS] { 0 }; //真正操作的棋盘3.2.4算法的时间复杂度分析 棋盘初始化模块的算法对定义好的二维数组元素进行定义时间复杂度为O(1)。 模拟棋盘初始化算法对定义好的二维数组元素进行定义时间复杂度为O(1)。 打印棋盘的算法通过依次遍历二维数组打印数据元素时间复杂度为O(n)。 地雷生成算法通过伪随机数在棋盘上生成地雷时间复杂度为O(n)。 判断是否为地雷算法通过数据匹配的方式进行判断时间复杂度为O(1)。 统计地雷个数的算法通过数据匹配的方式进行统计时间复杂度为O(n)。 棋盘展开算法每次输入坐标展开棋盘时间复杂度为O(1)。 3.3源程序清单带注释 Game.h #includestdio.h #includestring.h #includestdlib.h #includetime.h #define COUNT 10 #define ROW 9 #define CLO 9 #define ROWS 11 #define CLOS 11 void printbroad(char arr[ROW][CLO], int row, int clo); void arr_init(char arr[ROW][CLO], int row, int clo); void menu(); void arrs_randinit(char arrs[ROWS][CLOS], int row, int clo); //生成随机雷 void arrs_init(char arrs[ROWS][CLOS], int row, int clo); void print(char arrs[ROWS][CLOS], int row, int clo); void sweep(char arrs[ROWS][CLOS], char arr[ROW][CLO], int row, int clo); //扫雷 int is_thunder(char arrs[ROWS][CLOS], char arr[ROW][CLO], int row, int clo); int count(char arrs[ROWS][CLOS], int row, int clo); //计算周围雷的数目 void movefirst(char arrs[ROWS][CLOS], int row, int clo); void open(char arrs[ROWS][CLOS], char arr[ROW][CLO], int i, int j); Game.c #pragma warning(disable:4996) #includegame.h int num ROW*CLO - COUNT; void menu() {printf(****************************************\n);printf(*************** 1.play **************\n);printf(*************** 0.exit **************\n);printf(****************************************\n);} //打印扫雷棋盘 void printbroad(char arr[ROW][CLO], int row, int clo) {int i 0;int j 0;printf( );//打印扫雷棋盘的横坐标for (i 1; i row; i){printf(%d , i );}printf(\n);for (i 1; i row; i){printf(--);}printf(--);printf(\n);for (i 0; i row; i){//打印扫雷棋盘的纵坐标printf(%d| , i1);for (j 0; j clo; j){printf(%c , arr[i][j]);}printf(\n);}printf(\n); }void arr_init(char arr[ROW][CLO], int row, int clo) {//这个函数的功能是将该数组所有置*memset(arr[0][0], *, row*clo*sizeof(arr[0][0])); } void arrs_init(char arrs[ROWS][CLOS], int row, int clo) {memset(arrs[0][0], 0, row*clo*sizeof(arrs[0][0])); }//生成随机地雷1代表地雷0代表没有地雷 void arrs_randinit(char arrs[ROWS][CLOS], int row, int clo) {int count COUNT;int i 0;int j 0;do{//生成随机横纵坐标i rand() % 91; //生成1~9的横坐标j rand() % 91; //生成1~9的纵坐标if (arrs[i][j] ! 1) //如果此处有地雷则继续循环{arrs[i][j] 1;count--;}} while (count);} void print(char arrs[ROWS][CLOS], int row, int clo) {int i 0;int j 0;printf( );for (i 1; i row - 1; i){printf(%d , i);}printf(\n);for (i 1; i row - 1; i){printf(--);}printf(--);printf(\n);printf(1|);for (i 1; i row-1; i){printf( );for (j 1; j clo-1; j){printf(%c , arrs[i][j]);}printf(\n);if (i 9){continue;}printf(%d|, i1);}//int i 0;//int j 0;//printf( );打印扫雷棋盘的横坐标//for (i 1; i row-2; i)//{// printf(%d , i);//}//printf(\n);//for (i 1; i row-2; i)//{// printf(--);//}//printf(--);//printf(\n);//for (i 0; i row-2; i)//{// //打印扫雷棋盘的纵坐标// printf(%d| , i 1);// for (j 0; j clo-2; j)// {// printf(%c , arrs[i][j]);// }// printf(\n);//}//printf(\n); }int is_thunder(char arrs[ROWS][CLOS],char arr[ROW][CLO], int row, int clo) {if (arrs[row][clo] 1){return 0;}else{return 1;} }//计算周围一圈8个数有多少个地雷 int count(char arrs[ROWS][CLOS], int row, int clo) {int count 0;return ((arrs[row - 1][clo - 1] arrs[row - 1][clo] arrs[row - 1][clo 1] arrs[row][clo - 1] arrs[row][clo 1] arrs[row 1][clo - 1] arrs[row 1][clo] arrs[row 1][clo 1])-0*8);} //当玩家第一次就点到地雷时得把地雷移走 void movefirst(char arrs[ROWS][CLOS], int row, int clo) {int x 0;int y 0;while (1){x rand() % 9 1;y rand() % 9 1;if (arrs[x][y] ! 1){arrs[x][y] 1;break;}}arrs[row][clo] 0; }void sweep(char arrs[ROWS][CLOS], char arr[ROW][CLO], int row, int clo) {//判断是否为第一次扫雷的标志位int first 0;int x 0;int y 0;int flag 1;int ret 0;while (flag){printf(请输入坐标\n);scanf(%d%d, x, y);//如果是雷则返回0否则返回1ret is_thunder(arrs, arr, x, y);if (x 1 x 9 y 1 y 9){first;switch (ret){case 1:if (count(arrs, x, y) 0){open(arrs, arr, x - 1, y - 1);}else {arr[x - 1][y - 1] count(arrs, x, y) 0;num--;}printbroad(arr, ROW, CLO);//printf(\n%d\n, num);break;case 0://如果第一次就碰到了雷就将雷移走提升游戏体验if (first 1){movefirst(arrs, x, y);if (count(arrs, x, y) 0){open(arrs, arr, x - 1, y - 1);}else {arr[x-1][y-1] count(arrs, x, y) 0;num--;}printbroad(arr, ROW, CLO);break;}printf(你被炸掉了\nGAMEOVER!!!!!!!!\n);print(arrs, ROWS, CLOS);flag 0;break;}if (0 num){printf(游戏结束玩家赢\n);break;}}else{printf(输入错误请重新输入:\n);}} } int right(int i, int j) {if ( (i 1)1 (i 1)9 (j 1)1 (j 1) 9 ){return 1;}return 0; }void open(char arrs[ROWS][CLOS], char arr[ROW][CLO], int i, int j) {//如果当前位置没有地雷而且当前位置在棋盘上没有被显示则显示出周围一圈雷的数量if (arrs[i1][j1] 0 arr[i][j] *right(i,j)){arr[i][j] count(arrs, i1, j1) 0;num--;}//左一位置if (arrs[i 1][j] 0 arr[i][j - 1] *right(i, j-1)){arr[i][j-1] count(arrs, i1, j) 0;num--;if (count(arrs, i1, j) 0){open(arrs, arr, i, j-1);}}//右一位置if (arrs[i 1][j 2] 0 arr[i][j 1] *right(i, j1)){arr[i][j 1] count(arrs, i1, j 2) 0;num--;if (count(arrs, i1, j 2) 0){open(arrs, arr, i, j 1);}}//上一位置if (arrs[i][j 1] 0 arr[i - 1][j] *right(i-1, j)){arr[i - 1][j] count(arrs, i, j1) 0;num--;if (count(arrs, i, j1) 0){open(arrs, arr, i-1, j);}}//左上位置if (arrs[i][j] 0 arr[i - 1][j - 1] *right(i-1, j-1)){arr[i - 1][j - 1] count(arrs, i, j) 0;num--;if (count(arrs, i, j) 0){open(arrs, arr, i - 1, j - 1);}}//右上if (arrs[i][j 2] 0 arr[i - 1][j 1] *right(i-1, j1)){arr[i - 1][j 1] count(arrs, i, j 2) 0;num--;if (count(arrs, i, j 2) 0){open(arrs, arr, i-1, j 1);}}//右下if (arrs[i 2][j 2] 0 arr[i 1][j 1] *right(i1, j1)){arr[i 1][j 1] count(arrs, i 2, j 2) 0;num--;if (count(arrs, i 2, j 2) 0){open(arrs, arr, i 1, j 1);}}//下if (arrs[i 2][j 1] 0 arr[i 1][j] *right(i1, j)){arr[i 1][j] count(arrs, i 2, j1) 0;num--;if (count(arrs, i 2, j1) 0){open(arrs, arr, i 1, j);}}//左下if (arrs[i 2][j] 0 arr[i 1][j - 1] *right(i1, j-1)){arr[i 1][j - 1] count(arrs, i 2, j) 0;num--;if (count(arrs, i 2, j) 0){open(arrs, arr, i 1, j - 1);}} } Test.c #pragma warning(disable:4996) #includegame.h void playgame() {char arr[ROW][CLO] { 0 }; //显示棋盘char arrs[ROWS][CLOS] { 0 }; //真正操作的棋盘arr_init(arr, ROW, CLO);arrs_init(arrs, ROWS, CLOS);arrs_randinit(arrs, ROWS, CLOS);printbroad(arr, ROW, CLO);print(arrs, ROWS, CLOS);sweep(arrs, arr, ROW, CLO);} int main() {srand((unsigned int)time(NULL));int key 0;do{menu();scanf(%d, key);if (key 1)playgame();else if (key 0)printf(退出游戏\n);elseprintf(输入有误请重新输入:\n);} while (key);return 0; }3.4执行结果 生成棋盘与地雷 输入坐标进行判断 输入坐标进行判断 游戏结束 3.5存在问题分析 1没有实现插旗的功能。 2不能统计以往的游戏信息没有实现数据保存。 3没有排行榜功能。 4不能进行游戏难度的设定。 3.6结论 这次的扫雷程序代码量比较大一开始给我们小组造成了一些困难但经过我们的查找资料相互交流将这些困难一一克服其中的展开函数经过我们的不断调试终于将正确的参数确定。完成了这项代码我觉得我的代码能力提高了很多对问题的分析有了进一步的提升即使出现问题经过不断的调试耐心的对待最后总会成功的。在以后的学习中更要脚踏实地不怕困难。
http://wiki.neutronadmin.com/news/36128/

相关文章:

  • 汕头市企业网站建设品牌wordpress optiontree
  • 行业网站怎么做上海十大公司排名
  • wordpress建站的好处app网站平台建设方案
  • 济南找工作哪个网站好淮南寿县
  • 百度关键词挖掘工具爱站网营销型集团网站建设
  • 网站设计与建设书wordpress历史
  • 湛江网站建设模板定位工厂wordpress单栏
  • 美术馆网站建设要求微信平台链接wordpress
  • 自适应手机网站模板我想做网站
  • 上海专业建站公工程招标
  • 济南做网站优化的公司erp外贸管理系统
  • 网站优化包括哪些做全景图的网站
  • 网站规划建设实训报告个人网站有什么内容
  • 网站网页设计成全视频免费观看在线看 综合 笔记 视频
  • 团购网站功能模块做代理
  • 触动网站建设wordpress检测登录ip
  • 做单页网站需要做什么开店怎么做会员系统
  • 亚马逊国际站官网电子商务平台怎么赚钱
  • 网站建设参考文献外文做一件代发哪个网站好
  • 公司网站建设多少钱网站开发方面的文献
  • 购物网站建设多少钱c 可以做网站
  • 正规设计兼职网站有哪些360官方下载官网
  • 威海网站建设公司排名给排水管道水压试验方案久久建筑网
  • .net网站开发教程网站开发一般用什么软件有哪些
  • 360上做网站杭州app建设
  • 个人网站建设存在哪些问题网站建设中如何设置外链接
  • 基于cms的企业网站建设最专业的企业营销型网站建设价格
  • 做网站分几个步骤成都网站建设备案
  • 做网站模板和服务器是一样的吗邢台建网站的公司
  • 网站查询备案信息济南的网站制作公司