黑马程序员技术交流社区
标题:
【记录】代码练习-斗地主
[打印本页]
作者:
Kevin.Kang
时间:
2015-7-21 11:09
标题:
【记录】代码练习-斗地主
package com.kxg.Poker;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class PokerDemo {
public static void main(String[] args) {
// 把扑克存储起来,有一个键来对应。
HashMap<Integer, String> hm = new HashMap<Integer, String>();
// 把扑克对应的所有键存储起来
ArrayList<Integer> arr = new ArrayList<Integer>();
// 扑克花色
String[] colors = { "♦", "♣", "♥", "♠" };
// 扑克数字
String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
// 定义每张扑克对应的序号
int count = 0;
// for嵌套循环得到所有的扑克,先遍历数字,再遍历花色,得到按照斗地主中的规则进行大小排序
for (String number : numbers) {
for (String color : colors) {
String poker = color.concat(number);
hm.put(count, poker);// 把扑克和对应序号添加到HashMap集合中
arr.add(count);// 把序号添加到ArrayList集合中
count++;// 每添加一张,对应序号++一次
}
}
hm.put(count, "小王");
arr.add(count);
count++;
hm.put(count, "大王");
arr.add(count);
// 利用Collections工具类打乱序号顺序
Collections.shuffle(arr);
// 定义三个人的扑克集合,用TreeSet是为了使得到的序号有序
TreeSet<Integer> lyx = new TreeSet<Integer>();
TreeSet<Integer> kxg = new TreeSet<Integer>();
TreeSet<Integer> rxy = new TreeSet<Integer>();
TreeSet<Integer> diPai = new TreeSet<Integer>();
// 发牌
for (int x = 0; x < arr.size(); x++) {
// 扑克剩余最后三张就给底牌
if (x >= arr.size() - 3) {
diPai.add(arr.get(x));
// 根据余数的不同,给三人发牌
} else if (x % 3 == 2) {
lyx.add(arr.get(x));
} else if (x % 3 == 1) {
kxg.add(arr.get(x));
} else if (x % 3 == 0) {
rxy.add(arr.get(x));
}
}
lookPoker("李延旭", lyx, hm);
lookPoker("任兴亚", rxy, hm);
lookPoker("康小广", kxg, hm);
lookPoker("底牌", diPai, hm);
}
// 创建一个看牌功能,参数分别为姓名,玩家扑克的集合,扑克和对应序号的HashMap集合。
public static void lookPoker(String name, TreeSet<Integer> set,
HashMap<Integer, String> hm) {
// 显示玩家姓名
System.out.println(name + "的牌是:");
// 遍历玩家中TreeSet集合中的序号,根据序号到HashMap集合中找对应的扑克,输出即可
for (Integer key : set) {
String value = hm.get(key);
System.out.print(value + " ");
}
System.out.println();
}
}
复制代码
作者:
嘟嘟嘟嘟嘟
时间:
2015-7-21 11:10
从代码看出,楼主叫康小广:)
作者:
朝着梦想使劲冲
时间:
2015-7-21 12:28
厉害··························
作者:
yaoxufanalan
时间:
2015-7-21 12:40
厉害,,,,
作者:
木森
时间:
2015-7-21 13:08
嘟嘟嘟嘟嘟 发表于 2015-7-21 11:10
从代码看出,楼主叫康小广
好奇,你咋看出来的,我是没发现,请赐教,难道你认识?
作者:
嘟嘟嘟嘟嘟
时间:
2015-7-21 14:38
木森 发表于 2015-7-21 13:08
好奇,你咋看出来的,我是没发现,请赐教,难道你认识?
lookPoker("李延旭", lyx, hm);
lookPoker("任兴亚", rxy, hm);
lookPoker("康小广", kxg, hm);
lookPoker("底牌", diPai, hm);
复制代码
楼主网名 Kevin.Kang
作者:
mortonnnn
时间:
2015-7-23 00:31
厉害学习了
作者:
mortonnnn
时间:
2015-7-23 00:52
厉害了学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2