Java扑克牌(斗地主发牌)
JAVA 扑克牌 斗地主
2023-09-14 09:05:00 时间
分牌:将原列表分为4个列表,分别是3个农民与底牌
package com.item.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class Action {
public static void main(String[] args) {
//随机卡牌
List<Card> list=ResetCard(StartCard());
List<Card> one=list.subList(0,17);
List<Card> two=list.subList(17,2*17);
List<Card> three=list.subList(2*17,3*17);
List<Card> four=list.subList(3*17,54);
System.out.println("农民");
for (Card c:one) {
System.out.print(c.getIndex()+":"+c.getName()+"\t");
}
System.out.println();
System.out.println("农民");
for (Card c:two) {
System.out.print(c.getIndex()+":"+c.getName()+"\t");
}
System.out.println();
System.out.println("农民");
for (Card c:three) {
System.out.print(c.getIndex()+":"+c.getName()+"\t");
}
System.out.println();
System.out.println("底牌");
for (Card c:four) {
System.out.print(c.getIndex()+":"+c.getName()+"\t");
}
System.out.println();
}
/**
* 随机排序
* @param list
* @return
*/
public static List<Card> ResetCard(List<Card> list){
Collections.shuffle(list);
return list;
}
/**
* 初始化卡牌
* @return
*/
public static List<Card> StartCard(){
List<Card> list=new ArrayList<>(54);
int i=0;
for (CardsEnum cardsEnum:CardsEnum.values()) {
for (CardColorEnum cardColorEnum:CardColorEnum.values()) {
list.add(new Card(cardsEnum,cardColorEnum,i++));
}
}
Card big=new Card();
big.setName(CardBossEnum.BIG.getName());
big.setIndex(i++);
Card small=new Card();
small.setName(CardBossEnum.SMALL.getName());
small.setIndex(i++);
list.add(big);
list.add(small);
return list;
}
}
效果如下:
相关文章
- Java实现 LeetCode_0048_RotateImage
- java实现扑克牌移动
- java实现扑克牌移动
- java实现整数翻转
- (Java实现) 洛谷 P1605 迷宫
- 浅谈《think in java》:一 对象导论总结
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
- Java扑克牌(enum)
- 蓝桥杯官网 试题 PREV-261 历届真题 循环小数【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法
- Java遇上SPL:架构优势和开发效率,一个不放过
- Java凝视Override、Deprecated、SuppressWarnings具体解释