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

原型样网站网站改版完成

原型样网站,网站改版完成,网站开发工作室,哈尔滨开发公司哈喽盆友们#xff0c;今天带来《c语言》游戏中[三子棋boss]速通教程#xff01;我们的目标是一边编写博文#xff0c;一边快速用c语言实现三子棋游戏。准备好瓜子#xff0c;我们计时开始#xff01; 前期规划 在速通中#xff0c;我们必须要有清晰的前期规划#xf…哈喽盆友们今天带来《c语言》游戏中[三子棋boss]速通教程我们的目标是一边编写博文一边快速用c语言实现三子棋游戏。准备好瓜子我们计时开始 前期规划 在速通中我们必须要有清晰的前期规划我选用了一下框架 int main() {//棋盘return 0; } //初始UI //游玩显示模块 //用户操作模块 //胜利判定模块 //结算界面初始UI 初始UI是最为简单的部分之一我们可以在此快速输出为接下来的算法腾出时间。 我们使用printf函数直接实现可视化UI然后使用scanf读取用户的操作。 int num 0;printf(-----------------------\n);printf( 欢迎来到三子棋游戏\n);printf( # 1.开始游戏\n);printf( # 2.退出游戏\n);printf(-----------------------\n);printf(请输入操作序号);scanf_s(%d, num);使用switch函数进行分流并且添加上一个简单的输入检测 again:int num 0;printf(-----------------------\n);printf( 欢迎来到三子棋游戏\n);printf( # 1.开始游戏\n);printf( # 2.退出游戏\n);printf(-----------------------\n);printf(请输入操作序号);scanf_s(%d, num);switch (num) {case 1:return 1;case 2:return -1;default:system(cls);printf(#无效的操作符输入\n);goto again;//通过goto实现快速构建循环。}配合return函数的声明为int UI(); 在主函数中通过if语句引用UI并且实现退出选项。 UI函数到此为止。完整代码如下 #includestdio.h #includewindows.hint UI();int main() {//展示UIif (UI() -1)return 0;//棋盘return 0; }//初始UIint UI() {again:int num 0;printf(-----------------------\n);printf( 欢迎来到三子棋游戏\n);printf( # 1.开始游戏\n);printf( # 2.退出游戏\n);printf(-----------------------\n);printf(请输入操作序号);scanf_s(%d, num);switch (num) {case 1:return 1;case 2:return -1;default:system(cls);printf(#无效的操作符输入\n);goto again;}} //游玩显示模块 //用户操作模块 //胜利判定模块 //结算界面具体的效果如下 此时的时间为 棋盘 清理了小兵之后boss战才开始打响 我们需要构建三子棋的棋盘。 为了方便判定我将33的棋盘嵌入55的数组中。 //棋盘int chess[5][5];memset(chess, 0, sizeof(int) * 25);//棋盘初始化通过string.h头文件中memset函数我们完成了对棋盘的初始化。 游玩显示模块 此时boss血条已经下降了四分之一boss进入红温阶段。 我们需要建立一个函数输出游玩时的界面。 这是一个双人游戏所以棋盘有3种状态空白X棋子O棋子。 我用0代表空格用1代表X棋子用2代表O棋子。 建立print_under函数实现对单个格子的可视化 void print_under(int*arr ,int i, int j) {if (*(arr i * 3 j) 0)printf(·\t);else if (*(arr i * 3 j) 1)printf(X\t);else if (*(arr i * 3 j) 2)printf(O\t);else printf(Error\t);return; }通过vision函数实现棋盘整体的输出 //游玩显示模块 void vision(int* arr) {system(cls);printf(-----------------------\n);for (int i 1; i 4; i) {for (int j 1; j 4; j) {print_under(arr,i, j);}printf(\n);}printf(-----------------------);}效果如下 不过我在此时发现一个bug就是在UI函数中goto语句将变量定义包涵进去了这样会导致变量的重定义这吓了我一身冷汗急忙改了回来 //原式 int UI() {again:int num 0;//原来的定义放在again标签前printf(-----------------------\n);//改后 int UI() {int num 0;//转移到标签外面again:printf(-----------------------\n);很好此时我们成功完成了这个模块。 用时 用户操作模块 boss血量剩下50%boss进入第二阶段boss放大招了我们必须挺过这里 建立op函数引入user变量实现玩家1和玩家2的区分。 用scanf读取用户操作并且设立输入检查 void op(int* arr, int user) {int i, j;again1:if (user % 2 0) {printf(玩家1请输入落子位置);scanf_s(%d%d, i, j);if (i 4 i 0)if (j 4 j 0)if (*(arr 3 * i j) 0)*(arr 3 * i j) 1;else { printf(#无效的操作你似乎下在了已经有棋子的地方哦\n);goto again1; }else { printf(#无效的操作你似乎下到了界外诶\n);goto again1; }else { printf(#无效的操作你似乎下到了界外诶\n);goto again1; }}if (user % 2 1) {printf(玩家2请输入落子位置);scanf_s(%d%d, i, j);if (i 4 i 0)if (j 4 j 0)if (*(arr 3 * i j) 0)*(arr 3 * i j) 2;else { printf(#无效的操作你似乎下在了已经有棋子的地方哦\n);goto again1; }else {printf(#无效的操作你似乎下到了界外诶\n);goto again1; }else { printf(#无效的操作你似乎下到了界外诶\n);goto again1; }}} 此时我还对游玩显示模块进行了优化 void vision(int* arr) {system(cls);printf(----------------------------\n);printf(\t1\t2\t3\n);for (int i 1; i 4; i) {printf(%d\t, i);for (int j 1; j 4; j) {print_under(arr,i, j);}printf(\n);}printf(----------------------------\n);}此时的效果 此时我一共花费了以下时间显示问题真实的时间为图示的时间加上1个小时 胜利判定 此时boss血量见底让我们来一段漂亮的斩杀把 完成胜利判定模块 // 胜利判定模块 int victory(int* arr, int user) {int player (user % 2 0) ? 1 : 2;// 横向判定for (int i 1; i 4; i) {if (*(arr i * 3 1) player *(arr i * 3 2) player *(arr i * 3 3) player) {return player;}}// 纵向判定for (int j 1; j 4; j) {if (*(arr 1 * 3 j) player *(arr 2 * 3 j) player *(arr 3 * 3 j) player) {return player;}}// 左斜线判定if (*(arr 1 * 3 1) player *(arr 2 * 3 2) player *(arr 3 * 3 3) player) {return player;}// 右侧斜线判定if (*(arr 1 * 3 3) player *(arr 2 * 3 2) player *(arr 3 * 3 1) player) {return player;}return 0; } 经历了痛苦的改bug 我终于意识到原来数组只要3*3就好了TAT于是我默默的把标题的1命速通改为3命速通悲。 那么用时多久呢 没错两个半小时计时器忽略了小时计数 一位破防的靓仔把标题的1命速通改为3命慢通…… 嘿嘿 虽然速通失败但是博主其实很有实力的 关注博主总有一天我会证明给你看OvO~
http://www.hkea.cn/news/14576956/

相关文章:

  • 怎么做直播网站营口化工网站建设
  • jpress wordpress对比百度搜索引擎优化的推广计划
  • 权重高的博客网站手机网站开发环境搭建
  • 网站建设网络公司seo推广外包企业
  • 贵州省建设银行招聘网站非法网站怎么推广
  • 河北邢台做移动网站网站搜索引擎友好性分析
  • 做家教网站怎么样安卓app在线开发
  • 网站策划设计人工智能公司网站建设
  • php网站底部文件网站建设如何财务处理
  • 网站开发语言 aspwordpress 编辑图片无法显示
  • seo网站三种链接北京故宫网页设计
  • 马鞍山的网站建设公司哪家好怎么免费创造自己的网址
  • ps兼职做网站公司建设网站需要固定ip吗
  • 中国那些企业做网站做得好微信调用wordpress
  • 万界随机购物系统西安企业网站seo
  • 广西兴业县建设局网站阿里巴巴的电子商务网站建设
  • 个人网站做seo医药建设网站
  • 网站备案修改域名大庆免费网站建设公
  • 如何给企业做网站推广网盘 wordpress模板
  • page做网站国际网站浏览器
  • 成都网站建设单招网南通seo
  • 青海网站开发公司做直播网站软件有哪些软件下载
  • 曲阳网站建设十九冶成都建设有限公司网站
  • 公司做网站的优点网站开发的目的意义
  • 免费 建网站iis搭建网站教程win10
  • 购物网站哪个最便宜企业网站建设费用大约多少钱
  • 巩固网站访客量山东舜玉建设工程有限公司网站
  • 如何自己做网站赚钱合肥企业制作网站
  • 在招聘网站做销售怎么样做简图的网站
  • 南宁码科网站建设室内设计师优秀简介