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

江苏省高校品牌专业建设网站广州建筑集团有限公司品牌

江苏省高校品牌专业建设网站,广州建筑集团有限公司品牌,横向网站源码,网站建设的域名续费本文实例为大家共享了C语言实现三子棋游戏的详细代码#xff0c;供大家参考#xff0c;详细内容如下什么是多文件#xff1f;多数大型的工程的头文件和源文件非常多#xff0c;我们也不可能把所有的代码都写在同一个文件里#xff0c;这样也不方便代码的阅读与维护#x…本文实例为大家共享了C语言实现三子棋游戏的详细代码供大家参考详细内容如下什么是多文件多数大型的工程的头文件和源文件非常多我们也不可能把所有的代码都写在同一个文件里这样也不方便代码的阅读与维护通常都会根据不同的功能将代码分别书写到多个源文件与头文件中。游戏简介三子棋是个简单的双人游戏双方在3X3的棋盘上轮流落子当一条直线上出现三颗连续且相同的棋子时即获胜。此程序让玩家先落子电脑在棋盘上随机落子。游戏结束时显示胜负玩家可以选择是否继续玩游戏。代码实现chess.h通常我们会在头文件中写一些类型的定义、结构体定义、宏定义、函数声明、include共含等内容。#ifndef _CHESS_H_#define _CHESS_H_#include#include #include #include #include#pragma warning(disable:4996)#define ROW 3#define COL 3#define BLACK_PIECE X#define WHITE_PIECE Ovoid InitBoard(char board[ROW][COL], int row, int col);void ShowBoard(char board[ROW][COL], int row, int col);void PlayerMove(char board[ROW][COL], int row, int col);int ComputerMove(char board[ROW][COL], int row, int col);char CheckWin(char board[ROW][COL], int row, int col);#endifchess.c源文件中共含了chess.h这个头文件于是在这个chess.c文件中就可以使用这些在头文件中定义的内容可以使用自定义类型、自定义函数、标准输入输出函数等。include的路径问题当使用 来指定共含的头文件时编译器会从系统头文件库中进行查找而使用 来共含的头文件编译器将会从当前程序目录进行查找。在include时被共含文件可以是绝对路径也可以是相对路径总之只要头文件的存放路径与当前源文件的关系正确就行了。#include chess.h//打印棋盘void InitBoard(char board[][COL], int row, int col){for (int i 0; i row; i){for (int j 0; j col; j){board[i][j] ;}}}void ShowBoard(char board[][COL], int row, int col){printf( | 1 | 2 | 3 |\n);int i 0;for (; i row; i){printf(----------------\n);printf( %d | %c | %c | %c |\n, i 1, board[i][0], board[i][1], board[i][2]);}printf(----------------\n);}//玩家下棋void PlayerMove(char board[][COL], int row, int col){int x 0;int y 0;printf(\n);printf(----------玩家走----------\n);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] X;break;}else{printf(坐标被占用请重新版输入!\n);}}else{printf(坐标有误\n);}}}//电脑下棋int ComputerMove(char board[][COL], int row, int col){int x 0;int y 0;printf(\n);printf(----------电脑走----------\n);printf(\n);while (1){for (x 0; x 2; x){ //当玩家有两个子连成一条线时堵for (y 0; y 2; y){if (board[x][y] ){board[x][y] X;if (CheckWin(board, ROW, COL) X){board[x][y] O; //一旦落子就直接跳出while循环后面都一样Sleep(500);return 0;}else{board[x][y] ; //还原}}}}if (board[1][1] ){ //如果中间可以落子在中间落子board[1][1] O;Sleep(500);return 0;}else{ //如果四个角可以落子在四个角上落子。for (x 0; x 2; x 2){for (y 0; y 2; y 2){if (board[x][y] ){board[x][y] O;Sleep(500);return 0;}}}}x rand() % row; //四个边的中间随机落子0—2y rand() % col;if (board[x][y] ){board[x][y] O;Sleep(1000);break;}printf(\n);}}static 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;}//用户赢了 BLACK_PIECE X//电脑赢了 WHITE_PIECE O//平局, Q//继续, C//结果判断 玩家赢 or 电脑赢 or 平局char CheckWin(char board[ROW][COL], int row, int col){int i 0;for (; i row; i){//判断一行是否相同if (board[i][0] ! board[i][0] board[i][1] board[i][1] board[i][2]){return board[i][0];}}for (i 0; i col; i){//判断一列是否相同if (board[0][i] ! board[0][i] board[1][i] board[1][i] board[2][i]){return board[0][i];}}if (board[0][0] ! board[0][0] board[1][1] board[1][1] board[2][2]){return board[0][0];}if (board[0][2] ! board[0][2] board[1][1] board[1][1] board[2][0]){return board[1][1];}//平局if (IsFull(board, row, col) 1){return Q;}//继续return C;}main.c理清思路搭建好运行的框架。1.游戏菜单选择玩/不玩2.打印棋盘3.玩家落子4.打印棋盘5.电脑落子6.打印棋盘7.…8.显示胜负9.返回游戏菜单选择玩/不玩#include chess.hvoid Menu(){printf(\n);printf(----------三子棋游戏----------\n);printf(\n);printf(******************************\n);printf(* 1.Play *\n);printf(* 2.Exit *\n);printf(******************************\n);printf(\n);printf(Please Enter Select:);}void Game(){char board[ROW][COL] { 0 };//记录棋盘char ret 0;InitBoard(board, ROW, COL);ShowBoard(board, ROW, COL);//打印棋盘while (1){PlayerMove(board, ROW, COL);//玩家走ShowBoard(board, ROW, COL);//打印棋盘//判断输赢ret CheckWin(board, ROW, COL);if (ret ! C){break;}ComputerMove(board, ROW, COL);//电脑走ShowBoard(board, ROW, COL);//打印棋盘//判断输赢ret CheckWin(board, ROW, COL);if (ret ! C){break;}}if (ret X){printf(----------玩家赢!----------\n);}else if (ret O){printf(----------电脑赢!----------\n);}else if (ret Q){printf(----------平局!----------\n);}}int main(){int select 0;int quit 0;srand((unsigned int)time(NULL));while (!quit){Menu();scanf(%d, select);switch (select){case 1:Game();while (!select);break;case 2:printf(Game Over!\n);break;default:printf(Enter Error!\n);break;}}system(pause);return 0;}测试结果更多有趣的经典小游戏实现专题共享给大家C经典小游戏汇总python经典小游戏汇总python俄罗斯方块游戏集合JavaScript经典游戏 玩不停java经典小游戏汇总javascript经典小游戏汇总以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持乐购源码。
http://www.huolong8.cn/news/314477/

相关文章:

  • 石家庄兼职建站上海有几个区县
  • 网站的设计风格有哪些做网站 广州
  • 在百度上打广告找谁推广产品广州网站关键词优化推广
  • 国外网站打不开怎么解决做服装微商城网站
  • 怎样在赶集微网站做微招聘信息网站开发用什么软件
  • 营销型网站建设作用做系统正版win10系统下载网站
  • 织梦网站建设如何用云指做自己的网站
  • 响应式网站设计软件广告公司企业简介
  • 网站规划与设计案例wordpress外网访问没模版
  • 如何查询一个网站是否备案wordpress网站阿里云备案号
  • 做网站的不足 心得营销推广费用方案
  • 天长市做网站怎么进入wordpress修改界面
  • 做网站的钱叫什么科目尚海整装电话号码
  • 企业网站规划方案湖南app开发
  • 专业柳州网站建设价格wordpress安卓源码
  • wordpress子站搭建虹口门户网站建设
  • pc 手机网站源码怎么看网站用哪个系统做的
  • 上海迈诺网站建设wordpress注册登录修改
  • 上海高端点网站建设制作公司有哪些?|网站建设网站建设申请书
  • 网页开发公司网站wordpress 图片整理
  • 制作网站付费软件双流县规划建设局网站
  • 网站建设服务费是否无形资产怎么把网站上传到域名
  • 淘宝客网站搭建网站建设完成外网无法访问
  • 网站策划的重要性wordpress如何采集文章
  • 制作网站学什么新浪云 wordpress
  • phpcms仿行业网站圣都装饰
  • 营销型网站建设哪里有WordPress禁用自适应
  • 网站建设合同甲乙双方怎么确定wordpress 只更鸟翻页设置
  • 网站开发工资有多少重庆特种作业证件查询
  • 济南网站建设询问臻动传媒大气好看的网站