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

广东建的电商网站叫啥恢复原来的网站

广东建的电商网站叫啥,恢复原来的网站,沈阳制作网站的人,企业网页开发目录 主函数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.zqtcl.cn/news/709502/

相关文章:

  • 工信部网站备案查询 手机凡科网微信小程序制作
  • 一站多通怎么做网站网站推广工具 刷链接
  • 学生做网站的工作室网络舆情监测与研判考试重点
  • 做网站去哪个公司好广告创意设计论文
  • 20m带宽做网站够用吗win7创建wordpress
  • qq音乐怎么做mp3下载网站发卡网站建设方案
  • 做cpc不做网站可以吗网站跳出率
  • 公司网站变更域名有了域名就可以做网站了吗
  • 网站建设推广营销策划做外贸网站需要注册公司吗
  • 可信赖的赣州网站建设做羽毛球网站
  • 如何找网站做推广wordpress登录及注册
  • 韩国美容网站 模板wordpress中英文
  • 为什么邮箱突然进不去了总提示正在进入不安全网站wordpress需注册访问
  • 建网站哪家最好山东泰安房价
  • wordpress4.9+多站点网络推广公司联系昔年下拉
  • 西安seo网站关键词优化罗田县建设局网站
  • 北京网站建设 shwllnmp新手 wordpress
  • 优化网站结构一般包括如何进行网络营销风险控制
  • 怎样查看网站是用什么做的郫都区规划建设局网站
  • 新乡营销型网站建设制作网站设计的总结
  • 做网站的免费空间微信crm管理系统
  • 网站开发方向 英语翻译护肤品网页设计图片
  • 南昌做兼职的网站佛山网站建设公司排名
  • 购物网站建设推进表国外设计素材网站
  • 广州网站建设推广公司有哪些有一个网站专门做民宿
  • 安徽省建设干部网站淘客网站超级搜怎么做
  • 网站地图提交地址网站地图可以自己做么
  • 电子商务网站建设与推广wordpress手机大标题
  • 网站页面上的下载功能怎么做ps扩展插件网站
  • 打开网站出现directory今天时政新闻热点是什么