扑克牌
1.买一副扑克牌(创建一副52张的扑克牌除大小王)
2.进行洗牌操作
3.进行发牌操作
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
class Card{
private String suit;//定义花色
private int rank;//定义牌的大小
public Card(String suit, int rank) {
this.suit = suit;
this.rank = rank;
}
public String getSuit() {
return suit;
}
public void setSuit(String suit) {
this.suit = suit;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
@Override
public String toString() {
return "[" + suit + " "+rank+"]";
}
}
public class TestCard {
// 定义花色
public static final String[] suits={"♥","♠","♣","♦"};
// 买牌
public static List <Card> buycard(){
//创建一个储存牌的空间
List<Card> desk=new ArrayList<>();
//四种类型的花色
for (int i = 0; i <4 ; i++) {
//每种花色有13张牌
for (int j = 1; j <= 13; j++) {
String suit=suits[i];
Card card=new Card(suit,j);
//将牌放入空间中
desk.add(card);
}
}
return desk;
}
// 洗牌
public static void WashCard(List<Card>cards){
for (int i = cards.size()-1; i >0 ; i--) {
// random()方法返回随机生成的一个实数,它在[0,1)范围内。
Random random=new Random();
int index= random.nextInt(i);
swap(cards,i,index);
}
}
//交换里面的值
public static void swap(List<Card>cards,int i,int j){
Card tmp=cards.get(i);
cards.set(i,cards.get(j));
cards.set(j,tmp);
}
public static void main(String[] args) {
TestCard testCard=new TestCard();
// testCard.buycard();
// System.out.println( testCard.buycard());
List<Card> cards=buycard();
System.out.println("买回来的牌");
System.out.println(cards);
WashCard(cards);
System.out.println("洗完之后的牌");
System.out.println(cards);
//把打牌的三个人拉来,创建三个对象
List<Card> hands1=new ArrayList<>();
List<Card> hands2=new ArrayList<>();
List<Card> hands3=new ArrayList<>();
//创建一个二维数组,把三个人放在一个桌子上
List<List<Card>> hands=new ArrayList<>();
hands.add(hands1);
hands.add(hands2);
hands.add(hands3);
//开始发牌,发牌规则
for (int i = 0; i <5 ; i++) {
for (int j = 0; j < 3; j++) {
Card card=cards.remove(0);
hands.get(j).add(i,card);
}
}
System.out.println("第一个人的牌:"+hands1);
System.out.println("第二个人的牌:"+hands2);
System.out.println("第三个人的牌:"+hands3);
}
}