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

合肥建站中小企业网络营销案例

合肥建站,中小企业网络营销案例,自适应网站优点缺点,建筑网上接活平台前言 大家已经和博主学习有一段时间了#xff0c;今天讲一个有趣的实战项目——三子棋 目录 前言 制作菜单 构建游戏选择框架 实现游戏功能 模块化编程 初始化棋盘 打印棋盘 玩家下棋 电脑下棋 时间戳#xff1a;推荐一篇 C语言生成随机数的方法_c语言随机数_杯浅…前言 大家已经和博主学习有一段时间了今天讲一个有趣的实战项目——三子棋 目录 前言 制作菜单 构建游戏选择框架 实现游戏功能 模块化编程 初始化棋盘 打印棋盘 玩家下棋 电脑下棋 时间戳推荐一篇 C语言生成随机数的方法_c语言随机数_杯浅的博客-CSDN博客 判断输赢 游戏逻辑实现 制作菜单 在玩游戏时我们在进入游戏都会有菜单选项选择开始游戏推出游戏等这些指令说到选择那么我们可以依据我们所学的循环和分支语句来先完成基本框架的设计。 首先我们进入游戏都是先显示选项做出选择并且在玩游戏时玩一局还想玩怎么办想一想我们前边的知识哪种结构符合先进入游戏出现菜单再循环这一需求那肯定是do…while的循环结构更符合那么我们就先使用函数来打印输出一个菜单选项 void menu() {printf(*****************************\n);printf(*****************************\n);printf(**********1.play^************\n);printf(**********0.exit^************\n);//菜单printf(*****************************\n);printf(*****************************\n); }int main {int a 0;do{menu();printf(请选择);scanf%d,a;}while(); return 0; } 构建游戏选择框架 游戏菜单已在屏幕上显示完成现在需要完成选择并且在玩游戏时玩一局还想玩怎么办。 这时候需要应用博主之前阐述的switch语句来实现 int main() {int input 0;do{menu();printf(PLEASE SELECT:);scanf(%d, input);switch(input){case 1:game(); //以上为界面的选择break;case 0:printf(Exit\n);break;default:printf(ERRO,PLEASE CHOOSE AGAIN\n);break;}} while (input);//while循环可以利用0为假其余为来实现用户可反复选择 //直到选到合适为止return 0; } 实现游戏功能 模块化编程 这里博主引入一个概念模块化编程。方便引用不会显得头重脚轻而且转为静态库不易被盗用。这里需要创建三个文件test.c   game.c   game.h    test.c:是用来实现游戏逻辑    game.c:用来实现游戏功能的函数   game.h:用来申明游戏功能函数可引用 传统方式编程所有的函数均放在main.c里若使用的模块比较多则一个文件内会有很多的代码不利于代码的组织和管理而且很影响编程者的思路。 模块化编程把各个模块的代码放在不同的.c文件里在.h文件里提供外部可调用函数的声明其它.c文件想使用其中的代码时只需要#include XXX.h文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等。 传统方式编程所有的函数均放在main.c里若使用的模块比较多则一个文件内会有很多的代码不利于代码的组织和管理而且很影响编程者的思路。 模块化编程把各个模块的代码放在不同的.c文件里在.h文件里提供外部可调用函数的声明其它.c文件想使用其中的代码时只需要#include XXX.h文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等! 总的来说就是当你代码比较多的时候就可以采用模块化编程来完成这个程序。  三子棋我们需要在棋盘中输入要下的位置相当于是一个三乘三的数组这里我们就用到了二维数组的知识那么游戏开始前需要我们先对棋盘初始化使数组中的元素都为空格那么就是数组初始化赋值只用循环遍历每一个元素并赋予空格就ok了。 注意这里设置函数的时候因为用到二维数组所以函数的形参为数组名行 列 void initboard(char board[row][col], int hang, int lie) {int i 0;int j 0;for (i 0; i hang; i){for (j 0; j lie; j){board[i][j] ;} printf(\n);} } 打印棋盘 将置空的二维数组用线隔开 void displayboard(char board[row][col], int hang, int lie) //可以随意控制棋盘大小 {int i 0;for (i 0; i hang; i){int j 0;for (j 0; j lie; j){printf( %c ,board[i][j]);if (j lie - 1)//为了不让最后一行打印‘|’printf(|);}printf(\n);if (i hang - 1){int j 0;for (j 0; j lie; j){printf(---);if (j lie - 1)printf(|);}printf(\n);}} }效果图 玩家下棋 玩家下棋的话使用*标志利用坐标来将“空格”替换 void player(board[row][col],int hang,int lie) {int x 0;int y 0; printf(玩家开始下棋); scanf(%d %d,a,b); if(x1x3y1y3) { if(board[x-1][y-1] ){board[x-1][y-1]*;}else {printf(坐标已经被占用请重新选择);}else {printf(坐标非法请重新输入);}} }玩家下完棋需要有对立面也就是我们的电脑 电脑下棋 时间戳推荐一篇 C语言生成随机数的方法_c语言随机数_杯浅的博客-CSDN博客 void computer(char board[row][col], int hang, int lie) {printf(电脑下棋\n);int x 0;int y 0;while(1){ x rand() % hang;//0-2//模取余数不会超过这个数y rand() % lie;if (board[x][y] ){board[x][y] #;break;}} } 判断输赢 输赢情况分析行三连列三连对角线俩条。 char panduan(char board[row][col], int hang, int lie) {int i 0;for (i 0; i hang; i)//行{if(board[i][0]board[i][1]board[i][1]board[i][2] board[i][1] ! ){return board[i][1];//电脑和玩家都可以用这一个判断}}int j 0;for (j 0; j lie; j)//列 {if (board[0][j] board[1][j] board[1][j] board[2][j] board[1][j] ! ){return board[1][j];}}if (board[0][0] board[1][1] board[1][1] board[2][2] board[1][1] ! ){return board[1][1];}if (board[0][2] board[1][1] board[1][1] board[2][0] board[1][1] ! ){return board[1][1];}//平局if (isfull(board, hang, lie)){return q;//平局 else} return c; } 游戏逻辑实现 创建菜单函数选择 进入游戏 以及 退出游戏。 首先初始化 棋盘。 然后再打印棋盘。注意一定是要先进行 初始化 然后再 打印棋盘。 玩家下棋并打印出棋盘玩家输入行、列坐标方式进行落子x 玩家落子 判断玩家是否 赢判断是否 继续游戏。(字符c代表 继续游戏、字符q代表 游戏平局) 电脑进行落子下棋(随机位置进行落子o 电脑落子) 判断③种胜负方式分别是玩家赢、电脑赢、以及 平局。 然后再回到步骤①是否选择 进入游戏 以及 退出游戏。   void game() {int key 0;char board[row][col] { 0 }; //不直接写成数字利于改变棋盘大小//初始化棋盘的函数initboard(board,row,col);displayboard(board,row,col);while(1){player(board, row, col);keypanduan(board, row, col);if(key!c){break;}displayboard(board, row, col); computer(board, row, col);key panduan(board, row, col);if (key ! c){break;}displayboard(board, row, col);} if (key *){printf(玩家胜利\n);}else if(key#){printf(电脑胜利\n);}else if(keyp){printf(平局\n);} } 另外我们还需要将game.c以声明的形式放入game.h中 #pragma once #define _CRT_SECURE_NO_WARNINGS #include stdio.h #includewindows.h #includestdlib.h #includetime.h//这个全可以调用 #define row 3 #define col 3 //初始化棋盘 void initboard(char board[row][col], int hang, int lie); //打印棋盘 难点 void displayboard(char board[row][col], int hang, int lie); //玩家下棋 void player(char board[row][col], int hang, int lie); //电脑下棋 void computer(char board[row][col], int hang, int lie); //判断输赢 玩家赢 电脑赢 平 继续/ char panduan(char board[row][col], int hang, int lie); int isfull(char board[row][col], int hang, int lie); 之后利用test.c来实现游戏逻辑(在编辑的开始需要加上#includegame.h) 好了今天的文章到这里希望对大家有帮助!
http://www.ho-use.cn/article/10819785.html

相关文章:

  • 做外贸网站市场网页设计html代码大全python
  • 新建设电影院 网站锕锕锕锕锕锕锕好湿免费网址
  • 做网站素材在哪里找网站开发安卓开发
  • 网站语言版本质感设计网站
  • 怎么在网站做直播间电商网站建设策划
  • 某网站网站的设计与实现网站站点不安全
  • 网站开发一般用什么技术网站可以个人做吗
  • 个人网站建设详细教程住房和城乡建设厅证书查询网
  • 麻城网站建设外贸网站建设模版
  • dede淘宝客网站模板用什么网站推广
  • 比较好的网站开发框架wordpress对联
  • 宁波网站怎么建设代做效果图网站
  • WordPress网站子目录访问阆中市住房和城乡建设局网站
  • 网站如何添加js代码网站开发时遇不到算法
  • 成都网站建设推广好电子商务毕业设计网站
  • 网站建设 英文北京建站模板制作
  • 建立网站需要多少钱一个班级网站设计模板
  • php做网站需要数据库吗上海中小企业网站建设
  • 个人做电子商务网站备案想要推广版
  • 江西哪里有做电商网站的公司网站做文献格式
  • 彩票网站net网站开发网站建设的原则
  • 设计师网站上海自己想注册公司怎么搞
  • 平面电商网站建设开发公司网签过期
  • 知名的传媒行业网站开发wordpress登录界面修改
  • 中国建设教育网官网是什么网站wordpress字体代码
  • 深圳网站建设一尘互联seo是什么专业的课程
  • 江西网站建设价位wordpress 网站关键词设置
  • 高权重网站做员会来顶排名wordpress极简名片主题
  • php电子商务网站模板宁波网站建设大概要多少钱
  • 重庆建站公司费用设计网页的步骤是什么