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

洛阳网站制作哪家好wordpress 标签小工具栏

洛阳网站制作哪家好,wordpress 标签小工具栏,请人开发网站多少钱,免费制作的企业网站目录 1.三子棋代码功能介绍 2.三子棋游戏实现步骤 ①打印菜单栏 ②判断是否进入三子棋游戏 ③三子棋游戏基本函数实现 #xff08;1#xff09;清空#xff08;初始化#xff09;棋盘函数实现 #xff08;2#xff09;打印棋盘函数实现 #xff08;3#xff0…目录 1.三子棋代码功能介绍 2.三子棋游戏实现步骤 ①打印菜单栏 ②判断是否进入三子棋游戏  ③三子棋游戏基本函数实现 1清空初始化棋盘函数实现 2打印棋盘函数实现 3玩家下棋函数实现  4电脑下棋函数实现 5判断输赢函数 6判断平局函数 ④整个游戏算法实现实现逻辑 3.三子棋游戏完整代码实现 ①game.h头文件 ②progress.c源文件 ③game.c源文件 4.结语 1.三子棋代码功能介绍 ①用坐标代替点位来下棋 ②与电脑进行对局 ③输赢的判断 2.三子棋游戏实现步骤 ①打印菜单栏 void menu()//打印三子棋菜单栏 {printf(*************************\n);printf(*******THREECHESS********\n);printf(#####1.PLAY 0.EXIT#####\n);printf(*************************\n);} ②判断是否进入三子棋游戏  通过scanf函数来获取用户输入 再使用switch语句来判断是否进入或退出三子棋游戏 void progress()//判断是否进入游戏 {int input 0;do{menu();printf(请输入:);scanf_s(%d, input);switch (input){case 1://如果用户输入1就进入游戏printf(进入游戏\n);game();//三子棋游戏实现函数printf(\n\n\n);//打印空行使得排版更好看break;case 0:printf(退出游戏\n);break;default://输入不为1或0的情况处理printf(输入错误\n);break;}}while (input);//如果input不为0则一直进入循环判断是否进入三子棋 } 如图所示 ③三子棋游戏基本函数实现 注首先要知道我们用二维字符数组char board[ROW][COL]来抽象实现三子棋 ROW,COL宏定义为3 colrol传给函数的内容也是3; 1清空初始化棋盘函数实现 初始化棋盘实际就是将二维数组的各个元素全都初始化为空格用嵌套for循环来实现 void InitBoard(char board[ROW][COL], int row, int col)//初始化棋盘这里ROW,COL是宏定义值是3 {int i 0;int j 0;for (i 0; i row; i)//用for循环来逐一初始化{for (j 0; j col; j){board[i][j] ;//初始化为空格}} } 2打印棋盘函数实现 类似于初始化棋盘函数打印棋盘函数也使用嵌套的for循环语句 并借用键盘上的字符‘|’和‘-’来分割棋盘形状 void DisPlayBoard(char board[ROW][COL], int row, int col)//打印棋盘ROW,COL宏定义为3col //rol传的内容也是3 {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j)//for循环来逐一打印{printf( %c ,board[i][j]);if (j col - 1){printf(|);//打印‘|’来分割每个格子} }if(i row - 1)printf(\n---|---|---\n);//一行打印完用横线分割下一行进行下一行的打印} } 运行结果如下 3玩家下棋函数实现  注玩家下棋用‘*’, 电脑下棋用‘#’ 要用if语句判断玩家输入的坐标是否在3*3棋盘内 还要用if语句判断玩家输入的坐标是否被占用是否已经下过 void PlayerMove(char board[ROW][COL], int row, int col)//玩家下棋 {int x 0;int y 0;printf(\n玩家下棋);//提示玩家下棋while (1)//如果输入坐标不正确就多次输入{printf(\n请输入坐标\n);scanf(%d%d, x, y);if (x 0 x row y 0 y col)//判断坐标是否在3*3棋盘内{if (board[x - 1][y - 1] )//判断该格子是否被占用{board[x - 1][y - 1] *;//没有占用就放字符‘*’作为玩家下过的标志break;//玩家已经下过一次后跳出循环进行下一轮}elseprintf(该坐标已被占用请重新输入.\n);//如果坐标被占用进行提示重新输入}elseprintf(坐标输入非法请重新输入.\n);//如果坐标非法提示重新输入} } 运行结果如下 4电脑下棋函数实现 注使用随机数生成函数rand来获得电脑要下的坐标 获得的随机数除以3取余数就可以获得大于等于0小于3的整数以此来作为电脑下棋的坐标 同时也要判断随机生成的坐标是否合法 如果坐标合法且未被占用就标记‘#’ void ComputerMove(char board[ROW][COL], int row, int col)//电脑下棋 {printf(\n电脑下棋\n);//提示电脑下棋int x 0;int y 0;while (1)//如果坐标非法就重新输入{x rand() % row;//使用随机数生成函数生成随机数并除以3得余数获得0~2的数y rand() % col;{if (board[x][y] )//判断该坐标在棋盘上是否被占用{board[x][y] #;//没被占用就标记‘#’break;} }} } 5判断输赢函数 注判断输赢函数多增加了一个参数tmp来传入玩家和电脑代表的字符一旦一列或一行或从左往右或从右往左的直线有三个相同的字符并且等于tmp的就返回字符tmp通过tmp就可以判断出玩家赢了还是电脑赢了 char IsWin(char board[ROW][COL], int row, int col, char tmp)//判断输赢返回字符 {int i 0;int j 0;int count 0;for (i 0; i ROW; i)//判断一是否有三个字符相同{int count 0;for (j 0; j COL; j){if (board[i][j] ! tmp)//有一个不同就break跳出本次循环break;elsecount;//有一个相同count就1if (count 3)//当count等于3时就代表一行中有三个相同return tmp;//当一行中有三个相同的字符时就代表该字符所对应的赢了返回该字符}}for (j 0; j COL; j)//同理判断一列中是否有三个字符相同{int count 0;for (i 0; i ROW; i){if (board[i][j] ! tmp)break;elsecount;if (count 3)return tmp;}}for (count 0,i 0; i ROW; i)//判断从左往右的直线三个字符是否相同{if (board[i][i] ! tmp)break;elsecount;if (count 3)return tmp; }for (count 0,j COL - 1,i 0; j 0,i ROW; j--,i)//判断从左往右的直线{if (board[i][j] ! tmp)break;elsecount;if (count 3)return tmp;}return 0; }6判断平局函数 注除了判断输赢还要记得判断是否有平局的情况 用嵌套for循环来逐一判断二位数组是否有空格 没有空格代表平局返回字符‘Q’ char IsFull(char board[ROW][COL], int row, int col)//判断平局 {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j)//使用for循环逐一判断棋盘是否有空格{if (board[i][j] )return 0;//有空格也就是还没下完返回0}}return Q;//没有空格平局了返回字符‘Q’ }④整个游戏算法实现实现逻辑 void game()//游戏的整个算法实现 {char ret 0;char bian 0;char board[ROW][COL] { 0 };InitBoard(board, ROW, COL);//清空棋盘DisPlayBoard(board, ROW, COL);//打印棋盘while (1){PlayerMove(board, ROW, COL);//玩家下棋DisPlayBoard(board, ROW, COL);//打印棋盘ret IsWin(board, ROW, COL, *);//判断输赢bian IsFull(board, ROW, COL);//判断是否平局if (ret *){printf(\n玩家赢啦~);break;}if (bian Q){printf(\n平局);break;}ComputerMove(board, ROW, COL);//电脑下棋DisPlayBoard(board, ROW, COL);//打印棋盘ret IsWin(board, ROW, COL, #);//判断输赢bian IsFull(board, ROW, COL);//判断是否平局if (ret #){printf(\n太可惜了电脑赢了);break;}if (bian Q){printf(\n平局);break;}} } 运行结果如下 3.三子棋游戏完整代码实现 注有些注释上文标注但在完整代码中未标注 ①game.h头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS #includestdio.h #includestring.h #includestdlib.h #includetime.h constexpr auto ROW 3; constexpr auto COL 3; void InitBoard(char board[ROW][COL], int row, int col);//初始化棋盘函数 void DisPlayBoard(char board[ROW][COL], int row, int col);//打印棋盘函数 void PlayerMove(char board[ROW][COL], int row, int col);//玩家下棋函数 void ComputerMove(char board[ROW][COL], int row, int col);//电脑下棋函数 char IsWin(char board[ROW][COL], int row, int col, char tmp);//判断输赢函数 char IsFull(char board[ROW][COL], int row, int col);//判断平局函数 ②progress.c源文件 #includegame.h void menu()//打印菜单栏 {printf(*************************\n);printf(*******THREECHESS********\n);printf(#####1.PLAY 0.EXIT#####\n);printf(*************************\n);} void game()//游戏的整个算法实现 {char ret 0;char bian 0;char board[ROW][COL] { 0 };InitBoard(board, ROW, COL);//清空棋盘DisPlayBoard(board, ROW, COL);//打印棋盘while (1){PlayerMove(board, ROW, COL);//玩家下棋DisPlayBoard(board, ROW, COL);//打印棋盘ret IsWin(board, ROW, COL, *);//判断输赢bian IsFull(board, ROW, COL);//判断是否平局if (ret *){printf(\n玩家赢啦~);break;}if (bian Q){printf(\n平局);break;}ComputerMove(board, ROW, COL);//电脑下棋DisPlayBoard(board, ROW, COL);//打印棋盘ret IsWin(board, ROW, COL, #);//判断输赢bian IsFull(board, ROW, COL);//判断是否平局if (ret #){printf(\n太可惜了电脑赢了);break;}if (bian Q){printf(\n平局);break;}} }void progress()//判断是否进入游戏 {int input 0;do{menu();printf(请输入:);scanf_s(%d, input);switch (input){case 1:printf(进入游戏\n);game();printf(\n\n\n);break;case 0:printf(退出游戏\n);break;default:printf(输入错误\n);break;}}while (input);}int main() {int row ROW;int col COL;srand((unsigned int)time(NULL));//设置随机数的生成起点progress();return 0;}③game.c源文件 #includegame.h void InitBoard(char board[ROW][COL], int row, int col)//初始化棋盘 {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){board[i][j] ;}} } void DisPlayBoard(char board[ROW][COL], int row, int col)//打印棋盘 {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){printf( %c ,board[i][j]);if (j col - 1){printf(|);} }if(i row - 1)printf(\n---|---|---\n);} }void PlayerMove(char board[ROW][COL], int row, int col)//玩家下棋 {int x 0;int y 0;printf(\n玩家下棋);while (1){printf(\n请输入坐标\n);scanf(%d%d, x, y);if (x 0 x row y 0 y col){if (board[x - 1][y - 1] ){board[x - 1][y - 1] *;break;}elseprintf(该坐标已被占用请重新输入.\n);}elseprintf(坐标输入非法请重新输入.\n);} } void ComputerMove(char board[ROW][COL], int row, int col)//电脑下棋 {printf(\n电脑下棋\n);int x 0;int y 0;while (1){x rand() % row;y rand() % col;{if (board[x][y] ){board[x][y] #;break;} }} }char IsWin(char board[ROW][COL], int row, int col, char tmp)//判断输赢 {int i 0;int j 0;int count 0;for (i 0; i ROW; i){int count 0;for (j 0; j COL; j){if (board[i][j] ! tmp)break;elsecount;if (count 3)return tmp;}}for (j 0; j COL; j){int count 0;for (i 0; i ROW; i){if (board[i][j] ! tmp)break;elsecount;if (count 3)return tmp;}}for (count 0,i 0; i ROW; i){if (board[i][i] ! tmp)break;elsecount;if (count 3)return tmp; }for (count 0,j COL - 1,i 0; j 0,i ROW; j--,i){if (board[i][j] ! tmp)break;elsecount;if (count 3)return tmp;}return 0; }char IsFull(char board[ROW][COL], int row, int col)//判断平局 {int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){if (board[i][j] )return 0;}}return Q; } 4.结语 以上就是C语言实现简单三子棋游戏完整代码以及过程实现啦我们也可以通过三子棋的代码思考五子棋游戏的实现以及对于随机数生成来作为电脑下棋的坐标似乎有点愚笨我们或许可以试着写一些让电脑选择坐标更聪明一点的函数让玩家拥有更好的游戏体验哦希望能和大家一起学习进步。
http://www.hkea.cn/news/14328667/

相关文章:

  • 8有免费建网站网站设计视频
  • 网站开发 京东网站制作北京海淀
  • net网站建设教程长沙百度推广排名
  • 松原网站建设公司电话刀客源码
  • 辽宁自助网站建设公司东莞网站优化快速排名
  • 做化妆品网站的原因重庆建设安全管理网站
  • 免费养殖网站模板Wordpress 悬浮菜单
  • 在建工程查询网站网站开发提案模板
  • 空间 网站都有 肿么做网站PHP文件加到WordPress页面
  • 湖北省建设规划网站哪家做网站
  • 400电话网络推广微信网站触屏手机网站建设
  • 整站系统建设网站管理规定
  • 做国外销售都上什么网站wordpress 获取子页面
  • 基于php技术的个人网站设计企业需要缴纳哪些税
  • 浙江嘉兴建设局网站怎么注册中文域名
  • 微商城网站建设平台合同范本互联网营销和传统营销的区别
  • 网站内容与功能模块设计重庆网站建设套餐
  • 电子商务网站用户协议营销型网站建设申请域名时公司类型的域名后缀一般是
  • 网站制作(信科网络)做网站赚钱交税
  • 布吉网站建设找哪家公司比较好摄影网站建设的功能有哪些
  • 咖啡网站建设网络搭建教程
  • 山西旅游网站建设从化营销型网站建设
  • 快速构建网站建设电子商务网站的目的
  • 世代网络高端企业网站建设设计功能公司营销宣传文案
  • 做微信公众号必备的网站小程序推广公司
  • 怎样才能创建网站网站 广州
  • 网站盈利了如何建立微网站详细步骤
  • 做暧暧的网站平面设计基础学什么
  • 襄樊建设网站湖南建设人力资源网证书查询
  • 物业公司网站模板淮北矿业集团工程建设公司网站