模拟斗地主

需求:通过程序实现斗地主过程中的洗牌,发牌和看牌

思路: 1、创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现 2、往牌盒里面装牌 (1)四种牌型,数字是2,3,4,5,6,7,8,9,10,J,Q,K,A,小王,大王 (2)定义花色数组,里面包含四种花色 (3)定义点数数组 (4)花色和点数相搭配 3、洗牌,也就是把牌打散,用Collections的shuffle()方法实现 4、发牌,也就是遍历集合,给三个玩家发牌 5、看牌,也就是三个玩家分别遍历自己的牌

 

模拟斗地主的练习

 

模拟斗地主优化版

案例:模拟斗地主升级版 需求:通过重写实现斗地主过程中的洗牌,发牌和着牌 升级的点:对'看牌操作'进行排序

如何排序如下 1、首先要有HashMap集合。该集合的键是key,从0~53。该集合的值是value,从◆3、♣3、♥3、3♠、◆4、♣4、♥4、4、......、大王、小王 2、再定义一个ArrayList集合,里面存储了0~53共54个索引,洗牌的时候其实洗的就是这里的索引 3、再定义一个TreeSet集合,作用是给玩家拿到的牌进行自然升序的排列,即从小到大排序。对牌排序就相当于对索引排序 4、看牌,即将索引转化为牌

思路如下 1、创建HashMap集合,键是编号,值是牌 2、创建ArrayList集合,存储编号 3、创建花色数组和点数数组 4、从0开始往HashMap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号 5、洗牌洗的是编号,用Collocations的shuffle()方法实现随机置换 6、发牌发的是编号,为了保证编号是排序的,需要创建TreeSet集合接收 7、定义一个看牌的方法,即遍历TreeSet集合,获取编号,到HashMap集合找对应的牌 8、调用看牌的方法,此时玩家拿到的牌就是自然升序的

 

模拟斗地主优化版的练习