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

英文手表网站wordpress 主题包

英文手表网站,wordpress 主题包,用dw怎么做登录页面的网站,wordpress 安装不了目录 思路 框架​编辑 读取操作 数据操作 绘制画面 游戏的数据结构 用二维数组来模拟棋盘格 赢的情况 平局情况 Code 代码细节部分 #xff08;1#xff09;初始化棋盘格 #xff08;2#xff09; 初始化棋子类型​编辑 事件处理部分 落子 框架内代码的完善 数据处…目录 思路 框架​编辑 读取操作 数据操作 绘制画面 游戏的数据结构 用二维数组来模拟棋盘格 赢的情况 平局情况 Code 代码细节部分 1初始化棋盘格 2 初始化棋子类型​编辑 事件处理部分  落子 框架内代码的完善 数据处理框架代码的完善 检查是否赢了 函数 绘制图形框架代码的完善 绘制棋盘网格函数 绘制棋子 函数 绘制提示信息  函数 DBUG 优化 代码托管 三子棋/Test.cpp · 孙鹏宇/孙鹏宇的第一个仓库 - 码云 - 开源中国 (gitee.com) 思路 我们遵循先框架后思路得的思路 框架 首先是读取操作: 读取操作 读取鼠标单击之后的信息 接下来是数据操作: 数据操作 我们只需要对游戏胜负进行判断 胜的清空:一条线三颗棋子都一样 平的情况:棋格全部填满还未分出胜负。 游戏结束时使用弹出告诉玩家游戏结果,然后退出主循环。 绘制画面 我们使用line函数绘制一个3*3的棋盘格: x玩家时使用line函数对角线画两个线轮到O玩家落子时时使用cirlce函数画个圆: 游戏的数据结构 用二维数组来模拟棋盘格 棋盘内容为字符串初始化为‘- 赢的情况 我们对赢得情况进行穷举: 一共有八种 平局情况 如果9个网格均被棋子填满却没有获胜的一方那么就是平局 Code 写代码同样遵循先框架再细节的原则: 我们先把上面的内容转化为代码 框架: #includeeasyx.h #includeiostream using namespace std;//处理数据// //检测玩家是否赢了 bool Checkwin(char str) {} //检测是否平局 bool Checkavg(char str) {}//绘制图像 // //绘制棋盘格 void DrawBorad() {} //绘制棋子 void DrawPiece() {} //绘制提示信息 void DrawTipText() {} int main() {initgraph(60,600);//绘制窗口bool flag true;//退出主循环的标识列ExMessage msg;//存储消息BeginBatchDraw();//渲染缓冲区//主循环while (flag){//读取操作while(peekmessage(msg))//读取消息{//读取到的细节如何处理稍息再说}cleardevice();//清屏//重新绘图DrawBorad();DrawPiece();DrawTipText();FlushBatchDraw();//刷新缓冲区}EndBatchDraw();//刷新缓冲区return 0; } 代码细节部分 如果 x玩家赢了我们可以用MessageBox()函数弹出了一个框显示x玩家赢了: 代码如下: 同样的O玩家获胜的情况和平局的情况也写一下: 设置两个全局 1初始化棋盘格 2 初始化棋子类型 事件处理部分  用msg来表示鼠标的位置: 怎么把鼠标的位置映射到数组下标呢我们绘制的棋盘格的大小为600x600分成三等份之后每个格子的大小为200x200 所以我们求横坐标可以有这样一个公式:代码为: 落子 1首先判断是否可以落子 (2)  落完子之后要切换下次落子的棋子类型 框架内代码的完善 把之前只写了框架没写实现的函数补全: 数据处理框架代码的完善 检查是否赢了 函数 按照我们之前列的八种赢的情况写 Checkavg()函数 用两个for循环来遍历棋盘格中每一个元素如果还有空格没有落子就返回false代表没有平局最后如果没有返回false说明平局了返回true: 绘制图形框架代码的完善 绘制棋盘网格函数 棋盘格的网格其实就是四条线: 我们可以通过图形绘制相关函数-line函数来绘制: 首先棋盘格总大小是600x600每个小格子是200x200: 绘制棋子 函数 1绘制棋子首先用二维数组遍历一下棋盘如果要落的棋子是O那就在棋格中间画圆。 2棋盘中心的求法一个小格子长宽200x200中心坐标为左上角坐标100 3画圆的方法 4当棋子为x时就按小格子对角线画两条线 5对角线点求法:如下图6画对角线的方法: 7如果不是O或者那就什么都不用做。 8代码: 绘制提示信息  函数 适用settextcolor函数将提示文本设高亮: outtextxy()函数用来在窗口指定位置输出提示信息 code: DBUG 这样三子棋基本功能就做好了但是有bug 1闪退 2闪退过程中可以看见我们画的棋盘发现棋盘网格线条错位 原因 1绘制棋盘时手误 2闪退的原因是我们在判断是否平局用的else没设条件此刻没输值就直接平局了只要不是O‘x’就直接平局了这显示不是我们要的我们想要的是棋盘满了还没赢才平局因此我们应该引用checkagv函数。 修改 修改完之后运行 发现有两个错误 1鼠标左键不用点击就可以落子 2落子位置和我们鼠标落点位置不配置 鼠标左键不用点击就可以落子的原因 应该选择ExMessage的WM_LBUTTONDOWN表实列我选成第一个了: 落子位置不配置的原因: 1切换棋子类型应该包含在可以落子的前提下如果不能落子也就没必要切换棋子类型了: 修改之后 (2) 二维数组是按照横纵坐标系的 但是我们的窗口确是纵横坐标系: 错误 修改: 交互功能正常但是渲染功能有问题最后一颗棋子不会显示: 原因: 我们把重新绘图放在判断胜负的后面当玩家赢了的时候会执行flagfale此时会执行重新绘图。 当再次循环时flag因为false所以退出循环。也就是绘图只执行了一次一闪而过。 我们把绘图放到胜负判断之前,这样即便是不再进入循环也是最后一次落子的下一次绘图不会显示而最后一次落子的绘图会显示在当前窗口。 正常运行: 优化 当我们的程序跑起来之后查看任务管理器发现我们的程序消耗内存空间特别大; 这是因为计算机在执行while循环时特别快我们编写的主循环在顷刻间已经被执行了成千上万次。 因此为了不避免的销毁我们可以使用sleep函数使循环休眠几毫秒。 我们可以在主循环开头写一个开始数获取GetTickCount(),主循环结束位置写一个结尾数获取GetTickCount()函数。  通过计算 二者落差  可以得到  该主循环实际运行所需要的 毫秒数简称实需数。 如果我们想在60帧率下刷新那么就让1000/601616为我们的期望值。 如果   实需数   期望值,说明不用休眠。 否则实需数-期望值 休眠数。 代码托管 三子棋/Test.cpp · 孙鹏宇/孙鹏宇的第一个仓库 - 码云 - 开源中国 (gitee.com)
http://www.hkea.cn/news/14521213/

相关文章:

  • 浙江专业网站seo国外优秀网站设计欣赏
  • 在网站上做承诺网站运营设计
  • 网站开发环境与工具视频营销的策略与方法
  • 企业网站设计的基本内容包括哪些装饰设计公司网站
  • 网站建设基本情况网站如何做站内站
  • 网站平台建设策划网站底部 设计
  • 电影网站做淘宝联盟seo技术培训广东
  • 仲恺做网站如何看是否安装好wordpress
  • 网站多少钱一米单位建立一个官网多少钱
  • 免费网站app哪个好济南本地网站建设公司
  • 做网站用什么框架好做软件公司网站
  • 做网站起名字wordpress数据库修改主题
  • asp.net做购物网站网站开发预算编制
  • 广州优化网站关键词小学生免费编程课
  • 四海网络网站建设泉港区规划建设局网站
  • 网站设计方案案例最专业微网站多少钱
  • 模板建站平台公司简历模板
  • 十个无聊又有趣的网站全国知名vi设计公司
  • 中山网站制作系统四川住房建设网站
  • 网站公司企业宗旨wordpress开发人力资源
  • 南通网站制作外包360广告投放平台
  • 遵义网站设计制作网站网站首页点击中文英文链接 翻译成对应的语言 怎么做
  • 苏州自助建站平台wordpress 抓取时间长
  • 网站开发范本怎么做一个公司网站
  • 云南电信网站备案wordpress 建站 linux
  • 长春做网站的公司哪家好如何做泛解析网站
  • 镇江市建设局网站seo网络优化是做什么的
  • 网站建设公司营销方案网站设计开题报告范文
  • 网站是用什么做的wordpress图片文件目录
  • 网站建设的软件有哪些ppt免费制作网站