斗地主业务设计看之前文章:斗地主业务:做牌(java)。-CSDN博客
在room中套用方法游戏开始,进行洗牌,发牌,排序,看牌等操作。
/*
* 游戏启动
* */
public void start() {
//1、洗牌:allCards
Collections.shuffle(allCard);
System.out.println("洗牌后:" + allCard);
//2、发牌,首先肯定要定义 三个玩家 List(ArrayList) Set
List<Card> ZhaSan = new ArrayList<>();
List<Card> LiSi = new ArrayList<>();
List<Card> WangWu = new ArrayList<>();
//正式发牌给这三个玩家,依次发牌
for (int i = 0; i < allCard.size() - 3; i++) {
Card c = allCard.get(i);
if (i % 3 == 0) {
ZhaSan.add(c);
} else if (i % 3 == 1) {
LiSi.add(c);
} else if (i % 3 == 2) {
WangWu.add(c);
}
}
//3、看牌
System.out.println("张三:" + ZhaSan);
System.out.println("李四:" + LiSi);
System.out.println("王五:" + WangWu);
//把最后三张底牌放到一个集合中,最后给地主
List<Card> last = allCard.subList(allCard.size() - 3, allCard.size());
System.out.println("底牌:" + last);
ZhaSan.addAll(last);
System.out.println("张三拿到底牌");
//4排序
sortCards(ZhaSan);
sortCards(LiSi);
sortCards(WangWu);
}
//排序
private void sortCards(List<Card> cards) {
Collections.sort(cards, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o1.getSize() - o2.getSize(); //进行升序排序了
}
});
}
在Game类中进行游戏开始: