受欢迎的博客标签

棋牌类算法

Published
这是核心算法 package com.veechin.java.test; import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.SortedSet;import java.util.TreeSet; import com.veechin.java.util.Card; public class test { public static void main(String arg[]){ Card cards[]=new Card[52]; String type[]={"红桃","黑桃","方片","梅花"}; //初始化牌类 for(int i=0;i<4;i++) for(int j=0;j<13;j++){ cards[i*13+j]=new Card(j+1,type[i]); } //转变成集合 ArrayList<Card> cardset=new ArrayList<Card>(Arrays.asList(cards)); //洗牌 Collections.shuffle(cardset); //发牌 List<Card> player_one= cardset.subList(0, 13); List<Card> player_two= cardset.subList(13, 26); List<Card> player_three= cardset.subList(26, 39); List<Card> player_four= cardset.subList(39, 52); System.out.println("Player_One的牌"); //排牌 SortedSet<Card> player_one_sorted=new TreeSet<Card>(new Comparator<Card>() { public int compare(Card c1, Card c2) { return c1.compareTo(c2); } }); player_one_sorted.addAll(player_one); for(Card temp:player_one_sorted){ temp.getCardInfor(); } System.out.println("Player_Two的牌"); //排牌 SortedSet<Card> player_two_sorted=new TreeSet<Card>(new Comparator<Card>() { public int compare(Card c1, Card c2) { return c1.compareTo(c2); } }); player_two_sorted.addAll(player_two); for(Card temp:player_two_sorted){ temp.getCardInfor(); } System.out.println("Player_Three的牌"); //排牌 SortedSet<Card> player_three_sorted=new TreeSet<Card>(new Comparator<Card>() { public int compare(Card c1, Card c2) { return c1.compareTo(c2); } }); player_three_sorted.addAll(player_three); for(Card temp:player_three_sorted){ temp.getCardInfor(); } System.out.println("Player_Four的牌"); //排牌 SortedSet<Card> player_four_sorted=new TreeSet<Card>(new Comparator<Card>() { public int compare(Card c1, Card c2) { return c1.compareTo(c2); } }); player_four_sorted.addAll(player_four); for(Card temp:player_four_sorted){ temp.getCardInfor(); } }}   下面是牌类: package com.veechin.java.util; public class Card implements Comparable<Card>{ private int Size; private String Type; public Card(int size,String type){ this.Size=size; this.Type=type; } public void getCardInfor(){ System.out.println("Size: "+Size+" Type: "+Type); } public int compareTo(Card other) { if(this.Size-other.Size==0){ return 1; } return this.Size-other.Size; }}   //运行结果如下:    .