日期:2014-05-20  浏览次数:20566 次

求:斗地主牌的组合设计
小弟正在用Javase做斗地主游戏,GUI部分已经设计得差不多了,现在还差制定游戏规则,AI...
我想先制定游戏规则,在制定游戏规则部分我犯了难,在我的体系里
0,1,2...12分别代表黑桃A,2,3...K
13,14,15...25分别代表红桃A,2,3...K
26,27,28...38分别代表梅花A,2,3...K
39,40,41...51分别代表方块A,2,3...K
52,53代表 大小王
这些数字组合起来有的是有效地,有的是无效的,
同一种组合里可以比较大小
比如单张可以和单张比较大小
对儿可以和对儿比较大小
三带一可以和三带一比较
......
组合种数也不少,现在不知道该怎么设计好
我想先定义个接口,再子类继承,如果是定义接口,接口该怎么设计好呢
还是为每一种组合都定义一个类,好纠结啊
求大侠指点设计,要详细点的,当然分数不会少的

------解决方案--------------------
http://download.csdn.net/download/rfxia/564469

楼主看看其它人的源码,或是找些例子来找找灵感。
------解决方案--------------------
探讨
0,1,2...12分别代表黑桃A,2,3...K
13,14,15...25分别代表红桃A,2,3...K
26,27,28...38分别代表梅花A,2,3...K
39,40,41...51分别代表方块A,2,3...K
52,53代表 大小王
这里不用这样表示54张牌 以
a0,a1,a2...a12分别代表黑桃A,2,3...K
b0,b1,b2...b12分别代表红桃A,2……

------解决方案--------------------
学JAVA不久刚写过砸金花
面向对象的设计:一个枚举表示花色,一个枚举表示点数,定义一个类为一张牌Card(包含花色和点数),再定义一副牌为 Card[52],写一个方法来生成52张牌(大小王不包括),定义一手牌类来给3个玩家,可以根据牌对应枚举中的位置来作为判断牌的大小的依据,这里不需要比较花色,感觉会更简单一些。
根据用户的出牌数就可以确定用户出牌类型
1:单张
2:对子,王炸
3:3个头
4:炸弹,3带1
5:顺子,3带2
6:4带2,顺子,连续2个3个头,3连对
7:只能是顺子
8:顺子,连续2个3带1,4连对
写出相应的判断方法
再根据出牌的张数来调用相应的方法判断
------解决方案--------------------
探讨
弱弱的问一句,斗地主里的四带二,带的两个有什么要求吗,可以使两个对子吗,可以是两个三带吗