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
public ListbuyDeck(){//首先将花色和牌面值陈列出来//因为牌面值有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 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(Listdeck,int i,int j){MyCard temp=deck.get(i); deck.set(i,deck.get(j)); deck.set(j,temp); }public void shuffle(List 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
- >.
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 事件代理
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Java|Java OpenCV图像处理之SIFT角点检测详解
- Node.js中readline模块实现终端输入
- java中如何实现重建二叉树
public static void main(String[] args){CardGame cg=new CardGame(); Listdeck=cg.buyDeck(); System.out.println("刚买回来的牌:"); System.out.println(deck); cg.shuffle(deck); System.out.println("洗完的牌:"); System.out.println(deck); //三人轮流抓牌,一人抓五张//将三个玩家放到一个List当中List > 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实现扑克牌程序】输出结果:
后面的没显示全
文章图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。