类别
卡牌类
public class Card {
public String unit;//设置卡牌花色
public int number;//设置卡牌数字
public Card(String unit, int number) {
this.unit = unit;
this.number = number;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
@Override
public String toString() {
return unit+":"+number;
}
}
卡牌套类
public class CardDemo {
private List<Card>cardList;
public CardDemo()
{cardList=new ArrayList<>();
}
public List<Card> buyCard( )//获取牌
{
String[]ret={"♥","♦","♠","♣"};//四种花色
for(int i=0;i<4;i++)
{
for(int j=1;j<=13;j++)//13不同数字
{
Card card=new Card(ret[i],j);
cardList.add(card);
}
}
return cardList;
}
}
洗牌方法
public void shuffCard(List<Card>cardList)
{
Random random=new Random();
for(int i=51;i>0;i--)
{
int a=random.nextInt(i);
swap(cardList,i,a);//交换牌的位置
}
}
public void swap(List<Card>cardList,int a,int b)
{
Card tmp=cardList.get(a);
cardList.set(a,cardList.get(b));
cardList.set(b,tmp);
}
揭牌方法
public void getCard(List<Card>cardList)
{
List<List<Card>>hands=new ArrayList<>();
List<Card>hand1=new ArrayList<>();//三位选手
List<Card>hand2=new ArrayList<>();
List<Card>hand3=new ArrayList<>();
hands.add(hand1);
hands.add(hand2);
hands.add(hand3);
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)//三个人轮流摸牌
{
hands.get(j).add(cardList.remove(0));
}
}
for(int i=0;i<3;i++)
{
System.out.println(hands.get(i));
}
}
测试类
import java.util.List;
public class Test {
public static void main(String[]args){
CardDemo cardDemo=new CardDemo();
List<Card>cardList=cardDemo.buyCard();
System.out.println(cardList);
cardDemo.shuffCard(cardList);
System.out.println(cardList);
cardDemo.getCard(cardList);
}
}