当前位置: 首页 > 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.w-s-a.com/news/676814/

相关文章:

  • 404错误直接转向到网站首页四川省建筑施工企业人员考试平台
  • 手表电商网站智能展厅
  • 南海网站推广梅州做网站公司
  • 昆明专业网站建设公司成都外贸网站建设费用
  • php mysql网站开发项目公司网站宣传设计
  • 自己做网站服务器的备案方法怎么查网站点击量
  • 信息产业部icp备案中心网站织梦做双语网站
  • 爱站网站长seo综合查询工具局网站信息内容建设 自查报告
  • 我想建一个网站怎么建淄博网站推广那家好
  • 做网站和app需要多久河南自助建站建设代理
  • 大连做企业网站的公司宣传平台有哪些类型
  • 如何用微信做网站免费设计logo网站有哪些
  • 服务平台型网站余姚网站定制
  • 网站搭建联系方式太平阳电脑网网站模板
  • 请简述网站制作流程html5网络公司网站模板
  • 海尔集团企业网站建设分析重庆市建设银行网站
  • 介绍公司的网站有哪些广西壮族自治区
  • 网站做rss wordpress9 1短视频安装软件
  • 网站建设价格西安室内设计网站排行榜前十名知乎
  • 用nas建设服务器网站用vs做音乐网站
  • 天津市武清区住房建设网站网站自适应框架
  • 制作移动网站公司网站开发职业规划
  • 网站头部怎样做有气势wordpress 页面 锚
  • 秦皇岛网站建设系统推荐个人网站免费制作
  • 我做夫人那些年网站登录wordpress 扫码付费
  • 网站关键词代码怎么做公司 网站建设
  • 哈尔滨多语言网站建设wordpress分类链接
  • 购物网站项目介绍软件开发流程的五大步骤
  • 做的网站怎么放在网上2008 iis搭建网站
  • 网站维护服务公司上海兼职网站制作