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

视频源网站怎么做51ppt模板免费下载网站

视频源网站怎么做,51ppt模板免费下载网站,百度问答官网,网站建站与优化目录 主函数test.c 菜单函数 选择实现 游戏函数 #xff08;函数调用#xff09; 打印棋盘数据 打印展示棋盘 玩家下棋 电脑下棋 判断输赢 循环 test.c总代码 头文件函数声明game.h 头文件的包含 游戏符号声明 游戏函数声明 game.h总代码 游戏函数ga…目录 主函数test.c 菜单函数 选择实现 游戏函数 函数调用 打印棋盘数据 打印展示棋盘  玩家下棋 电脑下棋 判断输赢 循环 test.c总代码  头文件函数声明game.h 头文件的包含 游戏符号声明 游戏函数声明 game.h总代码  游戏函数game.c  打印棋盘数据InitBoard 打印展示棋盘DisplayBoard  打印数据行 打印分割行 玩家下棋PlayerMove 展示棋盘DisplayBoard  电脑下棋ComputerMove 展示棋盘DisplayBoard  判断输赢IsWin 判断平局IsFull game.c总代码 拖了许久的三子棋游戏的实现今天来一步一步的实现三子棋游戏。 主函数test.c 菜单函数 void menu() {printf(***************************\n);printf(******* 1.Play ********\n);printf(******* 0.over ********\n);printf(***************************\n); } 选择实现 void menu() {printf(***************************\n);printf(******* 1.Play ********\n);printf(******* 0.over ********\n);printf(***************************\n); } void game() {printf(开始游戏三子棋\n); } int main() {//打印菜单int input 0;do{menu();printf(请玩家选择\n);scanf(%d, input);switch (input)//分支语句{case 1://玩游戏{game();break;}case 0://结束游戏{printf(游戏结束\n);break;}default:{printf(输入错误请重新选择\n);break;}}} while (input); } 以上游戏的菜单和游戏选择我们曾在玩数字游戏中写过大家可以回顾复习一下。 游戏函数 函数调用 打印棋盘数据 打印棋盘我们需要创建二维数组存放棋盘数据。 char board[ROW][COL];//创建一个二维数组行和列我们需要创建一个函数InitBoard功能是初始化棋盘数据。 InitBoard(board,ROW,COL);//把数组 数组的行和列都传过去 打印展示棋盘  打印棋盘  DisplayBoard(board,ROW,COL); 玩家下棋 PlayerMove(board,ROW,COL); 电脑下棋 ComputerMove(board, ROW, COL); srand((unsigned int)time(NULL));//产生随机数 //随机数的产生我们在前面猜数字游戏已经讲解过了忘了的的小朋友可以去看看。 判断输赢 玩家赢——函数返回*电脑赢——函数返回#平局——函数返回Q以上三种都跳出了循环只有游戏继续——返回C——继续循环  Iswin(board, ROW, COL); char ret0; ret Iswin(board, ROW, COL); if (ret ! C) {break; } if (ret *){printf(玩家赢\n);}if (ret #){printf(电脑赢\n);}if (ret Q){printf(平局\n);} 循环 每次玩家下棋完展示棋盘和判断输赢同理电脑下棋完也要展示棋盘和判断输赢。 void game() {char board[ROW][COL];InitBoard(board, ROW, COL);DisplayBoard(board, ROW, COL);//下棋循环char ret 0;while (1){PlayerMove(board, ROW, COL);//玩家下棋DisplayBoard(board, ROW, COL);//展示棋盘//判断输赢ret Iswin(board, ROW, COL);if (ret ! C){break;}ComputerMove(board, ROW, COL);//电脑下棋DisplayBoard(board, ROW, COL);//展示棋盘//判断输赢ret Iswin(board, ROW, COL);if (ret ! C){break;}}if (ret *){printf(玩家赢\n);}if (ret #){printf(电脑赢\n);}if (ret Q){printf(平局\n);} } test.c总代码  #define _CRT_SECURE_NO_WARNINGS 1 #includegame.h void menu() {printf(***************************\n);printf(******* 1.Play ********\n);printf(******* 0.over ********\n);printf(***************************\n); } //判断输赢 //玩家赢——返回* //电脑赢——返回# //平局——Q // 以上三种都跳出了循环 //游戏继续——C //继续循环 void game() {char board[ROW][COL];InitBoard(board, ROW, COL);DisplayBoard(board, ROW, COL);//下棋循环char ret 0;while (1){PlayerMove(board, ROW, COL);//玩家下棋DisplayBoard(board, ROW, COL);//展示棋盘//判断输赢ret Iswin(board, ROW, COL);if (ret ! C){break;}ComputerMove(board, ROW, COL);//电脑下棋DisplayBoard(board, ROW, COL);//展示棋盘//判断输赢ret Iswin(board, ROW, COL);if (ret ! C){break;}}if (ret *){printf(玩家赢\n);}if (ret #){printf(电脑赢\n);}if (ret Q){printf(平局\n);} } int main() {//打印菜单int input 0;srand((unsigned int)time(NULL));//产生随机数do{menu();printf(请玩家选择\n);scanf(%d, input);switch (input)//分支语句{case 1://玩游戏{printf(开始游戏\n);game();break;}case 0://结束游戏{printf(游戏结束\n);break;}default:{printf(输入错误请重新选择\n);break;}}} while (input); } 头文件函数声明game.h 头文件的包含 在我们写代码的过程中会调用库函数需要包含头文件和声明函数。 所以我们将所有函数声明和头文件放到我们.h 文件中。 当然在其他.c文件需要使用时我们只需要包含 我们创造的 头文件game.h 即可。  //#includegame.h #includestdio.h #includetime.h #includestdlib.h 游戏符号声明 #define ROW 3 #define 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); int IsFull(char board[ROW][COL], int row, int col); game.h总代码  #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #includestdio.h #includetime.h #includestdlib.h #define ROW 3 #define 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); int IsFull(char board[ROW][COL], int row, int col); 游戏函数game.c  分析一下棋盘。 棋盘分为 数据行和分割行 。数据行落子在棋盘上每一个棋盘上的位置对应二维数组中的一个数组元素。在还未 落子   在棋盘上的时候最开始棋盘上的数据初始化为空格 分割行有行和列。 分析完棋盘我们要将棋盘打印出来也就是把数据行和分割行打印出来我们需要拆分 。 数据行我们拆分为  空格和 | 分割行我们拆分为   ----和 |  注意分割行没有最后一列和最后一行用分支语句来控制。  打印棋盘数据InitBoard 我们将数组的参数传递给了函数InitBoard。接下来利用遍历二维数组元素把数组中的元素初始化(用赋值运算符)为 空格 初始化空格注意是 单引号 #includegame.h void InitBoard(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){board[i][j] ;//初始化为空格//字符单引号}} } 打印展示棋盘DisplayBoard  注意要换行注意数据行和分割行的空位大小要一致注意使用行和列循环棋盘被改变格式3*3改为10*10也不会错乱。 打印数据行 void DisplayBoard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i)//控制行一行一行打印{//打印数据行int j 0;//每行的元素按列打印for (j 0; j col; j){printf( , board[i][j]);//打印数据//初始化为空格//三个空格if (j col - 1)printf(|);//打印分割线} 打印分割行 //打印分割行printf(\n);if (i row - 1){int j 0;for (j 0; j col; j){printf(---);//对应数据行的三个空格if (j col - 1)printf(|);}}} } 棋盘效果如下 玩家下棋PlayerMove 注意设置限制条件_不能超出棋盘范围 注意棋盘是数组数组的下标是从0开始的。 注意循环,下棋成功break跳出循环。 void PlayerMove(char board[ROW][COL], int row, int col) {int x 0;int y 0;while (1){//先让玩家下棋printf(请输入要下棋的坐标:);scanf(%d %d, x, y);//不能超出棋盘范围if (x 1 x row y col y1){if (board[x - 1][y - 1] )//数组下标要从开始{board[x - 1][y - 1] *;}else{printf(该坐标已被占用请输入其他坐标\n);}}else{printf(坐标超出棋盘范围请重新输入\n);}} } 展示棋盘DisplayBoard  电脑下棋ComputerMove 随机数的产生要掌握  void ComputerMove(char board[ROW][COL], int row, int col) {printf(电脑下棋\n);int x 0;int y 0;while (1){x rand() % row;y rand() % col;//产生随机值if (board[x][y] ){board[x][y] #;break;}} } 展示棋盘DisplayBoard  判断输赢IsWin 玩家赢——函数返回*电脑赢——函数返回#平局——函数返回Q以上三种都跳出了循环只有游戏继续——返回C——继续循环  产生以上的结果的条件我们来分析以下 char Iswin(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i)//先一行判断{if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][1] ! )//循环1{return board[i][1];}if (board[0][i] board[1][i] board[1][i] board[2][i] board[1][i] ! )//循环2{return board[1][i];}if (board[0][0] board[1][1] board[1][1] board[2][2] board[1][1] ! )//循环3{return board[1][1];}if (board[2][2] board[1][1] board[1][1] board[0][2] board[1][1] ! ){return board[1][1];}if (IsFull(board, row, col))//返回1真执行返回0假不执行{return Q;}//如果以上情况均不是return C;} } 判断平局IsFull if (IsFull(board, row, col))//返回1真执行返回0假不执行 {return Q; } int 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 1; } game.c总代码 #define _CRT_SECURE_NO_WARNINGS 1 #includegame.h void InitBoard(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i){int j 0;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)//控制行一行一行打印{//打印数据行int j 0;//每行的元素按列打印for (j 0; j col; j){printf( %c , board[i][j]);//打印数据//初始化为空格if (j col - 1)printf(|);//打印分割线}//打印分割行printf(\n);if (i row - 1){int j 0;for (j 0; j col; j){printf(---);if (j col - 1)printf(|);}}printf(\n);} }void PlayerMove(char board[ROW][COL], int row, int col) {int x 0;int y 0;while (1){//先让玩家下棋printf(请输入要下棋的坐标:);scanf(%d %d, x, y);//不能超出棋盘范围if (x 1 x row y col y1){if (board[x - 1][y - 1] )//数组下标要从开始{board[x - 1][y - 1] *;break;}else{printf(该坐标已被占用请输入其他坐标\n);}}else{printf(坐标超出棋盘范围请重新输入\n);}} }void ComputerMove(char board[ROW][COL], int row, int col) {printf(电脑下棋\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) {int i 0;for (i 0; i row; i)//先一行判断{if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][1] ! )//循环1{return board[i][1];}if (board[0][i] board[1][i] board[1][i] board[2][i] board[1][i] ! )//循环2{return board[1][i];}if (board[0][0] board[1][1] board[1][1] board[2][2] board[1][1] ! )//循环3{return board[1][1];}if (board[2][2] board[1][1] board[1][1] board[0][2] board[1][1] ! ){return board[1][1];}if (IsFull(board, row, col))//返回1真执行返回0假不执行{return Q;}//如果以上情况均不是return C;} }int 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 1; } ✔✔✔✔✔最后感谢大家的阅读如有不足和错误欢迎指正。 代码---------→【gitee:https://gitee.com/TSQXG】 联系---------→【邮箱2784139418qq.cqq
http://www.pierceye.com/news/984286/

相关文章:

  • 网络哪里能接活做网站新浦网站制作网站建设
  • 新手自己做网站凡科网建设网站如何修改源代码
  • 做自媒体发视频用哪些网站贵州网站建设联系电话
  • 可以提供排版的网站友情链接怎么弄
  • 优秀网站建设空间海口 网站建设
  • 设计网站页面出现问题九江哪家网站建设公司好
  • 深圳做企业网站的公司成都公司展厅
  • 两学一做 网站t型布局网站怎么做
  • 论坛网站建设联系方式成都网站设计制作价格
  • 网页网站建设的ppt模板下载响应式网站项目
  • 做网站在哪里可以找到高清壁纸北京响应式网站
  • 企业网站建设门户网站建设费的摊销年限
  • 模板网站的域名是什么网站源代码程序
  • 网站空间多久续一次费长春网站制作设计
  • 网站制作价格低广西网络电视
  • 平台网站建设收费烟台网站的优化
  • 如何做提卡网站vue.js wordpress
  • 国家网站备案查询系统wordpress 主题 简洁
  • 建设商业网站html什么意思
  • 网站专题建设方案江苏省建设厅网站 杨洪海
  • 通化网站建设公司南江县住房和城乡建设局网站
  • 网站的外链是什么软件开发与网站开发的区别
  • 学做网站论坛vip账户了解网站开发的背景
  • 做3个网站需要多大的服务器科凡建站
  • 网站设计制作音乐排行榜44555pd永久四色端口
  • 网站优化方案教程如何注册chn域名网站
  • 怎样建设免费网站个别网站网速慢怎么做
  • 网页设计制作音乐排行榜一键seo提交收录
  • 网站推广要我营业执照复印件conoha wordpress
  • 免费行情软件app网站排行高质量外链网站