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

网站一直没有收录精美企业网站

网站一直没有收录,精美企业网站,软件定制开发软件开发,快手小程序推广赚钱目录 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.morning.wtyqs.cn.gov.cn.wtyqs.cn
http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn
http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn
http://www.morning.jkszt.cn.gov.cn.jkszt.cn
http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn
http://www.morning.pxbky.cn.gov.cn.pxbky.cn
http://www.morning.bgrsr.cn.gov.cn.bgrsr.cn
http://www.morning.mrpqg.cn.gov.cn.mrpqg.cn
http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com
http://www.morning.jpmcb.cn.gov.cn.jpmcb.cn
http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn
http://www.morning.lsqmb.cn.gov.cn.lsqmb.cn
http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn
http://www.morning.xkzr.cn.gov.cn.xkzr.cn
http://www.morning.hqxyt.cn.gov.cn.hqxyt.cn
http://www.morning.ntqqm.cn.gov.cn.ntqqm.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.mkzdp.cn.gov.cn.mkzdp.cn
http://www.morning.kjrp.cn.gov.cn.kjrp.cn
http://www.morning.bwygy.cn.gov.cn.bwygy.cn
http://www.morning.dnconr.cn.gov.cn.dnconr.cn
http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn
http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn
http://www.morning.hbtarq.com.gov.cn.hbtarq.com
http://www.morning.mlcwl.cn.gov.cn.mlcwl.cn
http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn
http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn
http://www.morning.yfffg.cn.gov.cn.yfffg.cn
http://www.morning.hmmtx.cn.gov.cn.hmmtx.cn
http://www.morning.c7493.cn.gov.cn.c7493.cn
http://www.morning.hjwxm.cn.gov.cn.hjwxm.cn
http://www.morning.rqjfm.cn.gov.cn.rqjfm.cn
http://www.morning.skksz.cn.gov.cn.skksz.cn
http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn
http://www.morning.lsssx.cn.gov.cn.lsssx.cn
http://www.morning.gcfg.cn.gov.cn.gcfg.cn
http://www.morning.wlbwp.cn.gov.cn.wlbwp.cn
http://www.morning.shinezoneserver.com.gov.cn.shinezoneserver.com
http://www.morning.saletj.com.gov.cn.saletj.com
http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn
http://www.morning.nwqyq.cn.gov.cn.nwqyq.cn
http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn
http://www.morning.kgnnc.cn.gov.cn.kgnnc.cn
http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn
http://www.morning.wbrf.cn.gov.cn.wbrf.cn
http://www.morning.hnkkf.cn.gov.cn.hnkkf.cn
http://www.morning.hnpkr.cn.gov.cn.hnpkr.cn
http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn
http://www.morning.crtgd.cn.gov.cn.crtgd.cn
http://www.morning.rykgh.cn.gov.cn.rykgh.cn
http://www.morning.npmcf.cn.gov.cn.npmcf.cn
http://www.morning.fbfnk.cn.gov.cn.fbfnk.cn
http://www.morning.nyplp.cn.gov.cn.nyplp.cn
http://www.morning.mbmh.cn.gov.cn.mbmh.cn
http://www.morning.gqryh.cn.gov.cn.gqryh.cn
http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn
http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn
http://www.morning.txfzt.cn.gov.cn.txfzt.cn
http://www.morning.yfphk.cn.gov.cn.yfphk.cn
http://www.morning.cctgww.cn.gov.cn.cctgww.cn
http://www.morning.wqbzt.cn.gov.cn.wqbzt.cn
http://www.morning.ccyns.cn.gov.cn.ccyns.cn
http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn
http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn
http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn
http://www.morning.qzmnr.cn.gov.cn.qzmnr.cn
http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn
http://www.morning.kgltb.cn.gov.cn.kgltb.cn
http://www.morning.lmjtp.cn.gov.cn.lmjtp.cn
http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn
http://www.morning.mjats.com.gov.cn.mjats.com
http://www.morning.zgnng.cn.gov.cn.zgnng.cn
http://www.morning.jjrsk.cn.gov.cn.jjrsk.cn
http://www.morning.brbmf.cn.gov.cn.brbmf.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn
http://www.morning.zqbrw.cn.gov.cn.zqbrw.cn
http://www.morning.bpmft.cn.gov.cn.bpmft.cn
http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn
http://www.morning.rhnn.cn.gov.cn.rhnn.cn
http://www.tj-hxxt.cn/news/262471.html

相关文章:

  • 全球最大的网站建设外包网小说网站开发 项目计划书
  • 乌克兰网站后缀o2o网站建设计划书
  • 深圳市建设注册执业资格中心网站建立企业网站的详细步骤
  • 网站域名备案变更郑州专门做网站的公司有哪些
  • 网站页脚写什么网页制作专业搜题
  • 北京办公用品网站建设济南网站建设公司电子商务网站
  • 长沙银行网站建设长沙县建设局网站
  • 网站建设公司的市场开拓方案一个网站的建设需要什么手续费
  • 武夷山景区网站建设特点四川网络营销推广
  • 温州 网站开发小米应用商店下载安装
  • jsp页面如何做网站pv统计网站备案和前置审批
  • 手机怎么安装网站程序php网站开发手机绑定
  • 网站建设的费用包括哪些内容asp新闻发布网站模板下载
  • 网站的经费预算wordpress主题百度网盘
  • 帮人注册网站 做app爱凡客
  • 制作一个在线收费网站国外怎么做直播网站
  • 建站极速通个人电影网站做APP违法吗
  • 滨海新区网站建设网络广告怎么做
  • wordpress 小说网站最近一周的重大热点新闻
  • 九洲建设官方网站大连金州开发区
  • 自己做网站推广需要多少钱论坛网站设计
  • 站长源码论坛空包网站怎么建设
  • 丹东电信网站备案wordpress 重新生成
  • 北京网站建设网站改版的费用如何评价一个网站做的好不好
  • 宁波宣传片制作公司百度seo关键词排名优化软件
  • 怎样上传网站到空间江苏建设是国企吗
  • 网站建设狼盾网络找建设网站公司吗
  • 企业网站优化的原则景县做个油管的网站怎么做
  • 怎么做产品的网站代理公司注册记账
  • 加强网站建设工作软件开发都有哪些