Java模拟玩家洗牌发牌小程序

    xiaoxiao2026-04-19  4

    参考了网上了一些内容,自己实现了一个模拟玩家洗牌、发牌的小程序,若有问题欢迎提出,希望我们可以一起进步。QQ:767696856

    (其中洗牌是直接通过集合类中的shuffle实现)

    package com.cute.card; /* * 手牌 */ public class Card { public String num; //牌的数字 public String suit; //花色 public Card(String num,String suit){ this.num = num; this.suit = suit; } @Override public String toString() { String str = suit + " " + num; return str; } }

     

    package com.cute.card; /* * 玩家 */ import java.util.ArrayList; import java.util.List; public class Player { public String name; //玩家姓名 public List<Card> cards; //存储玩家手牌 public Player(String name) { this.name = name; } //获取手牌 public void getCard(Card card){ if(cards == null) cards = new ArrayList<Card>(); cards.add(card); } public String toString(){ return name + ":" + cards.toString(); } }

     

    package com.cute.card; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class DeskOfCard { List<Card> cards; //创建一副手牌 public void initCard(){ String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; String[] suits = {"方块","梅花","红桃","黑桃"}; String[] jokers = {"小王","大王"}; cards = new ArrayList<Card>(); //先创建四种花色的牌 for(int i = 0; i<52; i++){ cards.add(new Card(nums[i%13],suits[i/13])); } //再加上大小王 cards.add(new Card("",jokers[0])); cards.add(new Card("",jokers[1])); } public static void main(String[] args) { DeskOfCard test = new DeskOfCard(); test.initCard(); //初始化 Collections.shuffle(test.cards); //洗牌 //创建玩家 Player pl1 = new Player("Cute"); Player pl2 = new Player("Jane"); Player pl3 = new Player("Katter"); //发牌 for(int i=0; i<54; i++){ if(i%3 == 0){ pl1.getCard(test.cards.get(i)); }else if(i%3 == 1){ pl2.getCard(test.cards.get(i)); }else if(i%3 == 2){ pl3.getCard(test.cards.get(i)); } } System.out.println("玩家拿到的手牌为:"); System.out.println(pl1.toString()); System.out.println(pl2.toString()); System.out.println(pl3.toString()); } }

    运行结果:

     

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-1308989.html
    最新回复(0)