Java练习——扑克牌

  • 构建一张扑克牌
  • 构建一套扑克牌:一套扑克牌–>打乱顺序
  • 发牌
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * List练习
 */
class Card{
    
    
    private int number;//牌面值
    private String suit;//花色

    public Card( String suit,int number ){
    
    
        this.suit = suit;
        this.number = number;

    }


    @Override
    public String toString() {
    
    
        /*return "Card{" +
                "number=" + number +
                ", suit='" + suit + '\'' +
                '}';*/
        return "["+suit+","+number+"]";
    }
}

/**
 * 一套扑克牌(牌的顺序是随机的)
 */
class OperCard{
    
    

    public static  final  String[] suits = {
    
    "♥","♠","♦","♣"};//花色不会变

    //买牌--生成52张牌
    public List<Card> buyCard(){
    
    
        List<Card> cardList = new ArrayList<>();
        //13种牌,4种花色
        for (int i = 0; i < 4 ;i++){
    
    
            for (int j = 1 ; j <= 13 ;j++){
    
    
                cardList.add(new Card(suits[i],j));
            }
        }
        return cardList;
    }

    public void swap(List<Card> cardList,int i,int j){
    
    //交换
        Card tmp = cardList.get(i);
        cardList.set(i,cardList.get(j)) ;
        cardList.set(j,tmp);

    }

    //洗牌
    public void washCard(List<Card> cardList){
    
    

        for(int i = cardList.size()-1; i > 0;i--){
    
    
            Random random = new Random();
            int rand = random.nextInt(i);
            swap(cardList,i,rand);
        }

    }


}
public class TestPukepai {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("===============买牌==============");

        OperCard operCard = new OperCard();
        List<Card> cardList=operCard.buyCard();
        System.out.println(cardList);

        System.out.println("===============洗牌==============");

        operCard.washCard(cardList);
        System.out.println(cardList);


        System.out.println("===============发牌==============");

        //三个人,每人5张
        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 < 3 ; i++){
            for (int j = 0 ; j < 5; j++){
                //揭牌
               Card card = cardList.remove(0);
                hands.get(i).add(card);
            }
        }*/

       //轮流揭牌
        for(int i = 0 ; i < 5 ; i++){
    
    
            for (int j = 0 ; j < 3; j++){
    
    
                //揭牌
                Card card = cardList.remove(0);
                hands.get(j).add(card);
            }
        }
        System.out.println("第一个人:");
        System.out.println(hands1);
        System.out.println("第二个人:");
        System.out.println(hands2);
        System.out.println("第三个人:");
        System.out.println(hands3);

        System.out.println("剩余的牌:");
        System.out.println(cardList);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_45915957/article/details/113096057