Windows下基于C++ QT的德州扑克游戏.doc
《Windows下基于C++ QT的德州扑克游戏.doc》由会员分享,可在线阅读,更多相关《Windows下基于C++ QT的德州扑克游戏.doc(17页珍藏版)》请在三一办公上搜索。
1、吉林大学珠海学院毕业设计(论文)Windows下基于C+ QT的德州扑克游戏Texas Poker Game Based Windows and C+ QT完成日期 2013年 4月 15 日吉林大学珠海学院本科毕业论文(设计)开题报告摘要随着嵌入式系统、图形用户界面(GUI)的广泛使用,QT越来越多人使用。QT作为一种先进的跨平台语言,他有广泛的平台支持,可以在Windows、Linux以及Symbian和众多的嵌入式场合发挥作用,并且他是一种动态库的形式,占用的资源非常少,开放平台,使用他进行GUI开发是非常合适的。本程序采用QT Creator集成环境进行编写,使用QT应用程序开发框架,
2、运用VS2010的工具链。实现的程序分为两个模块,第一部分是本地游戏,使用电脑模拟不同数量的人进行与人对战游戏,第二部分是网络游戏,其中一个玩家建立服务器主机,其他玩家可以加入到主机中进行对战,实现了不同距离玩家的较量。关键词:GUI; QT;跨平台;网络对战游戏;德州扑克AbstractAs the embedded system and GUI(Graphical User Interface) are widely used,QT is more and more famouse.QT is a cross-platform language that embedded in Windo
3、ws, Linwx and Symbian. As well as, QT is good at GUI developing as using less resource and supporting dynamic library,open platform.The system is developed by VS2010 and QT frame in QT Creator platform.It is consist of two modules, one is local game module,which simulating game between computer and
4、player; and the another is network game module,which providing game between localhost and player who connecting to it. The system implements multi-player to play game.Key words:GUI;QT; Cross-platform; Network Game; Texas Holdem目录1 绪论11.1 研究背景 11.2 Qt 概述 11.2.1 QT语言的特性11.2.2 QT的优势11.2.3 QT的组成21.3 数据库
5、简介 21.4 开发环境简介 21.4.1 QT Creator概述31.4.2 MyEclipse概述31.4.3 JSP概述31.4.4 Boost概述31.4.5 SDL及SDL_mixer概述42 需求分析52.1 可行性分析 52.1.1 德州扑克玩法介绍52.1.2 程序可行性62.2 需求分析 62.3 系统功能分析图 73 总体设计83.1 系统结构图 83.2 总体功能设计 83.3 数据库设计 94 设计思想与实现104.1 设计思想 104.2 具体实现部分 104.2.1 使用Qt进行GUI开发的一般流程104.2.2 新建工程114.2.3 程序的类图部分144.3
6、程序调试 174.3.1 QT Creator调试器174.3.2 QT调试方法185 系统测试与运行205.1 系统运行环境 205.2 运行结果 206 结束语22参考文献23附录一核心代码24致谢341 绪论1.1 研究背景QT是一个跨平台的C+应用程序开发框架,我们也可以称之为C+部件的工具箱。QT被用在KDE桌面环境、Google Earth等的开发中。它是诺基亚(Nokia)的QT Development works部门的产品。QT的应用领域也比较广泛,很多出名的例子都是使用QT进行开发的,例如:Google地球、Xconfig、SMPlayer等等1。QT具有下列优点:A、面向对
7、象。B、优良的跨平台特性。C、支持2D/3D图形渲染,支持OpenGLD、大量的开发文档。E、丰富的APIF、XML支持。实现本程序,一方面,可以更好的理解QT的跨平台特性、加深对C+的学习、学习运用C+的扩展类库等库文件的加入,另一方面,可以加强对QT知识的传播,使越来越多的人来了解QT,学习QT开发,完善QT。1.2 Qt 概述QT是一个可以用在多平台的C+图形用户界面应用程序开发框架,提供了一组更容易理解的GUI类,他的运行速度更快,另外QT特有的信号跟槽特性使他更容易使用。QT面向对象而且容易被扩展, 允许真正地进行组件编程。QT具备有与平台无关、优化内存和资源的利用、代码开源、模块化
8、可剪裁,使QT越来越受大家的欢迎。1.2.1 QT语言的特性QT是Trolltech公司的一款用于图形开发编程的产品,采用完全的面向对象来进行图形应用程序的设计开发,实现允许真正意义上的组件编程,QT可以说是一个全面的C+应用程序开发框架,包含了一个类库,和用于跨平台开发及国际化的开发工具,可以开发出跨平台客户端、高性能、服务器端部分的应用程序。1.2.2 QT的优势作为嵌入式图形界面开发工具,QT优势很多,比如:A.支持平台广泛B.封装多C.面向对象D.构件支持E.友好的联机帮助F.便利性G.用户自定义H.国际化I.丰富的API函数J.可用户化外观K.完整的一套组件工具1.2.3 QT的组成
9、QT是一个完整的C+应用程序开发框架。其中里面包含一个类库和应用于跨平台开发的国际化工具。主要组成部分是:A.QT类库B.信号/槽机制C. QT Designer图形设计器D. Qmake工具1.3 数据库简介数据库SQLite是一款微型数据库,他遵守ACID的关联式数据库管理系统,设计目标是嵌入式的,它占用资源非常的低,使用起来简单方便,在很多的嵌入式设备中,可能只需要几百K的内存就已经足够了。另外,他支持的操作系统比较多,几种开发语言能结合在一起,速度快,效率高2。1.4 开发环境简介本程序采用的开发环境:* qt-creator-win-opensource-2.6.2* qt-win-
10、opensource-4.8.4-vs2010* Visual Studio2010网页注册方面:* JDK 1.6* MyEclipse* JSP* SQLite* Tomcat 6.0涉及到的其他开发技术:* Boost* SDL* SDL_mixer运行环境:建议能够在Windows 98以上的操作系统环境下进行运行1.4.1 QT Creator概述Qt Creator是跨平台的Qt IDE,Qt Creator是Qt被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。这个IDE 能够跨不同平台进行运行,支持的系统部分有有Linux(32 位及64位)、Windows以及
11、Mac OS X 等等。Qt Creator的设计目标是使开发能够利用Qt这个应用程序框架能使我们更加快速的完成开发任务。Qt Creator具有项目生成向导、浏览文件及类的工具、Qt Linguist、Qt Assistant、高级的 C+ 代码编辑器、集成了 Qt Designer、图形化的 GDB 调试前端、集成 qmake 构建工具等等组成部分3。1.4.2 MyEclipse概述MyEclipse企业级工作平台(简称MyEclipse)是对EclipseIDE的扩展,利用它,我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Jav
12、aEE集成开发环境,包括了完备的编码、调试、测试和发布功能4。1.4.3 JSP概述JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段用来重新定向网页、操纵数据库等功能,可以为我们实现建立动态网站所需要的所有功能。1.4.4 Boost概述Boost库是为C+语言标准库的开发提供了扩展部分的一些C+程序库。Boost库由Boost社区组织开发、维护的库。目的是为了给C+程序员们提供免费、可移植的、同行审查的程序库。Boost库可以与C+标准
13、库完美结合工作,并且为其提供扩展部分功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许的并且得到鼓励5。1.4.5 SDL及SDL_mixer概述SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言进行编写。在SDL里面提供了很多控制声音、输入输出、图像的函数,让开发者们只需要运用相同或者是相似的部分代码就可以开发得出跨多个平台系统的应用软件。现在,SDL多用于模拟器、媒体播放器、开发游戏等多媒体应用领域。而且SDL_mixer是SDL的外部扩展类库,能够实现mp3的播放等功能。2 需求分析2
14、.1 可行性分析2.1.1 德州扑克玩法介绍德州扑克的游戏规则:10个人桌(full table)有限注德州扑克游戏中,每张桌子最多可以坐下10位游戏玩家。首先给每个玩家各自发两张底牌(又称之为“窝牌”,或者“起手牌”),只有玩家自己本人能看到自己的底牌。此后过程中,牌桌上共会出现5张公共牌(Community Cards)。第二轮进行下注,翻出3张公共牌,称之为“翻牌”( Flop,也叫做“悬牌”)。再下一轮,出现第4张桌面公共牌,称为“转牌”(Turn)。最后的一轮中,出现第5张公共牌,叫做“河牌”(River)。每位玩家都能使用这5张公共牌。底牌和公共牌的组合如果确定胜负玩家呢?玩家的手
15、里2张底牌和桌面上的5张公共牌加在一起,一共7张牌,从其中选出5张牌,组合成一副最好的牌面,成牌最大者也就是赢得所有赌注的玩家。庄家(DEALER,又称“按钮”)庄家的座位下面有一个“D”作为标志。所有玩家都以顺时针的方向,依次轮流的坐庄,从翻牌圈的回合开始,庄家在每一轮中都是最后一个出牌的。盲注(BLINDS)每一次游戏中,庄家左边方向的两位玩家,先下固定的初始下注,我们称为小盲注(Small Blinds)与大盲注(Big Blinds)。大盲注的数额,取决于本桌游戏的限额多少。小盲注通常都是大盲注的一半。例如,在限注为$4/$8的桌上,大盲注为$8,小盲注为$4。四轮下注:德州扑克游戏进
16、行中一共具有四轮游戏投注圈。分别称为:1)翻牌前(PREFLOP,也称之为“前翻牌圈”):拿到两张底牌,不能看到公共牌。2)翻牌圈(FLOP):公共牌翻出3张牌3)转牌圈(TURN):公共牌翻出第4张牌4)河牌圈(RIVER):公共牌翻出第5张,也就是最后一张公共牌玩家的出牌选择有限注德州扑克游戏中,玩家可以选择过牌(Check)、下注(Bet)、跟注(Call)、加注(Raise)或弃牌(Fold)。每轮最多能加注3次。下注(Bet) 现在你打算投注,之前无人投注观望(Check) - 现在你不打算投注,之前无人投注跟注(Call) 现在有人投注,你也下注同样数目金额加注(Raise) 现在
17、有人下注,你在他的基础上加倍下注弃牌(Fold) 现在有人下注或加注,但你不想再玩,选择放弃了赢得牌局或平分四轮下注游戏结束之后,在留下的玩家当中,组合出5张最大牌的一方玩家获得胜出,赢得所有的筹码。如果两人或多个人组合出相同的牌并且牌面是比其他玩家大的,则平分(SPLIT)底池的所有筹码6。2.1.2 程序可行性德州扑克游戏的实现首先是随机从52张牌中抽取五张牌作为公共牌,之后每个玩家分发两张手牌。虚拟的玩家按照手牌的优劣进行押盲注或者网络中的玩家进行押盲注,当不再有人进行加注时翻开三张牌结束第一回合。接下来继续押注或者弃牌,直到没人加注,翻开第四张牌结束第二回合。继续进行押注或者弃牌,一直
18、到没人加注为止结束第三回合部分,当翻开第五张牌时结束第四回合。翻开所有玩家的手牌,从玩家手牌与公共牌中取出五张牌得出最大的组合,最后比较出所有玩家的五张牌,得到胜出的那个玩家,游戏结束。此功能的本地虚拟玩家或者通过网络传输玩家信息及动作是完全可以实现的。并且程序的运行只需要一个简单的网页注册服务器,客户端可以建立主机,实现其他客户端加入主机,用监听的程序进行编写,因此认为本程序可行。2.2 需求分析德州扑克游戏程序目前只支持windows的操作系统,其他平台的操作系统支持没有编写完。网络游戏部分要求要有个注册的网页服务器,当用户点击注册时弹出网页进行注册,把信息加入数据库中,注册完之后。在客户
19、端点击登录进行账号验证,只有在数据库中的账号与正确的密码才能通过验证。其他部分没有具体要求根据系统分析,德州扑克游戏的要求如下:A. 系统需求分析:a. 能在本地与不同数量的电脑玩家进行游戏;b. 能通过局域网与真实的其他玩家进行游戏;c. 本地游戏时可以控制玩家的出牌速度;d. 游戏可以设置玩家的初始金钱数,及小盲注,玩家的人数也可以设置,最大的人数是七人;e. 主机在建立游戏时可以提出加入的游戏玩家。f. 游戏界面可以根据系统的语言进行切换。B. 系统性能要求:a. 系统安全、可靠;b. 使用软件工程的设计思想,控制系统运行时可能会存在的所有突发情况。2.3 系统功能分析图下图是列出德州扑
20、克游戏的功能流程图:德州扑克程序普通用户会员用户登录用户注册进入网络游戏搜索出网络中存在的主机进行本地游戏加入网络主机中进行游戏创建网络主机网页注册开始网络游戏等待主机开始游戏进行网络游戏图2-1 系统功能分析图3 总体设计3.1 系统结构图德州扑克游戏的系统设计结构图:德州扑克游戏系统加入网络游戏创建网络游戏创建网络游戏进行本地游戏图3-1 系统结构图3.2 总体功能设计A.本地游戏部分:实现与电脑玩家进行游戏,可以设置加入到游戏中的玩家的人数,可以控制金钱数目、小盲注、以及游戏中玩家出手的速度等等。B登录部分:实现账号的注册,加入到数据库。当忘记密码时,可以通过验证注册时的问题答案找回密码
21、。在登录时只有正确的账号与密码才能通过验证登录。C.网络游戏部分:可以创建网络主机,设置主机处于监听状态。其他玩家可以通过网络加入到网络主机,处于等待状态。等待的过程中主机可以踢出处于等待的客户端玩家,当玩家主机点击开始游戏时,实现玩家能够在网络中进行游戏的状态。D.语言支持部分:当系统切换语言的时候,程序可以通过重启改变游戏界面的语言文字。本程序暂时支持中文与英文。3.3 数据库设计系统数据很简单,只是账号与用户名、问题与答案就可以。表3-1 数据库设计图4 设计思想与实现整个德州扑克游戏程序都是我独立完成的,下面详细的介绍下我的设计思想及具体的实现内容。4.1 设计思想我最初想实现的德州扑
22、克程序是,本地游戏方面,可以进行单机游戏,设置电脑玩家的一些信息等等,能控制电脑玩家的游戏速度,能播放游戏中的动作声音,这部分功能要用到SDL的库。网络部分,可以实现程序开始界面注册连接按钮,登录到网页的注册页面,实现注册账号功能。通过注册之后,回到程序开始界面,选择网络游戏,进入登录界面,只有正确的账号才能通过认证,玩家才能够顺利的进入网络游戏,没有账号密码的玩家是只能进行本地游戏的。登录部分通过QT程序连接到数据库进行效验。将来的发展方向是能读取游戏的数据,金钱、头像、名字等等数据可以存放在数据库中,通过登录取出数据,然后进行游戏,当然也可以设置玩家称号等等吸引玩家的部分。平台方面我想实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows下基于C+ QT的德州扑克游戏 Windows 基于 C+ QT 德州 扑克 游戏
链接地址:https://www.31ppt.com/p-2385032.html