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

国外的服务器网站pycharm 做网站

国外的服务器网站,pycharm 做网站,荥阳网页设计,网站开发项目质量控制措施目录 引言#xff1a; 1.游戏规则#xff1a; 2.实现步骤#xff1a; 2.1实现菜单#xff1a; 2.2创建棋盘并初始化#xff1a; 2.3绘制棋盘#xff1a; 2.4玩家落子#xff1a; 2.5电脑落子#xff1a; 2.6判断胜负#xff1a; 3.源码#xff1a; 结语 1.游戏规则 2.实现步骤 2.1实现菜单 2.2创建棋盘并初始化 2.3绘制棋盘 2.4玩家落子 2.5电脑落子 2.6判断胜负 3.源码 结语 引言 《三子棋》是一款古老的民间传统游戏又被称为OOXX棋、黑白棋井字棋九宫棋等。游戏分为双方对战双方依次在九宫格棋盘上摆放棋子率先将自己的三个棋子连成一条线的一方则为胜利者。 1.游戏规则 三子棋是一种两人对战的游戏棋盘是一个3x3的方格矩阵。玩家和电脑轮流在空白的方格中落子一方执X另一方执O。当玩家在横向、纵向或对角线上连成三个相同的棋子时该玩家获胜反之电脑获胜。如果棋盘填满而无法连成三子游戏结束双方平局。 2.实现步骤 想要完整的实现三子棋代码我们首先必须在脑海里构建出一个大致的框架然后再去一步步实现它里边的细节。 实现进入游戏的菜单界面创建棋盘并初始化绘制棋盘打印棋盘玩家落子电脑落子判断胜负 2.1实现菜单 void menu() {printf(*******************\n);printf(**** 1.play ****\n);printf(**** 0.exit ****\n);printf(*******************\n); } 2.2创建棋盘并初始化 首先我们需要创建一个3x3的二维数组来表示棋盘但考虑到这样不灵活那么我们可以使用宏定义的方式来使我们的代码变得更加易于维护。 #define ROW 3//行 #define COL 3//列 void InitBoard(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] ;}} } 2.3绘制棋盘 最终呈现在玩家眼里的棋盘应该是由分割线和空位置组成的。 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 (j col - 1)printf(|);}printf(\n);//再打印分割行if (i row - 1){for (j 0; j col; j){printf(---);if (j col - 1)printf(|);}}printf(\n);} } 2.4玩家落子 当玩家下棋时他眼里的坐标只有123行而在计算机中数组是通过下标访问的是从0开始的所以在写代码时应该将玩家输入的坐标减去1才合适。还应该对玩家输入的坐标进行判断看有没有越界访问以及判断棋子有没有被占用。 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] X;break;}else{printf(坐标被占用请重新输入\n);}}elseprintf(坐标非法请重新输入\n);} } 2.5电脑落子 利用rand函数生成的随机数再模个行和列输入坐标实现落子电脑落子也要判断落子点是否被占用。 void ComputerMove(char board[ROW][COL], int row, int col) {printf(电脑下棋\n);int x 0;int y 0;while (1){x rand() % row;y rand() % col;if (board[x][y] ){board[x][y] O;break;}} } 2.6判断胜负 我们规定 玩家赢返回 X电脑赢返回 O平局返回 Q以上三种情况都不是即游戏继续返回 C //未分出胜负并且所有元素都不为空格则为平局 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; }//玩家赢 X //电脑赢 O //平局 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];}}//判断列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 (IsFull(board, row, col)){return Q;}return C; } 3.源码 为了让代码逻辑更清晰更易于调试我们可以将整个三子棋代码分为三个文件。 主函数main.c实现游戏的进入和退出功能。游戏实现函数game.c思考游戏的逻辑并构建函数通过调用一系列函数来实现整个游戏。游戏实现头文件game.h定义宏并声明游戏实现函数中的各个函数。 (main.c) #include game.h void menu() {printf(*******************\n);printf(**** 1.play ****\n);printf(**** 0.exit ****\n);printf(*******************\n); }void game() {char ret 0;char board[ROW][COL];//创建二位数组//开始的时候数组的内容应该全部是空格InitBoard(board, ROW, COL);//初始化棋盘 DisplayBoard(board, ROW, COL);//打印棋盘//下棋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 X){printf(玩家赢\n);}else if (ret O){printf(电脑赢\n);}else{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; } (game.c) #include game.hvoid InitBoard(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 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 (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] X;break;}else{printf(坐标被占用请重新输入\n);}}elseprintf(坐标非法请重新输入\n);} }void ComputerMove(char board[ROW][COL], int row, int col) {printf(电脑下棋\n);int x 0;int y 0;while (1){x rand() % row;y rand() % col;if (board[x][y] ){board[x][y] O;break;}} }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; }//玩家赢 返回X //电脑赢 返回O //平局 返回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];}}//判断列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 (IsFull(board, row, col)){return Q;}return C; } (game.h) #pragma once #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); 结语 通过本篇博客我们学习了如何使用C语言实现三子棋游戏。通过实现菜单、创建棋盘并初始化棋盘、绘制棋盘、玩家落子、电脑落子、判断胜负等步骤我们成功完成了这个有趣的项目。希望本篇博客对初学者和有一定编程经验的佬佬都能有所帮助最后祝大家玩得愉快呀
http://www.hkea.cn/news/14276434/

相关文章:

  • 苏州网站托管服务器网站打不开
  • vue做社区网站wordpress 模板挂马
  • 石家庄网站托管南充阆中网站建设
  • 预告网站正在建设中网上电商平台
  • 做网站开发 甲方提供资料wordpress博客主题 m1
  • 宜昌十堰网站建设哪家好外贸行业的现状分析及发展趋势
  • 福州公交集团网站建设建设规范文件在哪个网站发布
  • 郑州网站建设、网站开发属于知识产权吗
  • 访问失效链接 如何删除 网站维护安居客二手房出售信息
  • 广告设计网站哪个好业之峰家装公司地址
  • 网站备案要多少钱学动漫有什么出路
  • 三水网站开发查不到备案的网站
  • 浅谈博物馆网站建设意义网站开发编程入门学习
  • 免费申请域名的网站青岛市建设监理网站
  • 自己怎么做网站的聚合页面如何推广seo
  • 东莞企业网站建设营销重庆佳天下装饰公司电话
  • 地方网站系统网站开发 语言 架构 数据库
  • 学生作业 制作一个网站室内设计师证
  • 没网站域名可以做备案吗网站导航大全
  • 高端网站建设 案例西安注册公司在哪个网站
  • 道客网站建设推广小程序东莞大岭山建网站公司
  • 制作网站专业wordpress 添加音乐
  • xx汽车企业网站和信息化建设简单的wordpress模板
  • 铭万网站建设图库网站建设
  • 网站建设概述廉江市住房和城乡规划建设局网站
  • 北京网站建设 义创wordpress 对象存储
  • 上海手机网站开发价格凡科互动官网登陆
  • 吴中seo网站优化软件湖南人文科技学院是几本
  • 深圳创业补贴申请条件合肥seo推广排名
  • 建设网站属于什么费用吗网站设计 术语