- 1
- 0
- 约5.18千字
- 约 9页
- 2017-10-13 发布于江苏
- 举报
井子游戏解题报告(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
您可能关注的文档
- 乐乐健体育网创业申报表(朱琼).doc
- 乌市中学教学楼砌体结构设计.doc
- 乌拉盖管理区肉羊标准化项目实施方案.doc
- 九江4上半事业单位真题完整.doc
- 乌牛第一中学八级科学竞赛试题卷.doc
- 九局大厦大体积混凝土施工方案.doc
- 九级(下)语文教学目标.doc
- 九江市居住小区园林植物配置探.doc
- 九十八学度大学后一般医学训练计画.doc
- 九级上册现代文与名著阅读内容梳理.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2025高中英语教师课程标准考试模拟试卷及参考答案.docx VIP
- 第12课 绿意再生课件-赣美版(2024)初中美术七年级下册.pptx VIP
- 2025年青岛西海岸新区自主招生化学试题及答案.docx VIP
- 2024-2025学年江苏卫生健康职业学院单招《英语》考前冲刺练习(真题汇编)附答案详解.docx VIP
- GJ B 2446-2-2013 J30系列微矩形电连接器详细规范.pdf VIP
- 2025年内蒙古中考物理试卷及答案.docx VIP
- 第11课+传递绿色理念+课件+2024—2025学年赣美版(2024)+初中美术七年级下册.pptx VIP
- 2025年江苏卫生健康职业学院单招《数学》真题带答案详解(模拟题).docx VIP
- 2023年广东省中考道德与法治试卷真题及答案详解.pdf
- 相变的软模理论.ppt VIP
原创力文档

文档评论(0)