Java_17_斗地主游戏思想

news/2024/11/9 2:53:45/

斗地主游戏思想

创建新牌

要创建一个牌组数组

public class Cards {private String number;private String color;private int index;public Cards() {}public Cards(String number, String color, int index) {this.number = number;this.color = color;this.index = index;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}public String toString() {return  number + color;}
}

牌组加入新牌

 public static List<Cards> All_Cards = new ArrayList<>();static{// 1.定义一个数组存储牌的点数,类型确定,个数确定请用数组存储!String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};// 2.定义一个数组存储牌的花色,类型确定,个数确定请用数组存储!int index = 0;String[] colors = { "♠", "♥", "♣", "♦" };for (String number : numbers) {for (String color : colors) {Cards card = new Cards(number,color,index ++);All_Cards.add(card);}}Collections.addAll(All_Cards,new Cards("","🃏",index ++),new Cards("","👲",index ++));}

洗牌

/*洗牌*/System.out.println("洗牌前" + All_Cards);Collections.shuffle(All_Cards);System.out.println("洗牌后" + All_Cards);

发牌

 /* 定义三个玩家*/List<Cards> zhangwuji = new ArrayList<>();List<Cards> zhaomin = new ArrayList<>();List<Cards> zhouzhiruo = new ArrayList<>();/*发牌*/for(int i = 0;i < All_Cards.size() - 3;i ++){Cards ca = All_Cards.get(i);switch (i % 3) {case 0 -> zhangwuji.add(ca);case 1 -> zhaomin.add(ca);case 2 -> zhouzhiruo.add(ca);}}

发牌排序

private static void sortCards(List<Cards> cards){cards.sort(Comparator.comparingInt(Cards::getIndex));}
/*对牌排序*/sortCards(zhangwuji);sortCards(zhouzhiruo);sortCards(zhaomin);

看牌

/*看牌*/System.out.println("张无忌" + zhangwuji);System.out.println("赵敏" + zhaomin);System.out.println("周芷若" + zhouzhiruo);List<Cards> LastCards = All_Cards.subList(All_Cards.size() - 3,All_Cards.size());System.out.println("底牌" + LastCards);

总体代码

牌组类

public class Cards {private String number;private String color;private int index;public Cards() {}public Cards(String number, String color, int index) {this.number = number;this.color = color;this.index = index;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}public String toString() {return  number + color;}
}

牌的操作

public class Main_Demo {public static List<Cards> All_Cards = new ArrayList<>();static{// 1.定义一个数组存储牌的点数,类型确定,个数确定请用数组存储!String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};// 2.定义一个数组存储牌的花色,类型确定,个数确定请用数组存储!int index = 0;String[] colors = { "♠", "♥", "♣", "♦" };for (String number : numbers) {for (String color : colors) {Cards card = new Cards(number,color,index ++);All_Cards.add(card);}}Collections.addAll(All_Cards,new Cards("","🃏",index ++),new Cards("","👲",index ++));}//对分的牌排序   降序  "3","4","5","6","7","8","9","10","J","Q","K","A","2","🃏","👲"private static void sortCards(List<Cards> cards){cards.sort(Comparator.comparingInt(Cards::getIndex));}public static void main(String[] args){/*洗牌*/System.out.println("洗牌前" + All_Cards);Collections.shuffle(All_Cards);System.out.println("洗牌后" + All_Cards);/* 定义三个玩家*/List<Cards> zhangwuji = new ArrayList<>();List<Cards> zhaomin = new ArrayList<>();List<Cards> zhouzhiruo = new ArrayList<>();/*发牌*/for(int i = 0;i < All_Cards.size() - 3;i ++){Cards ca = All_Cards.get(i);switch (i % 3) {case 0 -> zhangwuji.add(ca);case 1 -> zhaomin.add(ca);case 2 -> zhouzhiruo.add(ca);}}/*对牌排序*/sortCards(zhangwuji);sortCards(zhouzhiruo);sortCards(zhaomin);/*看牌*/System.out.println("张无忌" + zhangwuji);System.out.println("赵敏" + zhaomin);System.out.println("周芷若" + zhouzhiruo);List<Cards> LastCards = All_Cards.subList(All_Cards.size() - 3,All_Cards.size());System.out.println("底牌" + LastCards);}
}

http://www.ppmy.cn/news/748940.html

相关文章

stm32驱动MCP2515芯片,项目已通过测试

最近公司做一个项目&#xff0c;需要3路can通道&#xff0c;但是stm32看了很久&#xff0c;最多也就只有2个can&#xff0c;所以找到了一款MCP2515芯片&#xff0c;可以用spi驱动can。 已经实现了can的发送和接收&#xff0c;接收采用的是外部中断接收的方式。和单片机本身带的…

Kubernetes配置 Pods 和容器—调整分配给容器的 CPU 和内存资源

本页说明如何在不重启 Pod 或其容器的情况下调整分配给运行中 Pod 容器的 CPU 和内存资源。 Kubernetes 节点会基于 Pod 的 requests 为 Pod 分配资源&#xff0c; 并基于 Pod 的容器中指定的 limits 限制 Pod 的资源使用。 对于原地调整 Pod 资源而言&#xff1a; 针对 CPU …

RTX3070、3070Ti相当于什么水平?

RTX 3070采用的是GA104-300核心&#xff0c;基于三星8nm制程工艺&#xff0c;拥有6组GPC&#xff0c;46组SM单元共计5888个流处理器、96个ROP、184个纹理单元、184个第三代Tensor Cores、46个第二代RT Cores。搭配8GB三星GDDR6显存&#xff0c;显存频率14GHz、位宽256Bit、带宽…

Git入门级指南

Git入门级指南 在软件开发和版本控制中&#xff0c;Git是一种非常流行且强大的工具。本文将为你提供关于Git的基本知识&#xff0c;并提 供一些实例来演示如何正确使用Git来管理代码。 关于git的简介 Git是一种分布式版本控制系统&#xff0c;它可以跟踪和管理项目中的代码…

redis 笔记

文章学习参考&#xff1a;Redis 教程 | 菜鸟教程 (runoob.com) 1、安装并执行 1.1 安装 下载地址&#xff1a;https://github.com/tporadowski/redis/releases 点击下面的压缩文件下载&#xff0c;版本不一定是这个。 1.2 执行redis 打开cmd窗口&#xff0c;跳转到redis解压的…

2023 TCT亚洲3D打印展预约全面启动,看透技术、材料、应用与市场现状

亚洲3D打印、增材制造展览会&#xff08;TCT Asia&#xff09;将于2023年9月12-14日在国家会展中心&#xff08;上海&#xff09;4.1馆举办。2023年规模再升级&#xff0c;27,000㎡展览面积&#xff0c;比去年增长31%&#xff0c;汇集超过300家展商&#xff0c;是观众了解数字化…

linux的3d软件下载,3d切片软件下载 FlashPrint(3D闪铸切片软件) V4.6.2 linux版 64位 下载-脚本之家...

FlashPrint一款3D切片软件&#xff0c;该软件是由闪铸科技推出&#xff0c;此款为用户打造提供支持手动添加删除支撑、内外径补偿、2d转3d以及智能模型分割等功能&#xff0c;适用于win、mac、linux等操作系统&#xff0c;本站提供的是该软件的linux64位版本&#xff0c;有需要…

Flashprint,闪铸科技3D打印流程

一、设计 设计者可以根据自己的能力选择CAD&#xff0c;SOILDWORKS进行制图&#xff0c;制图大小应根据自己所拥有的打印机尺寸严格规范。创作完成后文件格式保存为.STL格式。 二、软件下载 如果你和我的打印机一样是闪铸科技的&#xff0c;可以前往官网Flashforge Profession…