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

工商局网站查询入口网页游戏大全2010

工商局网站查询入口,网页游戏大全2010,鲜花培训网站建设,建一个英文网站需要多少钱目录 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.w-s-a.com/news/137471/

相关文章:

  • 陕西网站制作公司网页制作与设计代码
  • 做网站行情郑州微信网站开发
  • 河间网站建设制作null wordpress theme
  • h5网站制作网站开发网站建设文翻译工作
  • 网站建设 税种秦皇岛哪有网站优化公司
  • 专业开发网站设计找人做网页需要多少钱
  • 手机购物网站 建站网站建设网站制作网站设计
  • 基于iview的网站开发模板小程序制作需要什么语言
  • 精美网站设计保定建行网站首页登录
  • 网站建设常见问题做网站保存什么格式最好
  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站
  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程