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

网站设计模板是什么做的物流网站

网站设计模板是什么,做的物流网站,中国建设银行网站-个人客,怎么给网站做搜索功能目录 1.创建项目 2.主函数编写 3.菜单函数编写 4.宏定义棋盘行和列 5.棋盘初始化 6.打印棋盘 7.玩家下棋 8.电脑下棋 9.平局判断 10.输赢判断 11.game函数 三子棋游戏#xff08;通过改变宏定义可以变成五子棋#xff09;#xff0c;玩家与电脑下棋 1.创建项目…目录 1.创建项目 2.主函数编写 3.菜单函数编写 4.宏定义棋盘行和列 5.棋盘初始化 6.打印棋盘 7.玩家下棋 8.电脑下棋 9.平局判断  10.输赢判断 11.game函数 三子棋游戏通过改变宏定义可以变成五子棋玩家与电脑下棋 1.创建项目 新建项目并在源文件中添加test.c、game.c文件在头文件中添加game.h文件。 2.主函数编写 int main() {srand((unsigned int)time(NULL));//设置随机数的生成起点int input 0;do{menu();//菜单打印printf(请选择\n);scanf(%d, input);switch (input){case 1:printf(开始游戏\n);game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误\n);}} while (input);return 0; } 3.菜单函数编写 打印菜单栏 //菜单打印 void menu() {printf(******* 三子棋 ******\n);printf(*****1. play 0. exit*****\n);printf(************************\n);} 4.宏定义棋盘行和列 通过更改ROW、COL后面数字可以改变棋盘的行列。改变CON后面的数组可以更改为棋数限制可以改成4子棋五子棋。 #define ROW 3 #define COL 3 #define CON 3 5.棋盘初始化 初始化棋盘使棋盘内容为”空“ //棋盘初始化 void board_Init(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] ;}} } 6.打印棋盘 第一种写法这种写法将行和列写死了后续无法通过宏定义控制行列。 //打印棋盘 //第一个版本 void board_Display(char board[ROW][COL], int row, int col) {int i 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);} }版本二 用循环的方式写这种方法可以使用宏定义棋盘数 //打印棋盘Mark2 void board_Display2(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i){//打印数据//printf( %c | %c | %c \n, board[i][0], board[i][1], board[i][2]);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){//printf(---|---|---\n);int j 0;for (j 0; j col; j){printf(---);if (j col - 1)printf(|);}printf(\n);}} } 7.玩家下棋 //玩家下棋 void Player_move(char board[ROW][COL], int row, int col) {int x 0;int y 0;printf(玩家下棋\n);while (1){printf(玩家请选择下棋位置\n);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;}elseprintf(坐标已被占用请重新选择位置\n);}elseprintf(坐标非法请重新输入\n);} } 8.电脑下棋 //电脑下棋 //找没有下棋的位置随机下棋 void Computer_move(char board[ROW][COL], int row, int col) {printf(电脑下棋\n);int x 0;int y 0;while (1){x rand() % row;//0-2y rand() % col;//0-2if (board[x][y] ){board[x][y] #;break;}}} 9.平局判断 //平局判断 //满了返回1 //不满返回0 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; } 10.输赢判断 方案一这种判断方法不能用宏定义更改行列。将程序写死了。 //判断输赢 // //玩家赢-* //电脑赢-# //平局-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] ! )return board[i][1];}//列int j 0;for (j 0; j col; j){if (board[0][j] board[1][j] board[1][j] board[2][j] board[1][j] ! ){return board[1][j];}}//对角线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; } 方案二 这种方法可以使用宏定义通过更改count的值来更改棋数限制可以改成四子棋五子棋。 //判断输赢Mark2 char IsWin2(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 CON)//当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 CON)return tmp;}}//判断//*// *// * //对角线方向for (count 0, i 0; i ROW; i)//判断从左往右的直线三个字符是否相同{if (board[i][i] ! tmp)break;elsecount;if (count CON)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 CON)return tmp;}//平局if (IsFull(board, row, col)){return Q;}//游戏继续return C; } 11.game函数 game() {char ret 0;char board[ROW][COL] { 0 };//棋盘初始化board_Init(board,ROW ,COL );board_Display2(board, ROW, COL);//下棋while (1){//玩家下棋Player_move(board,ROW,COL);//判断输赢//ret IsWin(board,ROW,COL);ret IsWin2(board, ROW, COL, *);if (ret ! C){break;}board_Display2(board, ROW, COL);//电脑下棋Computer_move(board, ROW, COL);//判断输赢//ret IsWin(board, ROW, COL);ret IsWin2(board, ROW, COL, #);if (ret ! C){break;}board_Display2(board, ROW, COL);}if (ret *){printf(玩家赢\n);}else if (ret #){printf(电脑赢\n);}else{printf(平局\n);}board_Display2(board, ROW, COL); } 12.源程序代码 test.c文件代码 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h #include game.hgame() {char ret 0;char board[ROW][COL] { 0 };//棋盘初始化board_Init(board,ROW ,COL );board_Display2(board, ROW, COL);//下棋while (1){//玩家下棋Player_move(board,ROW,COL);//判断输赢//ret IsWin(board,ROW,COL);ret IsWin2(board, ROW, COL, *);if (ret ! C){break;}board_Display2(board, ROW, COL);//电脑下棋Computer_move(board, ROW, COL);//判断输赢//ret IsWin(board, ROW, COL);ret IsWin2(board, ROW, COL, #);if (ret ! C){break;}board_Display2(board, ROW, COL);}if (ret *){printf(玩家赢\n);}else if (ret #){printf(电脑赢\n);}else{printf(平局\n);}board_Display2(board, ROW, COL); }//菜单打印 void menu() {printf(******* 三子棋 ******\n);printf(*****1. play 0. exit*****\n);printf(************************\n);}int main() {srand((unsigned int)time(NULL));//设置随机数的生成起点int input 0;do{menu();//菜单打印printf(请选择\n);scanf(%d, input);switch (input){case 1:printf(开始游戏\n);game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误\n);}} while (input);return 0; } game.c文件代码 #define _CRT_SECURE_NO_WARNINGS 1 #include game.h//棋盘初始化 void board_Init(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 board_Display(char board[ROW][COL], int row, int col) {int i 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);} }//打印棋盘Mark2 void board_Display2(char board[ROW][COL], int row, int col) {int i 0;for (i 0; i row; i){//打印数据//printf( %c | %c | %c \n, board[i][0], board[i][1], board[i][2]);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){//printf(---|---|---\n);int j 0;for (j 0; j col; j){printf(---);if (j col - 1)printf(|);}printf(\n);}} }//玩家下棋 void Player_move(char board[ROW][COL], int row, int col) {int x 0;int y 0;printf(玩家下棋\n);while (1){printf(玩家请选择下棋位置\n);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;}elseprintf(坐标已被占用请重新选择位置\n);}elseprintf(坐标非法请重新输入\n);} }//电脑下棋 //找没有下棋的位置随机下棋 void Computer_move(char board[ROW][COL], int row, int col) {printf(电脑下棋\n);int x 0;int y 0;while (1){x rand() % row;//0-2y rand() % col;//0-2if (board[x][y] ){board[x][y] #;break;}}}//平局判断 //满了返回1 //不满返回0 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 //游戏继续-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] ! )return board[i][1];}//列int j 0;for (j 0; j col; j){if (board[0][j] board[1][j] board[1][j] board[2][j] board[1][j] ! ){return board[1][j];}}//对角线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; }//判断输赢Mark2 char IsWin2(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 CON)//当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 CON)return tmp;}}//判断//*// *// * //对角线方向for (count 0, i 0; i ROW; i)//判断从左往右的直线三个字符是否相同{if (board[i][i] ! tmp)break;elsecount;if (count CON)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 CON)return tmp;}//平局if (IsFull(board, row, col)){return Q;}//游戏继续return C; } game.h文件代码 #include stdio.h #include stdlib.h #include time.h #define ROW 3 #define COL 3 #define CON 3 //棋盘初始化 void board_Init(char board[ROW][COL], int row, int col); //打印棋盘 void board_Display(char board[ROW][COL], int row, int col); //玩家下棋 void Player_move(char board[ROW][COL], int row, int col); //电脑下棋 void Computer_move(char board[ROW][COL], int row, int col); //判断输赢 char IsWin(char board[ROW][COL], int row, int col); char IsWin2(char board[ROW][COL], int row, int col, char tmp); 13.结语 以上就是用C语言做的简单的三子棋游戏这个不止是三子棋游戏可以通过更改宏定义让他变成五子棋等等缺点是对手电脑是用随机数生成的它所下的位置是随机的所以我们想输都难后续可以尝试写一个让电脑聪明点的函数体验会更好一些。
http://www.hkea.cn/news/14409370/

相关文章:

  • 网站访问大小 计算流量河南微网站建设公司
  • 营销型网站建设要点php 网站
  • 吉林省建设行业继续教续网站广东公路建设公司官网
  • 网站建设网站排名优化know how wordpress
  • python做网站验证码中国甘肃网
  • 网站备案信息页面西部数码WordPress开启伪静态
  • 南京市建设厅网站网站免费网站免费
  • 适合建设网站的国外服务器seo顾问是什么
  • 网站域名空间代理网站开发和前端和数据媒体
  • 有哪些在线做图的网站网站如何做数据库
  • 商城网站开发公司福州百度推广优化排名
  • 天津中小企业网站建设网站建设需要多少费用
  • 建设一个网站需要几个角色做网站是
  • 赣州网站制作较好的公司网站more应该怎么做
  • 太原做网站兼职为公司建设网络强国
  • 北京网站手机站建设公司电话建设博物馆网站
  • 惠济免费网站建设泰然建设网站
  • 网页网站设计公司中卫 网红打卡地
  • 广州网站搭建快速提升网站排名wordpress农业模板下载
  • 沈阳百度广告天津谷歌优化公司
  • 简易网站怎样建立自己网站视频网站
  • 如何做淘宝商城网站18款禁用软件黄a免费
  • 网站搭建推广优化国内十大saas平台
  • 做企业网站通常哪找素材西安网站代维护
  • 全球著名科技网站六站合一的应用场景
  • 推广网站弄哪家好英德市建设及城乡管理局网站
  • 保定外贸网站制作sns程序 整合wordpress
  • 广州网站推广哪家强详情页设计论文
  • 洪雅网站建设学校网站建设的意见
  • 网站开发作用网站三合一建设