Java实验-02 模拟扑克牌游戏的洗牌

结合面向对象设计原则,分析和设计模拟扑克牌游戏的洗牌过程。

  1. 编程定义一个表示扑克牌的类 Poke,用 suit 来表示扑克牌的花色,用 face 来表示扑克牌的
    牌面值,每副牌为 52 张,不考虑包含大小王。
  2. 假设扑克牌游戏需要 2 付 (或 2 付以上)的牌,请编程实现模拟洗牌,以及将这些扑克牌分
    给参加游戏的所有人,并将参加扑克牌游戏的所有人的扑克牌输出。
  3. 实现 Poke 类中包含的 4 个静态方法,所实现的 Poke 类在 PokeTest 的 main 方法中进行测试,
    请阅读 main 方法的代码,并根据其中逻辑猜测 Poke 类中静态方法的行为并编写方法实现
    代码。
    非常简单,直接放代码
    Poke.java
package exp2;

import java.util.Random;

public class Poke {
    private static char[] suit={'♥','♦','♣','♠'};
    private static String size[] = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    public static String[] createCard(int num)
    {
        String[] card=new String[52*num];
        int k=0;
        for(int m=0;m<num;m++)
            for(int i=0;i<4;i++)
                for(int j=0;j<13;j++)
                {
                    card[k]=suit[i]+size[j];
                    k++;
                }
        return card;
    }
    public static void display(String[] card)
    {
            for(String c:card)
            {
                System.out.print(c+" ");
            }
    }
    public static void shuffle(String[] card)
    {
        for(int i=1;i<card.length;i++)
        {
            Random  random=new Random();
            String c=card[i];
            int n= random.nextInt(i);
            card[i]=card[n];
            card[n]=c;
        }
    }
    public static void distribute(String[] card,int per)
    {
        for(int i=0;i<per;i++)
        {
            System.out.println("第"+(i+1)+"个人的牌如下:");
            for(int  j=i*card.length/per;j<(i+1)*card.length/per;j++)
            {
                System.out.print(card[j]+" ");
            }
            System.out.print("\n");
        }
    }

}

PokeTest.java

package exp2;

import java.util.Scanner;

public class PokeTest {

 public static void main(String[] args) {
         System.out.println("该扑克游戏需要几付扑克牌?");
         Scanner sc = new Scanner(System.in);
         int num = sc.nextInt();
         String[] cards = Poke.createCard(num);
         System.out.println("该扑克游戏有几个玩家?");
         Scanner sp = new Scanner(System.in);
         int per = sp.nextInt();
         System.out.println("\n显示所有的牌:");
         Poke.display(cards);
         Poke.shuffle(cards);
         System.out.println("\n显示分配给每个人的牌:");
         Poke.distribute(cards, per);
         }
 }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值