《软件基础》大作业[001]

上传人:nt****6 文档编号:473902 上传时间:2017-03-08 格式:DOC 页数:12 大小:55.50KB
返回 下载 相关 举报
《软件基础》大作业[001]_第1页
第1页 / 共12页
《软件基础》大作业[001]_第2页
第2页 / 共12页
《软件基础》大作业[001]_第3页
第3页 / 共12页
《软件基础》大作业[001]_第4页
第4页 / 共12页
《软件基础》大作业[001]_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《《软件基础》大作业[001]》由会员分享,可在线阅读,更多相关《《软件基础》大作业[001](12页珍藏版)》请在金锄头文库上搜索。

1、 软件基础大作业项目名称:单副扑克双人双电脑升级游戏班级: 完成时间:日期:2004 年 11 月 30 日星期二单副扑克双人双电脑升级游戏需求分析目 录一、发背景 . 项目目标行环境考资料发环境与软件目任务书4三、体方案. 详细方案. 程进度试报告.10五、个人总结.11 开发背景本项目名称是单副扑克双人双电脑升级游戏本项目的提出者是卫颜俊老师,开发者是电气 210 游戏技术研发小组(本组成员)纵观世界,电脑的普及已是大势之所趋,不可抵挡。随着电脑技术的飞速发展。原来的普通扑克游戏,已经可以在电脑上轻松实现全真模拟。世界科技浪潮的冲击下,高级语言的开发技术已经席卷全球。使用高级语言编写程序已

2、经是每一个使用电脑的人的必修课了。是一种面向对象的可视化程序,是在 境下最强大、最流行的程序设计语言之一。本游戏的玩家只需了解基本的电脑操作知识,就可以轻松的玩。项目目标在电脑上实现升级游戏,使玩家有完全真实的打牌的感觉。运行环境硬件:00内存: 6498/2003 参考资料软件技术基础 冯博琴 主编 人民邮电出版社 +与面向对象程序设计教程 (第二版)吕军等编 高等教育出版社游戏开发技术路线开发软件+ 开发环境003 过民主讨论,结合每个成员对的掌握水平,确定了每个成员的工作。连飞峰:确定程序总体方案,研究确定程序的算法,做出游戏规则江 波:收集资料,初始化数据,实现叫主功能廉 哲:制定程序

3、界面,导入位图,实现位图显示总体方案本软件包括初始化数据、显示界面、鼠标操作、设计规则四个模块。四个模块通过可视化程序相互联系。初始化数据是基础,完成之后才可以实现显示界面,在界面上完成鼠标操作。最终规则设计完成整个游戏的开发。1)收集资源,选择合适的开发语言。2)导入图片等资源,设计程序的界面3)结合消息机制实现操作、设计算法,出牌规则最终形成游戏过程详细方案:1)准备扑克游戏所需的图片资源。在网上下载了一个拖拉机游戏程序,用 开这个程序,将其中的扑克牌面图片导出到一个文件夹。找一幅合适的背景图片,用 其上面添加必要的文字,包括:“本局花色” 、 “本局主值” 、 “得分方”、 “得分” ;

4、并且用 作游戏过程中要显示的花色、主值和当前得分方(电脑或人) ,制作程序的图标。选择 开发环境,新建一个文档视图程序,起名为)将上述资源导入程序。在 里装入图片:图片名称 数量背景图 1扑克牌背图 2玩家标识图 2当前花色图 1扑克图 54当前主值图 1叫主花色图 5在 先显示背景图,其次是当前花色图、玩家标识图、叫主花色图、扑克图、当前主值图是根据游戏的过程而动态显示的。修改版权,程序图标,加入菜单:游戏菜单开始、退出选项菜单速度选择、背景选择帮助菜单操作说明、版权说明在显示扑克牌之前要把扑克随机打乱,这是个难点。首先想到要用 函数,但直接用随机函数又不能抱证没有重复的扑克出现。这就要想办

5、法生成一个不重复的随机数列。思路是这样的:首先把 053 按顺序放到一个数组 a里,让后用随机函数产生一个 53 范围内的数,取以这个数作为下标的 a里面的一个数放入数组 b,同时 a的长度减一并移动里面的数据。如此重复下去,直到 a数组空为止,这样数组 b就是一个不重复的随机数列!为了防止前后两次的随机数列一样,另外加了一个;以系统时间产生随机数列,系统时间不一样,随机数列也不一样。新建一个扑克类,其中变量包括:克的花色) 、面值) 、 克对应的分数, 5 对应 5 分,10、K 对应 10 分,其他的对应 0 分) 、扑克的位图)定义扑克数列 4。给每张扑克赋初值。然后把 54 张扑克以这

6、个随机数列打乱。程序启动点开始后要把扑克一张一张发出来,而不能一下显示出来,所以不能用环来显示扑克牌。这是第二个难点,想到要用计时器结合以实现,在“开始”里设定一个计时器,有个变量 i 自加 1,i 每变化一次,扑克显示一张。直到 i=11 扑克发完。这样就可以控制扑克的发牌频率。在扑克发的过程中要能用鼠标叫主:由于扑克是在发票之前打乱的,可以计算出当局主值在扑克序列中的位置,如果出现了当前主值,就在花色条上显示为亮。这在 实现,当鼠标点击下亮的花色后还要给扑克重新赋值,主花色的扑克值加13,并且重新统计各个玩家各种花色的牌有多少张。程序的初始界面就做好了,启动程序后点开始可以发牌和叫主。3)

7、接着要实现鼠标的操作。点击左键选牌,点击右键发牌。以第一个人的操作为例说明。首先判断鼠标是否点在第一个人牌面的范围内 ,如果是,则接着判断点到哪张牌上面,一个运算就可得出当前所点的扑克。选择某个扑克后,这个扑克就弹起来。为了实现再点一下这个扑克就下去还得加一个 量。这个很容易可以实现。在鼠标点击后要加刷新扑克所在范围内的区域。选择好某张牌后要用点鼠标右键出牌。如果点击左键后,点击右键被激活(用一个 量实现) 。出牌后也要刷新扑克原来位置的区域和出牌后的新位置。鼠标的操作要结合 实现扑克牌的位置变化。第二个人的鼠标操作类似第一个人的。电脑的出牌:电脑是自动出牌的,不需要鼠标的操作。因此要把电脑的

8、出牌放到 ,并且要用一个 量控制他是否能出牌。比如规定人出完牌电脑才能接着出牌。电脑出牌同样也要结合 实现,并且要刷新新旧两个位置的区域。当桌面的的牌等于四张的时候需要开始新的一轮,要把上轮的牌刷掉。在每个玩家出牌的语句后面加一个计数,如果计数的值等于 4,则刷新桌面,同时计数归零。到此人和电脑就可以出牌了。加出牌的规则:以一个电脑为例说明,在“开始”和叫牌后都统计过各种花色的扑克有多少张。首先判断是否为新一轮的第一张牌,如果是新一轮的第一张牌,可以随便出,如果不是则需要判断上家所出的花色,如果自己有同样的花色则必须出同样花色,如果没有,则可以随便出一张。在出完牌后,要把这个花色牌的个数减一,

9、并且另这个牌的花色为免下次出这个牌。人出牌的规则在电脑基础上还要再加一些,判断说点的牌是否为非法牌,如果是新一轮的首次出牌,则可以随便出,如果上家已经出牌了,这要判断花色是否有,是否一致,如果是非法牌,则点击鼠标左键无效。如何判断一轮出牌的大小:如果是新一轮的第一个出牌,则赋当轮的花色为此扑克的花色。 桌面扑克定义为 ,每出一张牌则记录所出牌的花色和面值,如果所出牌的花色是当前轮的花色或者是主的花色才参与判断大小,判断出最大的玩家,下一轮就该这个玩家首先出牌。得分的纪录:初始化里默认电脑为得分方。每出一轮牌统计当轮的牌面分值,如果该轮得分方大了,则给得分方加分。得分的显示在 实现。升级:定义一

10、个变量 个玩家出一次牌 加一。在 判断,如果 8 则此局结束,如果得分方得够 40 分,则下局该本局的得分方做主,如果得分不够,本局的主方接着做主,级数升一。游戏的主要功能就实现了附加功能:选择扑克牌背,定义一个变量控制显示的图案。选择后刷新全局。选择速度,定义一个变量控制刷新的速度。工程进度1接受任务:9 月底2工程开始:10 月 4 号,建立项目,构思整体方案3前两周:计划完成资源收集处理,程序界面的完成。实际进度:完成计划任务。4三、四周:计划加入鼠标操作并能自动出牌。实际进度,鼠标操作的基本功能实现,没有取消选择的功能,自动出牌的一部分代码完成5 五、六周:计划完成自动出牌,实现大小的

11、判断。实际进度:按计划完成,并加入得分机制6 七周:完成大部分功能。主要是升级7 八周:加入附加菜单、测试并解决 牌功能完成后的测试:点开始后扑克可以正常显示,但没有发牌过程。解决方案:把显示扑克的 环改为用计时器控制,并实现了速度的调节。2)加入电脑自动出牌后的测试:电脑虽然可以自动出牌了,但第二轮的时候只要有一个人出牌,两个电脑就同时除牌。解决方案:加入桌面牌的个数记录,解决了 量不能及时更新的 )加入出牌判断大小后的测试:电脑出牌有时符合规则有时乱出。解决方案:检查程序的判断大小、电脑出牌等处的关键代码,发现一个逻辑错误电脑的扑克变量应该用判断大小以后的变量。更改后问及解决。4)程序点开

12、始后最小化最大化测试:游戏窗口只要一变化,桌面上的扑克就丢了。这个问题很头疼。解方案:当牌发完后,再增加一个 环把扑克显示一次。问题解决。5)出牌后最大化最小化 测试:只要桌面上出过牌 ,窗口变化后,以前出的牌就都显示出来了。解决方案:给每个扑克的 x、y 坐标都定义一个值,放到数组里。互不影响。出牌后改变这个扑克的坐标值,使其不再桌面范围内。问题解决。6)一些刷新的测试:比较多,也零碎。解决方案:回到源代码更改坐标的值。总体测试:在前面 解决基础上整体程序没出现过 设计的功能都正常。说明一下程序的不足之处:发牌的过程不够形象,电脑的智商比较低,没有处理底牌功能。有时候出牌频率感觉不太平均。个

13、人小结:连飞峰:经过这个小程序的编制,我对 了进一步熟悉。对文档试图程序的编写更熟悉了。掌握了定时器的使用,东得了如何控制一个变化的过程。编成思想有了提高,逻辑思维增强了,解决程序错误的能力也提高了。通过其中变量相互转化的编写对数据结构也有了更深的认识。感觉自己编的代码比较乱,没有使用很多类和函数。以后得加强程序代码的可读性,合理使用函数和类。江波: 通过这一个多月程序的编制,我们这组的项目也很好的完成了,序的初始化及叫主功能的实现,通过这次编程,不仅对理论知识有的进一步的理解并加强了实际的操作能力,及解决问题的能力。总的来说,这次软件开发的过程,对我们每个人来说,最大的收获是学习的过程,也增强了我们的团队合作精神,我们也认识道,没有最强的个人,只有最强的团队廉哲: 这次编程任务完美完成了。感觉这段时间里,辛苦,有,收获也有。要说最大的感受是什么,那就是以往的经历都不如这次给我的收获大。在这次编程的过程中。我们三个人充分的发挥民主,每个人都为这份程序付出了自己最大的心血。同时,我们也感受到了集体的力量是远大于个人的。团结是和谐的,愉快的。这次的合作经历增加了我们的友谊。同时,我也对 言有了进一步的了解,也增强了自己动手操作的能力。在以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号