利用java集合框架实现扑克牌比大小游戏

程序实现前提:
1.了解java集合框架
2.Collections工具类
3.Comparable,Comparator接口

游戏要求:
游戏有两个玩家,分别会得到两张纸牌,然后进行比较大小,拿到纸牌最大者获胜,比较规则:比较数字(2,3,4,5,6,7,8,9,10,J,Q,K,A)按这个顺序,越往后越大,数字一样则比较花色(黑桃,红桃,梅花,方块),越往后越大。

代码分析:
首先需要有Player类,Card类,里面封装了玩家和纸牌的属性和方法,然后还需要GameBegin类开始游戏,这个类需要实现以下功能,创建一副扑克牌,洗牌,创建人物,发牌,比较大小,有几个要点需要注意:

1.先后顺序很重要,先创建扑克牌后创建人物,发牌

2.创建人物时注意初始化List,以防空指针异常

3.发牌:List.get(index),所以只需要产生随机数即可实现发牌这个效果

4.比较大小需要重新Compara方法

实现效果图:
这里写图片描述

实现代码:

/**
 * 牌类
 */
public class Card {
   
   
    public String number;
    public String color;

    public Card(String color,String number) {
        super();
        this.number = number;
        this.color = color;
    }

    public String getNumber() {
        return number;
    }

    public String getColor() {
        return color;
    }   
}
/**
 * 玩家类
 */
public class Player {
   
   
    public String name;
    public List<Card> list=
* Game 类 * 功能:整个游戏:开始游戏 -> 初始 -> 洗 -> 发 -> 排序 -> 比较大小 -> 游戏结果 * 游戏说明: * 1.创建一副扑克牌,不考虑大小王 * 2.创建两名玩家,玩家至少要有ID、姓名、手等属性,手扑克牌集合 * 3.洗,将之前创建的扑克牌顺序打乱 * 4.发,将洗之后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张 * 5.开始游戏,比大小大小相同比花色 * * PockerCard 类 * 功能:扑克牌的核心类 包括创建角色、创建、显示、洗、比较、排序等 * 属性:List cards 整幅扑克牌集合 、 People[] peoples 角色 * 方法: public PockerCard() //无参构造函数: 创建集合、创建两个角色对象 * public void initializeCard() //创建整幅扑克牌 * public void showCard() //显示单支的花色和点数 * public void refreshCard() //洗 从第一支开始从所有中随机取一只与之交换 * public void addPeopleInfo() //添加玩家的基本信息 * public void dealCard() //发 从开始分别给A B发 每人两支 * public void showPeopleCard() //显示两个角色自己获得的 * public void sortCard() //将每个角色自己的按从小到排序 * public void comparePeopleCard() //比较角色的 * * SingleCard类 实现Comparable接口 * 功能:产生单支 * 属性:ID、color、keyID数组、keyColor数组 * 方法:public SingleCard(){} //无参构造函数 * public SingleCard(String ID,String color) //有参构造函数 * @Override public int compareTo(SingleCard o) //比较当前与SingleCard o的大小 * * People类 * 功能:产生一个角色 * 属性:ID、Name、和、存储的List集合。 * 方法: public People() //初始化存储的List集合; *
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值