本文主要是介绍Java 写一个可以给斗地主玩家随机发牌的程序。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
a:牌可以随机发给三个玩家b:在控制台打印每个玩家的牌。c:对每个玩家手中的牌按照大小排序。
package hcq.hw; import java.util.List;
import java.util.TreeSet; public class Main { public static void main(String[] args) { Poker poker = new Poker(); poker.getPoker();// 得到牌 // 每个玩家存储牌的容器 TreeSet<Card> p1 = new TreeSet<>(); TreeSet<Card> p2 = new TreeSet<>(); TreeSet<Card> p3 = new TreeSet<>(); // 洗牌和发牌操作 返回的是底牌 List<Card> dealPoker = poker.dealPoker(p1, p2, p3); // 删除牌 System.err.println("玩家一:" + p1); System.err.println("玩家二:" + p2); System.err.println("玩家三:" + p3); System.out.println("底牌 :" + dealPoker); } }
public class Poker { private LinkedList<Card> pokers = new LinkedList<>(); private char[] flowers = { '♦', '♣', '♥', '♠' }; private char[] numbers = { '3', '4', '5', '6', '7', '8', '9', '0', 'J', 'Q', 'K', 'A', '2' }; public Poker() { for (int i = 0; i < numbers.length; i++) { for (int j = 0; j < flowers.length; j++) { pokers.add(new Card(numbers[i], flowers[j], j + i * flowers.length)); } } pokers.add(new Card('王', '小', 99)); pokers.add(new Card('王', '大', 100)); } // 初始化牌 public static Poker getPoker() { return new Poker(); } // 打印牌 public void showPoker() { for (Card c : pokers) { System.out.println(c.toString()); } } // 洗牌和发牌方法 public List<Card> dealPoker(Collection<Card> play1, Collection<Card> play2, Collection<Card> play3) { Collections.shuffle(pokers);// 洗牌 while (pokers.size() > 3) { play1.add(pokers.removeFirst()); play2.add(pokers.removeFirst()); play3.add(pokers.removeFirst()); } return pokers;// 返回3张底牌 } }
public class Card implements Comparable<Card> { private char number;// 号码 private char flower;// 花色 private int grade;// 等级 public Card(char number, char flower, int grade) { super(); this.number = number; this.flower = flower; this.grade = grade; } @Override public String toString() { return "[" + flower + number + "]"; } public char getNumber() { return number; } public void setNumber(char number) { this.number = number; } public char getFlower() { return flower; } public void setFlower(char flower) { this.flower = flower; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } @Override public int compareTo(Card o) { return o.grade - this.grade; } }
转载地址:
https://blog.csdn.net/benxiaohai888/article/details/77016804
这篇关于Java 写一个可以给斗地主玩家随机发牌的程序。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!