- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
井子游戏解题报告(B4)
实 验 报 告 课程名称 Windows高级软件开发 实验名称 井子游戏 实验时间 2012 年 12 月 12 日 指导单位 计算机学院软件工程系 指导教师 王子元 学生姓名 高阳阳 班级学号 学院(系) 计算机学院 专 业 软件工程 一、实验名称: 井子游戏 二、实验要求: 练习相应鼠标消息,练习鼠标的绘制,谁先连成三个在一条直线上谁就算赢. 三、实验目的:通过此次试验,可以让同学们更深入的了解windows的内部机制,熟悉API函数的应用,鼠标响应的机制等。 四、实验环境(设备) 安装有VC6.0或VC2008版本的PC机。 五、概要设计 在这里,我主要以文字语言叙述我的整体的思路,在详细的代码设计里,我会给出自己 具体是怎样实现操作的。 题目要求实现一个简单的井子游戏,主要是熟悉鼠标响应的操作。 首先,我需要绘制基本的棋盘及棋子,借鉴QQ小游戏的五子棋的棋盘模式,我以咖啡色为背景色,并以黑色细线绘制棋盘的九个格子,同时,我利用黑色画刷和白色画刷,分别绘制了代表黑方的黑棋和代表白方的白棋。 而在基本的棋盘和棋子设计思路完成后,就是具体的功能的实现。 在我们熟知的基本的棋类操作及功能中,主要的操作有:游戏开始的操作,悔棋操作,认输操作,重新开始的操作。主要的功能有每次游戏结束后相应的游戏进行的时间的显示。为了实现相应的操作及显示时间的功能,我利用绘图工具绘制了分别写有“重新开始” “认输” “悔棋”“开始”“时间”的bmp图片,并通过相应函数加载到窗口中,再通过鼠标相应,实现相应的功能。同时,我也利用资源文件,实现了“新游戏”“说明”“游戏指导”等基本的菜单功能。 六、详细设计 1、首先是对窗口显示区域中棋盘及相应按钮的基本的绘制。 在这里我利用GetSystemMetrics(SM_CXSCREEN)函数和GetSystemMetrics(SM_CYSCREEN)分别获取电脑屏幕的宽度和高度并将值分别赋给变量xSize,ySize,在利用CreatWindow()函数创建窗口时,我将窗口的起点坐标的x,y值分别赋值为(xSize-400)/2,(ySize-400)/2,并将窗口的宽度和高度分别设为600,400.同时在窗口风格上,我将窗口风格设置为WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX。 这样就使得每一次运行时,窗口都能显示在屏幕的中央,并且防止了因窗口最大化而造成的棋盘的不美观。 而为了绘制棋盘,我设置了变量DIVISIONS, 并利用宏定义将其值定义为3,在每次绘制棋盘前,我通过在WM_SIZE消息响应中利用变量cxBlock = LOWORD (lParam)/ (DIVISIONS+1) 获得棋盘中每个格子的宽度,cyBlock = HIWORD (lParam) / DIVISIONS 获得棋盘中每个格子的高度。在每次利用 WM_PAINT绘制棋盘时,我通过两层循环利用 Rectangle()函数绘制棋盘。Rectangle()函数是基本API函数,用来进行矩形的绘制。其第一个参数是当前设备语柄,其后四个参数被别为其绘制的矩形的左上角的x,y坐标和右下角的x,y坐标。 2,、然后是按钮的显示。 为了使界面看起来更加友好和人性化,同时也是避免因过多的按钮控键的利用而增加不必要的代码量,我选择了利用加载图片和鼠标点击相结合的功能实现模式。 我定义了hdc类型的数组hMemDC[5], BITMAP 类型的数组bitmap[5]以及HBITMAP类型的数组 hBitmap[5],分别用于获得内存设备语柄,载入位图和将位图选入目标设备。 菜单的显示。 菜单的显示相对比较简单,我是通过在资源文件里编写菜单部分的代码,并通过在WNDCLASS窗口类的对象中定义 wndclass.lpszMenuName =LMENU实现将MENU作为窗口的缺省菜单。 4、图标的绘制及显示 在图标的绘制中,我利用了VC6.0自带的功能。 在菜单栏中点击插入选项,然后在下拉菜单中点击资源,出现如下图所示的窗口 。双击Icon即可进行图标的绘制。 图标绘制好后,我在WNDCLASS窗口类的对象中通过wndclass.hIcon =LoadIcon(wndclass.hInstance,MAKEINTRESOURCE(IDI_ICON1));加载图标。 这样,基本的窗口显示就实现了。运行程序一个还没有实现功能的友好界面就出现了。如图: 然后就是具体功能的实现了。 为了实现具体的功能,有几个重要的变量在这里强调一下。 bool Huiqi =f
文档评论(0)