栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java--实现一副扑克牌

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java--实现一副扑克牌

package fanXing;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;


//这是一张牌
class Card {
    private String rank;//点数
    private String suit;//花色

    public Card(String rank, String suit) {
        this.rank = rank;
        this.suit = suit;
    }

    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }

    public String getSuit() {
        return suit;
    }

    public void setSuit(String suit) {
        this.suit = suit;
    }

    @Override
    public String toString() {
        
        return "[" +this.suit + this.rank+"]";
    }
}
public class Poker {
    public static void main(String[] args) {
        //1.创建一副牌
       List poker = buyPoker();
        System.out.println(poker);
        //2.洗牌,最见简单的办法是直接使用collection.shuffle方法
        //把元素随机打乱顺序
        Collections.shuffle(poker);
        //3.发牌,三个玩家,没人五张
        //每个玩家就是一个list,把每个人的手牌放到这个list中
        //可以把这多个玩家的信息再放到一个List中
        //players就表示所有的玩家手牌
        //每个元素就是一个玩家的所有手牌(也是一个list)
        List> players = new ArrayList<>();
        players.add(new ArrayList());
        players.add(new ArrayList());
        players.add(new ArrayList());
        // 给三个玩家发牌,每人发五张牌
        //i 表示牌的编号,j表示玩家编号
        for (int i = 0;i < 5;i++) {
            for (int j = 0;j <3;j++) {
              List player =  players.get(j);
              //remove表示删除List中的指定下标的元素
                //remove返回值表示删除的这个元素是啥
                player.add(poker.remove(0));
            }
        }
        //到这一步,玩家发牌结束,可以查看玩家的手牌了
        for (int i = 0;i < 3;i++) {
            System.out.println("玩家"+ i + ":" +players.get(i));
        }
    }
     public static List buyPoker() {
         List poker = new ArrayList<>();
         String[] suits = {"♥","♠","♣","♦"};

         for (int i = 0;i < 4; i++) {
             //这个循环用来处理四种花色
             //每个花色又有十三张牌
             for (int j = 2;j <= 10;j++){
                 //j表示点数,int 转为 String
                 //转为string方法:1. ""+j  2.  String.valueOf(j)
                 poker.add(new Card(""+j,suits[i]));
             }
             poker.add(new Card("J",suits[i]));
             poker.add(new Card("Q",suits[i]));
             poker.add(new Card("K",suits[i]));
             poker.add(new Card("A",suits[i]));
         }
         return poker;

     }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号