斗地主,是一种在中国流行的纸牌游戏。游戏最少由3个玩家进行,用一副54张牌(连鬼牌),其中一方为地主,其余两家为另一方,双方对战,先出完牌的一方获胜。如今已风靡整个中国,并流行于互联网上!
从今天开始,我将会一步步详细讲解单机斗地主游戏开发过程。该游戏以C++为主,QT做为界面(包括显示 动画 声音等)的Window平台,没有用到第三方面库如CoCo2d 等,至于为什么要用QT,主要是自己得心应手(QT动画 透明 图像处理太简单了),比VS简单,而且还能跨平台,本游戏在最后开源。网上的斗地主算法 源码很多,如果写的不好,欢迎批评 探讨。为了提起大家的兴趣,我给我做好的游戏功能和界面简单给大家看一下:
该游戏的大部分资源都是人网上下载的,如有侵权,请及时通知,我将会删除。本软件主要算法用的是 宽立斗地主AI设计与实现
我在此基础上用QT在Windows上进行了详细开发,主要是为了研究算法,我在此基础上对算法做了适当修改。
游戏主要功能:音效开关 机器人模式 记牌器窗口 退出 功能按键,还有出牌控制 音效 报警等,以后会更加完善,加一些设置,如声音大小 游戏难度 人物选取 等功能。
现在开始来讲游戏的开发过程:
一、数据结构,任何软件开发都离不开数据结构和数据处理。
1.牌型枚举(CardTypes):
//牌型枚举
enum CardTypes
{
Error_Card,//错误出牌
Single_Card,//单牌
Double_Card,//对子
Three_Card,//三张
ThreeOne_Card,//三带一
ThreeTwo_Card,//三代二
Line_Card,//单顺
Double_Line_Card,//连对
Plane_Card,//飞机(两个三张连)
Plane_TwoSingle_Card,//飞机带俩单
Plane_TwoDouble_Card,//飞机带两对
Four_TwoSingle_Card,//四带俩单
Four_TwoDouble_Card,//四带两对
Bomb_Card,//炸弹
Rocket_Card//王炸(火箭)
};
我给他们定义了15种牌型:
⒈错误牌型:不能出的牌型
⒉单牌:例一张A
⒊对子:例AA
⒋三张:AAA
⒌三带一:AAAB
⒍三带二:AAABB
⒎单顺:也叫连子3,4,5,6,7&#x