Java实现扑克牌程序

本文实例为大家分享了Java实现扑克牌程序的具体代码,供大家参考,具体内容如下

思路:

在实现之前,先要想好步骤,思路清晰才不会出错。

要实现一副扑克牌,首先要创建这个类,然后有一副扑克牌,之后进行洗牌,抓牌。

1.定义一个Card类

2.实现这个游戏:

①构造一副扑克牌(52张)这里不包含大小王

②洗牌

③三个人每个人抓五张牌

代码实现及其细节:

1.定义一个Card类

一张牌中包括两个属性:花色和牌面值

public class MyCard {

public char suit; //花色

public String rank; //牌面值

public MyCard(String rank, char suit) {

this.suit = suit;

this.rank = rank;

}

public String toString(){

return String.format("[%s %c]",rank,suit);

}

}

2.实现这个游戏

写一个CardGame来实现这个扑克牌游戏,其中分为很多细小的分支。

1.买一副牌

前面写了Card来表示一张牌,这里我们买一副牌,就是52个Card放在一起,就组成一个List,所以这里一副牌的类型为List<Card>。

public List<MyCard> buyDeck(){

//首先将花色和牌面值陈列出来

//因为牌面值有A,J,Q,K,这里采用的是字符串数组

//也可以将A,J,Q,K单独处理,剩下的写作一个整型数组

char[] suits={'♦','♥','♠','♣'};

String[] ranks={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

//创建52张牌

List<MyCard> deck=new ArrayList<>(52);

for(int i=0;i<4;i++){

for(int j=0;j<13;j++){

deck.add(new MyCard(ranks[j],suits[i]));

}

}

return deck;

}

2.洗牌:

使用随机数

//写一个交换函数方便洗牌方法实现

public void swap(List<MyCard> deck,int i,int j){

MyCard temp=deck.get(i);

deck.set(i,deck.get(j));

deck.set(j,temp);

}

public void shuffle(List<MyCard> deck){

//设置随机数

Random r=new Random();//实例化一个Random类

for(int j=deck.size()-1;j>0;j--){

int i=r.nextInt(j); //随机产生一个大于等于0小于51的整数

swap(deck,i,j); //将生成的0-51的随机数与与最后一个数交换实现洗牌

}

}

3.主函数:

在这里实现发牌,每人五张牌,三个人轮流抓,将三个人放在一个List当中,三个人中的牌信息为List<Card>,所以hands的类型为List<List<Card>>.

public static void main(String[] args){

CardGame cg=new CardGame();

List<MyCard> deck=cg.buyDeck();

System.out.println("刚买回来的牌:");

System.out.println(deck);

cg.shuffle(deck);

System.out.println("洗完的牌:");

System.out.println(deck);

//三人轮流抓牌,一人抓五张

//将三个玩家放到一个List当中

List<List<MyCard>> hands=new ArrayList<>(3);

//三个人手中每个人五张牌

hands.add(new ArrayList<>(5));

hands.add(new ArrayList<>(5));

hands.add(new ArrayList<>(5));

//ABC三个人抓牌

for(int i=0;i<5;i++){

for(int j=0;j<3;j++){

//从deck里面抓走的

//抓的时候把最顶上的抓走

hands.get(j).add(deck.remove(0));;

}

}

System.out.println("剩下的牌:");

System.out.println("A手中的牌:");

System.out.println(hands.get(0));

System.out.println("B手中的牌:");

System.out.println(hands.get(1));

System.out.println("C手中的牌:");

System.out.println(hands.get(2));

}

输出结果:

后面的没显示全

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 Java实现扑克牌程序 的全部内容, 来源链接: utcz.com/p/249836.html

回到顶部