Java实验-02 模拟扑克牌游戏的洗牌
结合面向对象设计原则,分析和设计模拟扑克牌游戏的洗牌过程。
- 编程定义一个表示扑克牌的类 Poke,用 suit 来表示扑克牌的花色,用 face 来表示扑克牌的
牌面值,每副牌为 52 张,不考虑包含大小王。 - 假设扑克牌游戏需要 2 付 (或 2 付以上)的牌,请编程实现模拟洗牌,以及将这些扑克牌分
给参加游戏的所有人,并将参加扑克牌游戏的所有人的扑克牌输出。 - 实现 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);}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
