斗地主案例
具体规则:
- 组装54张扑克牌
- 将54张牌顺序打乱
- 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
- 查看三人各自手中的牌、底牌
package com.itheima_03;
import java.util.ArrayList;
import java.util.Collections;
/*
* 模拟斗地主发牌
*
* 买牌
* 洗牌
* 发牌
*/
public class CollectionsTest {
public static void main(String[] args) {
//买牌
String[] arr = {"黑桃","红桃","方片","梅花"};
String[] arr2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
ArrayList<String> box = new ArrayList<String>();
//添加每张牌
for (int i = 0; i < arr.length; i++) {
//获取每一个花色
for (int j = 0; j < arr2.length; j++) {
//获取每一个数
box.add(arr[i]+arr2[j]);
}
}
box.add("大王");
box.add("小王");
// System.out.println(box.size());//查看牌个数
//洗牌
Collections.shuffle(box);
// System.out.println(box);//验证
//发牌
ArrayList<String> 赌神 = new ArrayList<String>();
ArrayList<String> 赌圣 = new ArrayList<String>();
ArrayList<String> 赌侠 = new ArrayList<String>();
//留三张底牌给地主
for (int i = 0; i < box.size()-3; i++) {
/*
* i = 0; i % 3 = 0
* i = 1; i % 3 = 1;
* i = 2; i % 3 = 2;
* i = 3; i % 3 = 0;
* i = 4; i % 3 = 1;
* i = 5; i % 3 = 2;
*/
if(i % 3 == 0) {
赌神.add(box.get(i));
}else if(i % 3 == 1) {
赌圣.add(box.get(i));
}else if(i % 3 == 2) {
赌侠.add(box.get(i));
}
}
System.out.println("赌神:"+赌神);
System.out.println("赌圣:"+赌圣);
System.out.println("赌侠:"+赌侠);
System.out.println("底牌");
/*System.out.println(box.get(box.size()-1));
System.out.println(box.get(box.size()-2));
System.out.println(box.get(box.size()-3));*/
for (int i = box.size()-3; i < box.size(); i++) {
System.out.println(box.get(i));
/*
* 赌神:[梅花4, 梅花7, 红桃3, 红桃2, 黑桃9, 方片A, 梅花K, 梅花6, 黑桃5, 梅花2, 方片J, 黑桃A, 红桃10, 梅花3, 方片8, 梅花9, 黑桃7]
* 赌圣:[红桃A, 方片6, 方片2, 梅花J, 方片3, 黑桃2, 红桃9, 黑桃4, 红桃7, 小王, 红桃8, 方片Q, 黑桃J, 红桃6, 梅花8, 方片K, 红桃J]
* 赌侠:[黑桃10, 方片4, 红桃5, 大王, 方片10, 梅花Q, 梅花A, 黑桃Q, 梅花5, 黑桃6, 方片7, 方片5, 黑桃3, 红桃K, 红桃Q, 黑桃K, 红桃4]
* 底牌
* 梅花10
* 黑桃8
* 方片9
*/
}
}
}