小弟正在用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代表 大小王
这些数字组合起来有的是有效地,有的是无效的,
同一种组合里可以比较大小
比如单张可以和单张比较大小
对儿可以和对儿比较大小
三带一可以和三带一比较
......
组合种数也不少,现在不知道该怎么设计好
我想先定义个接口,再子类继承,如果是定义接口,接口该怎么设计好呢
还是为每一种组合都定义一个类,好纠结啊
求大侠指点设计,要详细点的,当然分数不会少的 

解决方案 »

  1.   

    可以这样设计嘛1——13分别加上个ABCDE分别表示黑 红  梅 方  鬼在比较的时候 去掉前缀 比较 就可以了,
      

  2.   

    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张牌 ,用
    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代表 大小王
      

  3.   

    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,3...K
    c0,c1,c2...c12分别代表梅花A,2,3...K
    d0,d1,d2...d12分别代表方块A,2,3...K
    e14,e15代表 大小王
    这样表示54张牌就可以在比较的时候把每张牌的前缀去掉比较就可以了啊,也可以判断是否有效撒
      

  4.   

    http://download.csdn.net/download/rfxia/564469楼主看看其它人的源码,或是找些例子来找找灵感。
      

  5.   

    学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连对
    写出相应的判断方法
    再根据出牌的张数来调用相应的方法判断
      

  6.   


    四带二炸弹带任意2张牌,但是这样出就不算炸弹,属于普通牌型。
    例如四带二是666634,那么666634<777734<5555
    具体可以去qq游戏参考下规则
      

  7.   

    新手上路
    0x0000
    黑 0x00(01,02,03,......0d)---从黑一到黑十三
    红 0x01(01,02,03,......0d)---从红一到红十三
    梅 0x02(01,02,03,......0d)---从梅一到梅十三
    方 0x03(01,02,03,......0d)---从方一到方十三
    实际上 黑红梅方(高16位)的颜色仅仅是用来显示用的,后面的(低十六位)是用来判断牌的组合的,判断的时候高十六位全部置零,与花色无关