您的位置:首页 > 编程语言 > Java开发

斗地主JAVA简要实现

2017-08-12 00:00 155 查看
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;

public class ddzDemo2 {
/**
* 斗地主--最终版
*
* @param args
*            定义牌 装牌 洗牌 发牌 看牌
*/

public static void main(String[] args) {
// 按从小到大存放牌
HashMap<Integer, String> hmcard = new HashMap<Integer, String>();

// 定义牌的序号
ArrayList<Integer> indexcard = new ArrayList<Integer>();

String[] colorCard = { "♣", "♦", "♥", "♠" };
String[] digitCard = { "3", "4", "5", "6", "7", "8", "9", "10", "J",
"Q", "K", "A", "2" };

// 装牌
int index = 0;
for (String d : digitCard) {
for (String c : colorCard) {
hmcard.put(index, c.concat(d));
indexcard.add(index);
index++;
}
}
hmcard.put(index, "小王");
indexcard.add(index);
index++;
hmcard.put(index, "大王");
indexcard.add(index);

// 洗牌
Collections.shuffle(indexcard);

// 发牌 TressSet有序
TreeSet<Integer> player1 = new TreeSet<Integer>();
TreeSet<Integer> player2 = new TreeSet<Integer>();
TreeSet<Integer> player3 = new TreeSet<Integer>();
TreeSet<Integer> hole = new TreeSet<Integer>();
for (int i = 0; i < indexcard.size(); i++) {
if (i > indexcard.size() - 3 - 1) {
hole.add(indexcard.get(i));
} else if (i % 3 == 0) {
player1.add(indexcard.get(i));
} else if (i % 3 == 1) {
player2.add(indexcard.get(i));
} else if (i % 3 == 2) {
player3.add(indexcard.get(i));
}
}

// 看牌
checkcard("农民1", player1, hmcard);
checkcard("农民2", player2, hmcard);
checkcard("地主", player3, hmcard);
checkcard("hole", hole, hmcard);
}

public static void checkcard(String name, TreeSet<Integer> pl,
HashMap<Integer, String> hmcd) {
StringBuilder sb = new StringBuilder();
for (int p : pl) {
sb.append(hmcd.get(p) + " ");
}
if (name.equals("hole")) {
System.out.println("底牌是: " + sb);
} else {
System.out.println(name + "的牌是: " + sb);
}

}
}

运行:

农民1的牌是: ♣3 ♠3 ♣4 ♥4 ♠4 ♥8 ♠8 ♦9 ♠9 ♠10 ♦J ♥J ♣Q ♣K ♦A ♠A ♣2
农民2的牌是: ♥3 ♣5 ♥5 ♥6 ♠6 ♦7 ♣8 ♥9 ♦10 ♣J ♠J ♠Q ♥K ♠K ♣A ♠2 小王
地主的牌是: ♦3 ♦4 ♦5 ♠5 ♣6 ♣7 ♥7 ♠7 ♦8 ♣10 ♥10 ♦Q ♥Q ♦K ♥A ♦2 大王
底牌是: ♦6 ♣9 ♥2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 斗地主