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

网站为什么做站外推广minisite网站案例

网站为什么做站外推广,minisite网站案例,网页小游戏怎么下载,建设工程管理网站前言#xff1a; 三子棋是一种民间传统游戏#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战#xff0c;双方依次在9宫格棋盘上摆放棋子#xff0c;率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小#xff0c;三子棋在很多时候会出现和… 前言 三子棋是一种民间传统游戏又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战双方依次在9宫格棋盘上摆放棋子率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小三子棋在很多时候会出现和棋的局面。 设计思路 先开一个test.c文件用来进行游戏的逻辑测试再开一个game.h头文件和game.c文件分别用来进行函数声明和实现游戏的逻辑然后就是打印菜单、生成棋盘、实现玩家下棋、实现电脑下棋、判断游戏的输赢、游戏优化。 1. 打印菜单 test.c void menu() {printf(***************************\n);printf(******** 1.play ********\n);printf(******** 2.exit ********\n);printf(***************************\n); }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);}} while (input);return 0; } 2. 生成棋盘 2.1 初始化棋盘 我们可以用空格将每一个格子初始化。 test.c文件 board[ROW][COL] { 0 }; InitBoard(board, ROW, COL); game.c文件 void InitBoard(char board[ROW][COL], int row, int col) {for (int i 0; i row; i){for (int j 0; j col; j){board[i][j] ;}} } 其中的ROW和COL是两个宏定义。 game.h #define ROW 3 #define COL 32.2 打印棋盘 打印棋盘时我们可以一些符号隔开不同的空格这样就会使我们的棋盘更加美观。比如我们可以使用“|”将同一行的空格分开用“-”将不同行的空格分开这样我们就可以得到一个如下的九宫格了。 game.c文件 void DisplayBoard(char board[ROW][COL], int row, int col) {for (int i 0; i row; i){for (int j 0; j col; j){printf( );if (j col - 1){printf(|);}}printf(\n);if (i row - 1){for (int j 0; j col; j){printf(---);if (j col - 1)printf(|);}printf(\n);}} }3. 实现玩家下棋和电脑下棋 为了游戏的可实行性当玩家或电脑下完一个棋子后我们需要考虑以下两点 1.玩家或电脑所下的坐标是否在棋盘的范围内。 2.玩家或电脑所下的位置是否已经被下过棋子了。 依据上面的两点条件的我们需要分别写一个条件语句判断玩家是否合法下棋。 3.1 玩家下棋 game.c文件 void PlayerMove(char board[ROW][COL], int row, int col) {int x 0, 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.2 电脑下棋 思路  我们可以在让电脑生成随机数这样就可以使其随机生成一个坐标下棋子那么我们就可以简单的实现电脑下棋的效果了。 随机数的生成则可以使用rand函数、srand函数以及time函数。 game.c文件 void ComputerMove(char board[ROW][COL], int row, int col) {printf(电脑下棋:\n);while (1){int x rand() % row;int y rand() % row;if (x row x 1 y row y 1){if (board[x][y] ){board[x][y] #;break;}}} } test.c文件 srand((unsigned int)time(UNLL)) game.h文件 #includetime.h #includestdlib.h 为了实现玩家下一个棋然后电脑下一个棋的功能我们还需加上一个while循环。如下 test.c文件 while(1) {//玩家下棋PlayerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//电脑下棋ComputerMove(board, ROW, COL);DisplayBoard(board, ROW, COL); } 4. 判断游戏的输赢 思路 此游戏无非只有三种结果要么玩家赢要么电脑赢要么平局。所以我们可以写一个函数判断是这几种结果的哪一种然后规定如果是玩家赢此函数返回“*”如果是电脑赢则返回“#”平局则返回“Q”这几种都不是就说明游戏继续那么就返回“C”. 要判断是否有赢的一方无非就是判断是否出现了三个相同的棋子练成一条直线而棋子连成的线无非就只有三种情况竖线、横线、对角线。所以我们只需要判断是否出现了这三种情况的其中一种就可以了。而要判断是平局则判断九宫格是否还有没有空格。 game.c文件 int ItFull(char board[ROW][COL], int row, int col) {for (int i 0; i row; i){for (int j 0;j col; j){if (board[i][j] ){return 0;}}}return 1; } char ItWin(char board[ROW][COL], int row, int col) {//行for (int i 0; i row; i){if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][2] ! )return board[i][1];}//列for (int j 0; j col; j){if (board[0][j] board[1][j] board[1][j] board[2][j] board[2][j] ! )return board[1][j];}//对角线if (board[0][0] board[1][1] board[1][1] board[2][2] board[2][2] ! 0){return board[1][1];}if (ItFull(board, row, col)){return Q;}return C; } test.c文件 //玩家下棋PlayerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//判断输赢char ret ItWin(board, ROW, COL);if (ret ! C){if (ret *){printf(玩家赢了!!!\n);}break;}//电脑下棋ComputerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//判断输赢ItWin(board, ROW, COL);if (ret ! C){if (ret #){printf(电脑赢了!!!\n);}break;} 完整代码 game.h文件 #includestdio.h #includestdlib.h #includetime.h#define ROW 3 #define COL 3void 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 ItWin(char board[ROW][COL], int row, int col); test.c文件 #includegame.hvoid menu() {printf(***************************\n);printf(******** 1.play ********\n);printf(******** 2.exit ********\n);printf(***************************\n); } void game() {//第一步打印棋盘。char board[ROW][COL] { 0 };//初始化棋盘InitBoard(board, ROW, COL);//打印棋盘DisplayBoard(board, ROW, COL);char ret;while(1){//玩家下棋PlayerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//判断输赢char ret ItWin(board, ROW, COL);if (ret ! C){if (ret *){printf(玩家赢了!!!\n);}break;}//电脑下棋ComputerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//判断输赢ItWin(board, ROW, COL);if (ret ! C){if (ret #){printf(电脑赢了!!!\n);}break;}} } int main() {srand((unsigned int)time(NULL));int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏.\n);break;default:printf(输入有误请重新输入.\n);}} while (input);return 0; } game.c文件 #includegame.hvoid InitBoard(char board[ROW][COL], int row, int col) {for (int i 0; i row; i){for (int j 0; j col; j){board[i][j] ;}} }void DisplayBoard(char board[ROW][COL], int row, int col) {for (int i 0; i row; i){for (int j 0; j col; j){printf( %c ,board[i][j]);if (j col - 1)printf(|);}printf(\n);if (i row - 1){for (int 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, 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) {printf(电脑下棋:\n);while (1){int x rand() % row;int y rand() % row;if (x row x 1 y row y 1){if (board[x][y] ){board[x][y] #;break;}}} }int ItFull(char board[ROW][COL], int row, int col) {for (int i 0; i row; i){for (int j 0;j col; j){if (board[i][j] ){return 0;}}}return 1; } char ItWin(char board[ROW][COL], int row, int col) {//行for (int i 0; i row; i){if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][2] ! )return board[i][1];}//列for (int j 0; j col; j){if (board[0][j] board[1][j] board[1][j] board[2][j] board[2][j] ! )return board[1][j];}//对角线if (board[0][0] board[1][1] board[1][1] board[2][2] board[2][2] ! 0){return board[1][1];}if (ItFull(board, row, col)){return Q;}return C; } 运行图 游戏优化  让电脑生成一个数的方式来实现一个电脑下棋的效果肯定是没有什么可玩性的等后面学习算法之后我们就加入一些算法将其变为一个棋艺高超的棋手了。 以上就是使用c语言写三子棋的全部内容啦如果上述内容对你有帮助的话不要忘记点上一个小小的赞和关注呦期待我们下次再见。
http://www.w-s-a.com/news/136981/

相关文章:

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