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

最便宜的网站建设公司wordpress 添加固定字段

最便宜的网站建设公司,wordpress 添加固定字段,国外唯美flash个人网站欣赏,wordpress+行间距插件大家好#xff0c;我是你们熟悉的恒川 今天我们用C语言来实现三子棋 实现的过程很难#xff0c;但我们一定要不放弃 三子棋1. 配置运行环境2. 三子棋游戏的初步实现2.1 建立三子棋分布模块2.2 创建一个名为board的二维数组并进行初始化2.3 搭建棋盘3. 接下来该讨论的事情3.1 … 大家好我是你们熟悉的恒川 今天我们用C语言来实现三子棋 实现的过程很难但我们一定要不放弃 三子棋1. 配置运行环境2. 三子棋游戏的初步实现2.1 建立三子棋分布模块2.2 创建一个名为board的二维数组并进行初始化2.3 搭建棋盘3. 接下来该讨论的事情3.1 目前现在三子棋整体代码的样子3.1.1 game.h3.1.2 game.c3.1.3 三子棋做法.c3.2 玩家下棋打印新的棋盘3.3 电脑下棋并打印新的棋盘3.4 判断最终的结果4. 完整三子棋游戏程序的实现4.1 game.h4.2 game.c4.3 三子棋做法.c1. 配置运行环境 本游戏用到了三个文件 两个源文件三子棋做法.c game.c 一个头文件game.h 2. 三子棋游戏的初步实现 2.1 建立三子棋分布模块 想要做好游戏首要任务就是要把模块想好。 先打印一个游戏菜单 void menu() {printf(********************************\n);printf(********** 1.play ***********\n);printf(********** 0.exit ***********\n);printf(********************************\n); }玩家选择是否1\0是否进入游戏 #include stdio.h void menu() {printf(********************************\n);printf(********** 1.play ***********\n);printf(********** 0.exit ***********\n);printf(********************************\n); } int main() {int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:printf(三子棋\n);break;case 2:printf(选择错误请重新选择\n);break;default:break;}} while (input);return 0; }2.2 创建一个名为board的二维数组并进行初始化 数组类型为char char board[ ][ ] { 0 }; 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] ;}} }另一种写法但要包含头文件string.h memset(board[0][0], , row * col * sizeof(board[0][0]));2.3 搭建棋盘 在game.c文件中实现棋盘的搭建功能 错误代码的两种形式 1. 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]);}printf(\n);} }2. void DisplayBoard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i row; i){printf( %c | %c | %c \n, board[i][0], board[i][1], board[i][2]);if(i row-1)printf(---|---|---\n);} }能正确搭建功能的棋盘可以灵活创建棋盘大小改变宏定义的变量 void DisplayBoard(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){printf( %c , board[i][j]);if(jcol-1)printf(|);}printf(\n);//打印分割的行if (i row - 1){for (j 0; j col; j){printf(---);if (j col - 1)printf(|);}printf(\n);}} }该代码的目的是构建完成打印出的棋盘大概形状就是一个“井”框架。 3. 接下来该讨论的事情 玩家下棋打印棋盘判断输赢电脑下棋打印棋盘判断输赢 3.1 目前现在三子棋整体代码的样子 3.1.1 game.h //头文件的包含 #include string.h #include stdio.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); 3.1.2 game.c #include game.hvoid 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] ;}}//memset(board[0][0], , row*col*sizeof(board[0][0])); } 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(jcol-1)printf(|);}printf(\n);if (i row - 1){for (j 0; j col; j){printf(---);if(jcol-1)printf(|);}}printf(\n);} }3.1.3 三子棋做法.c #include game.hvoid menu() {printf(*******************************\n);printf(******** 1. play ******\n);printf(******** 0. exit ******\n);printf(*******************************\n); }void game() {//存放数据需要一个3*3的二维数组char board[ROW][COL] {0};//初始化棋盘InitBoard(board, ROW, COL);//显示棋盘DisplayBoard(board, ROW, COL);while (1){//玩家下棋//打印棋盘//判断输赢//电脑下棋//打印棋盘//判断输赢} }int main() {int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误重新选择\n);break;}} while (input);return 0; }3.2 玩家下棋打印新的棋盘 在game文件中实现对棋盘上空位的判断防止一个位置多次下棋并且显示出空位给玩家下棋之后打印出新的棋盘。 void player_move(char board[ROW][COL], int row, int col) {int x 0;int y 0;printf(玩家下棋\n);while (1){printf(请输入坐标:);scanf(%d %d, x, y);if (x 1 x row y 1 y col){//下棋if (board[x - 1][y - 1] ){board[x - 1][y - 1] *;break;}else{printf(该坐标被占用请重新输入\n);}}else{printf(坐标非法请重新输入\n);}} }3.3 电脑下棋并打印新的棋盘 玩家选择一个位置打印后电脑通过rand()函数产生一个在限定范围内的的随机值并产生一个随机坐标并在相应坐标打印一个字符电脑下棋过程滞后打印新的棋盘。 void computer_move(char board[ROW][COL], int row, int col) {int x 0;int y 0;printf(电脑下棋:\n);while (1){x rand() % row;//模3结果为0~2y rand() % col;//模3结果为0~2if (board[x][y] ){board[x][y] #;break;}} }3.4 判断最终的结果 在多次进行 玩家—电脑—玩家…的循环之后产生最终的结果这时候对结果进行分析相同的3个字符相连行 列 对角线即为胜利如果棋盘已满也为产生胜利者即为平局。 char is_win(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] ! ){return board[i][1];}}//判断列for (i 0; i col; i){if (board[0][i] board[1][i] board[1][i] board[2][i] board[1][i] ! ){return board[1][i];}}//对角线if (board[0][0] board[1][1] board[1][1] board[2][2] board[1][1] ! ){return board[1][1];}if (board[0][2] board[1][1] board[1][1] board[2][0] board[1][1] ! ){return board[1][1];}//判断平局if (if_full(board, row, col) 1){return Q;}//继续return C; }上面代码第一段判断棋盘是否满了把结果返回给第二段代码中的函数第二段代码中的函数判断最后的结果玩家赢 \ 电脑赢 \平局并把相应的字符返回到 三子棋做法.c文件中判断并打印最后结果的函数中去。 打印结果 如果结果是C将不进入if判断语句中。 if (ret *){printf(玩家赢了\n);}else if (ret #){printf(电脑赢了\n);}else{printf(平局\n);}4. 完整三子棋游戏程序的实现 4.1 game.h //头文件的包含 #include string.h #include stdio.h #include stdlib.h #include time.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);4.2 game.c #include game.hvoid 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] ;}}//memset(board[0][0], , row*col*sizeof(board[0][0])); }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){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;printf(玩家下棋:\n);while (1){printf(请输入要下棋的坐标:);scanf(%d %d, x, y);if (x 1 x row y 1 y col){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) {int x 0;int y 0;printf(电脑下棋:\n);while (1){x rand() % row;y rand() % col;if (board[x][y] ){board[x][y] #;break;}} }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; }//判断输赢 //玩家赢 - * //电脑赢 - # //平局 - Q //继续 - Cchar 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][0] ! ){return board[i][0];}}for (i 0; i col; i){if (board[0][i] board[1][i] board[1][i] board[2][i] board[0][i] ! ){return board[0][i];}}if (board[0][0] board[1][1] board[1][1] board[2][2] board[1][1] ! ){return board[1][1];}if (board[0][2] board[1][1] board[1][1] board[2][0] board[1][1] ! ){return board[1][1];}//判断是否平局if (IsFull(board, row, col)){return Q;}//游戏继续return C; } 4.3 三子棋做法.c #include game.hvoid menu() {printf(*******************************\n);printf(******** 1. play ******\n);printf(******** 0. exit ******\n);printf(*******************************\n); }void game() {//存放数据需要一个3*3的二维数组char board[ROW][COL] { 0 };//初始化棋盘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);}else if (# ret){printf(电脑赢\n);}else if (Q ret){printf(平局\n);} }int main() {int input 0;srand((unsigned int)time(NULL));do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误重新选择\n);break;}} while (input);return 0; } 如果这份博客对大家有帮助希望各位给恒川一个免费的点赞作为鼓励并评论收藏一下谢谢大家 制作不易如果大家有什么疑问或给恒川的意见欢迎评论区留言。
http://www.hkea.cn/news/14503778/

相关文章:

  • 苏州高级网站建设wordpress ftp上传插件
  • wordpress+站群插件网站定制怎么选择
  • 格力网站的建设情况北京到安阳高铁时刻表查询
  • 娄底网站建设公司北京 网站制作
  • 自己做网站的给微信取个什么名字好企业成品网站模板
  • 网站外链购买网站挂到国外服务器地址
  • 漯河网站建设-千弘网络儿童网站开发 论文
  • 免费企业建网站家装公司十大口碑排名
  • 建设信用购物网站齐家装饰公司官网
  • 门户网站制作建设四川电脑网站建设
  • 网站建设尾款收取免费生成网站软件下载
  • 住房和城乡建设部网站杂志网站建设流量从哪里来
  • 跨平台 移动网站开发怎样做seo网站链接
  • 滨江区建设局官方网站电商型企业网站建设
  • 南昌网站建设报价wordpress博客分页
  • 网站资料如何做脚注wordpress记事本插件
  • 网站建设与管理ppt想建设个网站
  • 建网站怎么做wordpress 文章浏览次数
  • 建设内网网站流程电子商务网站建设与维护 答案
  • 医院 网站建设 中企动力网站建设 迅雷下载
  • 河南省建设资格注册中心网站php网站添加验证码
  • 找人做网站注意哪些北京通州网站建设
  • 南通海洲建设集团网站WordPress更改角色插件
  • 海沧建设网站多少钱大学生创新创业大赛官网入口
  • 免费电视剧大全网站新型h5网站建设
  • 站长网站统计wordpress首页调用图片不显示
  • 东莞市建设监督网站微网站生成app
  • 网站建设售后支持管理咨询公司服务口碑好
  • 做个网站找别人做的吗游戏网页设计作品
  • 上海频道做网站怎么样网站开发如何