gpt4 book ai didi

Java实现扑克牌程序

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 33 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java实现扑克牌程序由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

思路:

在实现之前,先要想好步骤,思路清晰才不会出错。 要实现一副扑克牌,首先要创建这个类,然后有一副扑克牌,之后进行洗牌,抓牌.

1.定义一个Card类 。

2.实现这个游戏:

①构造一副扑克牌(52张)这里不包含大小王 ②洗牌 ③三个人每个人抓五张牌 。

代码实现及其细节:

1.定义一个Card类 。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
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>.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.洗牌:

使用随机数 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//写一个交换函数方便洗牌方法实现
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>>. 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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实现扑克牌程序

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

原文链接:https://blog.csdn.net/m0_51405559/article/details/120808011 。

最后此篇关于Java实现扑克牌程序的文章就讲到这里了,如果你想了解更多关于Java实现扑克牌程序的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com