简单的斗地主发牌逻辑是如何实现的?

1、准备54张牌

2、洗牌

3、发牌

4、看牌

package com.hisense.demo02;

import java.util.ArrayList;
import java.util.Collections;

/**
 * @author : sunkepeng E-mail:[email protected]
 * @date : 2020/8/3 17:46
 * 

* 斗地主: * 1、准备扑克,54张牌 * 2、洗牌 * 3、发牌 * 4、看牌 */ public class DouDiZhu { public static void main(String[] args) { // 1、准备一个ArrayList存放54张牌 ArrayList poker = new ArrayList<>(); // 定义两个数组,一个放花色,一个放点数 String[] colors = {"♥", "♠", "♦", "♣"}; String[] numbers = {"K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2", "A"}; // 大小王单独存储 poker.add("大王"); poker.add("小王"); // 放入52张牌 for (String number : numbers) { for (String color : colors) { poker.add(color + number); } } // 2、洗牌 Collections.shuffle(poker); // 3、发牌 ArrayList player01 = new ArrayList<>(); ArrayList player02 = new ArrayList<>(); ArrayList player03 = new ArrayList<>(); ArrayList diPai = new ArrayList<>(); /* 遍历poker集合,获取每一张牌 使用poker集合的索引%3给3个玩家轮流发牌 剩余3张牌给底牌 注意: 先判断底牌(i>=51),否则牌就发没了 */ for (int i = 0; i < poker.size(); i++) { String p = poker.get(i); if (i >= 51) { diPai.add(p); } else if (i % 3 == 0) { player01.add(p); } else if (i % 3 == 1) { player02.add(p); } else { player03.add(p); } } // 4、看牌 System.out.println("赌王:" + player01); System.out.println("赌圣:" + player02); System.out.println("赌神:" + player03); System.out.println("底牌:" + diPai); } }

 

你可能感兴趣的:(计算机基础,Java,斗地主,Collection,ArrayList)