java吧 关注:1,297,789贴子:12,835,694
  • 6回复贴,共1

求大神帮忙,最好写下思路

只看楼主收藏回复

n个人(3<=n<=5)参加发牌游戏,52张扑克牌依次发给n人
例:
输入:3
输出:第一人:
黑桃:Q,10,9,2,A
红心:7,5,3,2
梅花:10,8,6,4,3
方块:K,8,6,2
第二人:
。。。。
第三人:
。。。。


1楼2013-03-27 21:31回复
    首先,要有52张牌,然后,打乱顺序,分给每一个人!


    2楼2013-03-27 23:47
    收起回复
      2026-02-20 11:02:56
      广告
      不感兴趣
      开通SVIP免广告
      很繁琐的样子。。循环52张牌。n*(m-1)+1张牌是第一个人的。。以此类推,第n*(m-1)+n其实就是n*m是第n个人的。m从0开始,发n张m++,每次发牌从剩下的牌里随机发完52张为止。。定义,4的整数为黑桃。。其他花色类推,每人手中排按花色分4类,排序,定义JQK。。然后按顺序输出就行了


      IP属地:广东4楼2013-03-28 14:51
      回复
        由于你没写牌到底怎么发,我就写了个斗地主发牌的系统。
        import java.util.LinkedList;
        import java.util.List;
        import java.util.Random;
        public class test
        {
        public static void main(String[] args)
        {
        Random ran = new Random();
        List r = new LinkedList();
        for(int i=0;i<54;i++) r.add(i);
        int k=0;
        int[] a = new int[54];
        for(int i=0;i<54;i++)
        {
        int length = r.size();
        int t = ran.nextInt(length);
        a[k] = (Integer)r.get(t);
        k++;
        r.remove(t);
        }
        Arrays.sort(a,0,17);
        Arrays.sort(a,17,34);
        Arrays.sort(a,34,51);
        Arrays.sort(a,51,54);
        System.out.println("斗地主发牌系统");
        for(int i=1;i<=54;i++)
        {
        System.out.print(GetCard(a[i-1])+" ");
        if(i%17==0) System.out.println("");
        if(i==51) System.out.println("底牌为:");
        }
        }
        static String GetCard(int a)
        {int b1 = a/4+1;
        int b2 = a%4;
        String s="";
        switch(b2)
        {
        case 0:s="红桃";break;
        case 1:s="黑桃";break;
        case 2:s="方块";break;
        case 3:s="梅花";break;
        }
        if(b1>10)
        {
        switch(b1)
        {case 11:s+="J";break;
        case 12:s+="Q";break;
        case 13:s+="K";break;
        }
        }
        else if(b1==1)s+="A";
        else s+=b1+"";
        if(a==52) s="小王";
        else if(a==53) s="大王";
        return s;
        }
        }
        效果:
        斗地主发牌系统
        黑桃A 红桃2 黑桃2 方块3 梅花3 梅花5 黑桃6 红桃7 梅花7 红桃8 黑桃8 梅花9 黑桃10 梅花Q 红桃K 黑桃K 梅花K OK!
        梅花A 方块2 红桃3 红桃4 梅花4 红桃5 红桃6 方块6 方块7 梅花8 黑桃9 方块9 梅花10 黑桃J 红桃Q 方块Q 大王 OK!
        红桃A 方块A 黑桃3 黑桃4 方块4 方块5 梅花6 黑桃7 方块8 红桃9 红桃10 方块10 红桃J 方块J 梅花J 黑桃Q 方块K OK!
        底牌为:
        梅花2 黑桃5 小王


        IP属地:江西6楼2013-03-28 15:07
        收起回复