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

在线教学的网站开发方案微信做爰视频网站

在线教学的网站开发方案,微信做爰视频网站,wordpress自由定制导航,dw和vs做网站哪个好用目录 主函数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/486483/

相关文章:

  • 便宜电商网站建设找平面图的网站
  • 大型网站建设制作平台东莞南城房价
  • 360免费视频网站建设mvc网站开发之美
  • 武宁县建设工程招标公告门户网站设计一个网站先做哪些构造
  • 公司网站免费建设2023设计院裁员惨烈程度
  • 别人做的网站不能用设计网站教程
  • 设计师发布作品的网站wordpress仿
  • 品牌微信网站建设柳州做网站制作的公司有哪些
  • 买域名做网站推广都是些什么网站点击后的loading是怎么做的
  • 北京网站优化技术泰州自助建站软件
  • 公司企业网站建设目的站长统计官方网站
  • 集团公司网站模板wordpress更换主题方法
  • 临沂网站建设电话建设网站审批手续
  • 国外做健康的网站专门做鞋子的网站吗
  • 手机网站支持微信支付吗北京短视频拍摄
  • 做静态网站工资多少网站前期推广
  • 做预算查价格的网站是哪个好网站开发维护多少钱
  • 个人互动网站365建筑人才网
  • 天津外贸公司网站制作淘客cms网站建设
  • 怎样做微网站网站建设pc指什么软件
  • 四川 网站建设wordpress腾讯地图插件下载
  • 宁波网站公司哪家好百度关键词搜索量排名
  • 北京国税局网站做票种核定时眉山网站优化
  • 网站备案授权书成都网站建设十强企业
  • 网站流量图怎么做的wordpress单号管理系统
  • 生活服务网站建设方案天猫店铺装修做特效的网站
  • 公众号做视频网站会封吗开发微分销系统
  • 情侣博客网站模板下载kindeditor for wordpress
  • 广东网站备案进度查询长沙seo网络营销推广
  • 网站建设的一般过程包括哪些内容简单网页