个人简介:努力学编程`
每日鸡汤:stay foolish,stay hungry-史蒂芬.乔布斯斯坦福大学演讲
一起刷题,一起进步:(牛客网)面试必刷-数据结构
hello,今天教大家如何使用java中已提供的ArrayList和泛型的知识完成一个小游戏,模拟实现三个人玩扑克,从新建牌,到洗牌,到发牌,以及如何将牌存储到这三个玩家的手里。
基本框架的实现
游戏介绍:有一副扑克,三个人玩,每个人轮流接一张牌,一共接五次,最后打印出来这三个人所接的牌以及剩下的牌,注意:J,Q,K使用11,12,13代替,牌色有:♥,♠,♣,♦,一共是52张牌。
创建一副牌
任何一副牌都是由花色和大小这两种属性组成,我们这里创建一个类存放牌的信息。
public class Card {
public int rank;//数字
public String suit;//花色
public Card(int rank, String suit) {
this.rank = rank;
this.suit = suit;
}
@Override
public String toString() {
return "Card{" +
"rank=" + rank +
", suit='" + suit + '\'' +
'}';
}
}
有了一张基本牌的信息,我们就可以创建一整副牌了,这里还是新创建一个类cards存放一整副牌的信息,利用泛型将一整副牌进行存储
通过这几部操作,最终就把牌全部放到了cardList当中
这里我们可以创建一个main方法把整副牌的信息打印出来进行检验:
ok,整副牌存放成功!!!
如何进行洗牌:
这里我们使用一个shuffle方法,进行洗牌,它的逻辑就是在牌堆里生成一个随机数random,然后然后将指定的某个牌与其发生交换,循环这个过程就实现了洗牌,直接上代码感受一下:
public void shuffle(List<Card>cardList){
Random random=new Random();
for(int i=cardList.size()-1;i>0;i--){
int randIndex=random.nextInt(i);
swap(cardList,i,randIndex);
}
}
private void swap(List<Card>cardList,int i,int j){
Card tmp=cardList