- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java斗地主
数据结构
大型程序设计
题目:斗地主
学号:2008112225
对此感兴趣的朋友,请与我交流,邮箱763159993@,要源代码的请与我联系
需求分析
1.刚开始运行的时候,呈现给用户的是一个登录注册画面(主要是方便以后把它改装成网游)
2.登录后有准备的画面,提示一些信息,有开始按钮,开始按钮开始发牌,退出按钮,
可以重新退回到登录界面。这个界面里有有两个菜单,游戏和关于,游戏包括菜单项开始,
退出,游戏难度设定,声音关和闭,查看历史战线,关于包括菜单项玩法,版权。
3.点击开始按钮后,开始发牌,发完后,要随机选地主,地主选定后就开始出牌,一个人,两个电脑。人通过按钮进行选择,出牌,过牌。任何一方(地主方和非地主方)胜利都将结束游戏,并通过一对话框显示本次登录的得失分情况和询问用户是否继续,继续的话就发牌,否的话就直接退出到登录界面。
流程图
概要分析
1.数据库设计:
用户信息表:字段名:用户名,密码,用户分数
用户历史记录表:字段名:用户名,登录次数,每次登录得分情况
2.类的概要设计
常量类:定义一些常量,以便修改及维护
数据库连接类:加载数据库及数据库的一些操作
用户类:记录用户的一些信息
登录注册画面类:显示登录画面
扑克类:记录每张扑克的信息
规则类:定义斗地主规则
随机发牌类:生成随机牌,并把牌分成四个数组
每个人的牌类:记录用户和电脑牌的一些共性
用户牌类:记录用户的牌及一些操作
电脑牌类:记录电脑的牌及一些操作
剩余牌及出牌类:记录每个人每次出的牌及显示
菜单类:每个画面的菜单,及菜单的一些事件响应
准备画面类:显示准备画面
打牌的画面类:显示打牌的画面
地主按钮面板类:控制地主按钮的显示及按钮的事件响应
对话框类:为一些对话框的共性
关于对话框:关于软件的一些信息
规则对话框:显示斗地主的规则信息
本次登录后的得分情况对话框类:显示本次登录的得分情况,并提示是否继续
历史战绩界面类:显示以往十次的登录画面
声音类:加载声音及控制声音的播放
电脑选底牌的权值判定:当电脑有权拿地主时,判断是否要
电脑出牌类:电脑三种算法出牌的共性,定义一个接口
简单出牌类:简单的让电脑出牌
中等难度出牌类:让电脑有一定的记忆能力
难的出牌类:让电脑具备点人工智能的出牌
3.类之间的关系:
上面的类都是一些基础类,下面的数据成员基本都是上面来的。
4.几个基础类的基本设计
Card类:描述一张牌
数据成员:
Int type 牌的花色
Int number 牌的值
String value 牌上的字符串
String path 牌的画面路径
Int width 牌的宽度
Int height 牌的高度
Int xPos,yPos 牌的坐标
成员函数:
Int getHeight() 得到牌的高度
Int getWidth() 得到牌的宽度
Int getNumber() 得到牌的值
String getPath() 得到牌画面的路径
String setPath() 设置牌的路径
String getValue() 得到牌上的字符
Int getX() 得到牌画的横坐标
Int getY() 得到牌画的纵坐标
Int getType() 得到牌的花色
initCard() 初始化牌面的路径
int toCompare() 两个牌之间大小的比较
void toNumber() 通过牌面字符,转化成权值
Regular类:里面没有数据成员,所以方法都设成静态的。
13种牌型函数(除单张牌没写):
Int flyWithNo(Card[]) 飞机不带牌
Int fourWithTwo(Card[]) 四带二
Boolean isBomb(Card[]) 炸弹
Boolean isDouble(Card[]) 对子
Boolean isDoubleKing(Card[]) 对王
Boolean isStraight(Card[]) 顺子
Boolean isThree(Card[]) 三个
Boolean threeOrMoreDouble(Card[]) 三个以上的对子
Boolean threeWidthOne(Card[]) 三带一
Int threeWithTwo(Card[]) 三带二
Boolean twoThreeWithOne(Card[]) 两个三个带两单张
Boolean twoThreeWithTwo(Card[]) 两个三个带两对
Void sortCardByNumber(Card[]) 对牌按照牌值按小到大牌序,一些牌型都是经过牌序之后才判断的
Boolean isBig(Card[],Card[]) 前家和本家出的牌进行比较大小
您可能关注的文档
最近下载
- 8.1 坚守公平(课件)统编版《道德与法治》八年级上册(新教材).pptx VIP
- CSAE 313-2023 车路云一体化系统数据分类分级指南 -发布稿.pdf VIP
- 现代项目管理(第二版)戴大双 6.1项目招标举例.ppt VIP
- 部编版道德与法治九年级上册第三单元《文明与家园》作业设计.docx
- 现代项目管理(第二版)戴大双 9.项目冲突管理.ppt VIP
- 2025中级经济师《经济基础知识》三色笔记.pdf VIP
- 吊装应急预案.docx VIP
- 现代项目管理(第二版)戴大双 8.项目沟通管理.ppt VIP
- 现代项目管理(第二版)戴大双 7.项目风险管理.ppt VIP
- 2025年《工伤保险条例》知识竞赛题库及答案(精华版).docx VIP
文档评论(0)