扑克牌练习 【数据结构】

您所在的位置:网站首页 中面抽取算法 扑克牌练习 【数据结构】

扑克牌练习 【数据结构】

2023-11-04 20:46| 来源: 网络整理| 查看: 265

前言: 之前学了List常用的方法,下面就是用List来完成扑克牌练习~ 通过扑克牌这个练习,进一步来掌握 List 的一些用法!

在这里插入图片描述

炸金花练习—目录 思路代码实现:创建一张牌—Card类创建一副牌 主类代码:输出示例:

思路

在我们动手写代码之前,我们需要思考扑克牌应该有什么?联想到我们平时玩扑克牌

一张牌:有花色和点数两个属性,那么我们可以创建一个类Card,来表示一张牌一副牌:一张牌是一个 Card,那么一些牌放在一起就组成了一副牌,就可以创建一个 List< Card > ,返回结果是若干个 Card 放在一起,得到了一个 List花色和点数:使用 双for 循环处理花色和点数,第一层循环表示四种花色,第二层循环表示[2,10]点数的牌,将JQKA单独设置 代码实现: 创建一张牌—Card类 class Card{ private String point; //点数 private String suit; //花色 //提供构造方法 public Card(String point, String suit) { this.point = point; this.suit = suit; } // get set 方法 public String getPoint() { return point; } public void setPoint(String point) { this.point = point; } public String getSuit() { return suit; } public void setSuit(String suit) { this.suit = suit; } @Override public String toString() { return "[" + this.point + this.suit + "]"; } } 创建一副牌 private static List buyPoker(){ List poker = new ArrayList(); String[] suits = {"♥","♠","♣","♦"}; //处理四种花色 for (int i = 0; i //k 表示点数, int → String poker.add(new Card(String.valueOf(k),suits[i])); } // 单独处理 J Q K A poker.add(new Card("J",suits[i])); poker.add(new Card("Q",suits[i])); poker.add(new Card("K",suits[i])); poker.add(new Card("A",suits[i])); }

valueOf方法: 原型: public static String valueOf(int i) { return Integer.toString(i); } . 即:将 int 转换成 String

主类代码: public static void main(String[] args) { //1.创建一副牌 List poker = buyPoker(); //2.洗牌 Collections.shuffle(poker); //3.发牌 //假设有三个玩家 //每个玩家就是 1 个 List,可把每个人的手牌放到List中,可把多个玩家再放到一个List中 //即 players表示所有玩家的手牌信息 List players = new ArrayList(); // 而每个List又表示一个玩家的手牌信息 players.add(new ArrayList()); players.add(new ArrayList()); players.add(new ArrayList()); //开始发牌 for (int i = 0; i List player = players.get(k); player.add(poker.remove(0)); } } //发牌结束,可查看手牌 for (int i = 0; i Random rnd = r; if (rnd == null) r = rnd = new Random(); // harmless race. shuffle(list, rnd); } . private static Random r;

把 List 中的元素 随即打乱顺序 使用默认随机源对列表进行置换,所有置换发生的可能性都是大致相等的

输出示例:

在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3