急盼:扎金花纸牌游戏算法
现在是两个人打牌,每人三张,比较大小:
牌大小规则
●豹子:三张牌是同一个数字。 AAA,KKK,888
●顺金:花色相同的顺子。 黑桃678、方片123
●金花:花色相同,非顺子。黑桃679,方片135
●顺子:花色不同的顺子。黑桃6红桃7方片8
●对子:两张点相同的牌。AA8,88A
●特殊:花色不同的235
●单张:三张牌中没有任何类型相同的牌
●大小规则1:豹子〉顺金〉金花〉顺子〉对子〉单张
●大小规则2:同种牌型,顺序比点,大小若相同,开牌者输
●大小规则3:当豹子存在时,“花色不同235”〉“豹子”即豹子存在时,若花色不同235也存在,花色不同235赢
●大小规则4:顺时针开牌,相同牌,先开者输。
●大小规则5:顺金,顺子特殊情况,AKQ>A23>KQJ>...234
●单牌大小:A>K>Q…..>2
现在要先设计一个比较大小的算法,请大家指点一下,谢谢!
问题点数:80、回复次数:6Top
1 楼lqcelpl61(星际之星)回复于 2005-06-03 14:44:54 得分 0
为什么就没有人回呢,5555555555555555555555555555Top
2 楼mccxj(老鼠不逛街)回复于 2005-06-03 14:51:38 得分 0
你以为很容易。。。??
发到算法那边去试试看。。。的确不容易。。Top
3 楼yiyue(六月)回复于 2005-06-08 14:44:50 得分 40
正好前段时间写了一个,不过是在miniGUI上跑的
你把要做的东西分成几个函数嘛,我只能给一点思路,因为贴代码太多了,你也用不上
1.定义好数据结构
a.牌 (花色,数值,片)
b.一盘牌(牌数组(3张),牌式(先定义好,如豹子\.....等)
c.人 (一盘牌,钱...等什么的,自已定义)
d.定义好牌数组(52张),人(两个人变量)
2.洗牌函数
用随机函数或其它什么算法,把52张牌打乱
3.发牌函数
从52张牌(数组)抽取六张,每人三张牌
4.排序
把每人的牌按数值大小排序(每人三张牌如 '10'>'8'>'3')
5.比较
先比较牌式(前面定义好的,牌式相同比较数值大小,数值大小相同比较花色)
大既就这样!
Top
4 楼yiyue(六月)回复于 2005-06-08 14:48:09 得分 40
补充:
1.定义好数据结构
a.牌 (花色,数值,片)
b.一盘牌(牌数组(3张),牌式(先定义好,如豹子\.....等)
c.人 (一盘牌,钱...等什么的,自已定义)
d.定义好牌数组(52张),人(两个人变量)
2.洗牌函数
用随机函数或其它什么算法,把52张牌打乱
3.发牌函数
从52张牌(数组)抽取六张,每人三张牌
4.排序
把每人的牌按数值大小排序(每人三张牌如 '10'>'8'>'3')
5.取得牌式
根据花色和数值设置两个人的牌式 如三个数一样 牌式为 '豹子',有两个一样为'对子'等
6.比较
先比较牌式(前面定义好的,牌式相同比较数值大小,数值大小相同比较花色)
大既就这样!Top
5 楼jixingzhong(瞌睡虫·星辰)回复于 2005-08-02 08:38:11 得分 0
可以参考一下现有
的一些 牌类游戏
其中的发排 、 排序
什么的都是现成的了
只要重新设定一下大小规则就好了Top
6 楼afx_swallow(足球和啤酒)回复于 2005-08-02 08:43:04 得分 0
数据结构和大小的排序要自己定义一下
yiyue(六月) 的已经很详细了Top




