小弟正在用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代表 大小王
这些数字组合起来有的是有效地,有的是无效的,
同一种组合里可以比较大小
比如单张可以和单张比较大小
对儿可以和对儿比较大小
三带一可以和三带一比较
......
组合种数也不少,现在不知道该怎么设计好
我想先定义个接口,再子类继承,如果是定义接口,接口该怎么设计好呢
还是为每一种组合都定义一个类,好纠结啊
求大侠指点设计,要详细点的,当然分数不会少的
我想先制定游戏规则,在制定游戏规则部分我犯了难,在我的体系里
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代表 大小王
这些数字组合起来有的是有效地,有的是无效的,
同一种组合里可以比较大小
比如单张可以和单张比较大小
对儿可以和对儿比较大小
三带一可以和三带一比较
......
组合种数也不少,现在不知道该怎么设计好
我想先定义个接口,再子类继承,如果是定义接口,接口该怎么设计好呢
还是为每一种组合都定义一个类,好纠结啊
求大侠指点设计,要详细点的,当然分数不会少的
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张牌 ,用
10,11,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代表 大小王
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,3...K
c0,c1,c2...c12分别代表梅花A,2,3...K
d0,d1,d2...d12分别代表方块A,2,3...K
e14,e15代表 大小王
这样表示54张牌就可以在比较的时候把每张牌的前缀去掉比较就可以了啊,也可以判断是否有效撒
面向对象的设计:一个枚举表示花色,一个枚举表示点数,定义一个类为一张牌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连对
写出相应的判断方法
再根据出牌的张数来调用相应的方法判断
四带二炸弹带任意2张牌,但是这样出就不算炸弹,属于普通牌型。
例如四带二是666634,那么666634<777734<5555
具体可以去qq游戏参考下规则
0x0000
黑 0x00(01,02,03,......0d)---从黑一到黑十三
红 0x01(01,02,03,......0d)---从红一到红十三
梅 0x02(01,02,03,......0d)---从梅一到梅十三
方 0x03(01,02,03,......0d)---从方一到方十三
实际上 黑红梅方(高16位)的颜色仅仅是用来显示用的,后面的(低十六位)是用来判断牌的组合的,判断的时候高十六位全部置零,与花色无关