package com.baidu.study;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class HitLandLord {
/**
* @param 这是一个模拟发牌的小程序
* @author xunmeng
* @verion 1.0
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建扑克,并将牌放入牌盒
String[] color = { "♠", "♥", "♣", "♦" };
String[] num = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"J", "Q", "k" };
ArrayList<String> arrl = new ArrayList<String>();
arrl.add("BB");
arrl.add("SB");
for (String c : color) {
for (String n : num) {
arrl.add(c + n);
}
}
// System.out.println(arrl);
// 洗牌
Collections.shuffle(arrl);
// 创建三个玩家,并为其分牌
ArrayList<String> A = new ArrayList<String>();
ArrayList<String> B = new ArrayList<String>();
ArrayList<String> C = new ArrayList<String>();
for (int x = 0; x < arrl.size() - 3; x++) {
if (x % 3 == 0) {
A.add(arrl.get(x));
} else if (x % 3 == 1) {
B.add(arrl.get(x));
} else if (x % 3 == 2) {
C.add(arrl.get(x));
}
}
// 模拟抢地主思路在最后,个人感觉过于繁琐,有好的方法可以告诉下,谢谢
// 抢地主
System.out.println("A B C 三人玩抢地主,开始");
System.out.println("A: 抢地主");
System.out.println("B: 我抢");
System.out.println("C: 我抢");
System.out.print("地主是--");
ArrayList<String> dz = new ArrayList<String>();
dz.add("A");
dz.add("B");
dz.add("C");
Random r = new Random();
int index = r.nextInt(3);
System.out.println(dz.get(index));
// 公布底牌
ArrayList<String> dp = new ArrayList<String>();
for (int x = arrl.size() - 3; x < arrl.size(); x++) {
dp.add(arrl.get(x));
}
System.out.println("底牌是" + dp);
// 将底牌分给地主
if (index == 0) {
A.addAll(dp);
} else if (index == 1) {
B.addAll(dp);
} else if (index == 2) {
C.addAll(dp);
}
// 明牌
System.out.println("A的牌:" + A);
System.out.println("B的牌:" + B);
System.out.println("C的牌:" + C);
}
/*
* 完成三人抢地主做,当地主出现,循环结束,break,程序结束方式为有人抢到地主 输出语句模拟抢地主过程,
* 将要抢地主的人放入集合,然后随机取出一个,即为地主 switch随机方式选择几个人抢 1、三人都不抢 抢地主结束,重新开始, 2、只有一个人抢 A
* B C 输出语句模拟抢的过程和结果,手动为地主加入底牌 3、只有二个人抢 AB AC BC switch(随机case), case1:
* sop(AB抢) 定义AB集合随机取出一个 case2:sop(AC抢) case3:sop(BC抢) 4、三人都抢 代码已经实现
*/
}
|
|