不想写,只说思路吧
1,用Link当抽取一张后就删除抽取的那个节点
2用stack,stack里保存的扑克随机生机,那么抽取时也是随便也保存不会抽取到已经抽取的
还有其他的方法我就不说了,够用就行了
Card[] cards = new Card[54]; // 这是一个数组,是一个普通对象。
Player[] players = new Player[3]; // 这是一个数组,是一个普通对象。
第一行,调用了数组 cards 上索引为 0 的元素的 toString 方法,对应于 Card 类的 toString 方法。
第二行,调用了数组 cards 的 toString 方法,对应于 Card[] 类的 toString 方法,继承自 Object 类。
第三行,调用了 Arrays 类的 toString 方法,传入参数是数组 cards ,具体可查找该方法的源码。
第四行,调用了数组 players 上索引为 0 的元素的 toString 方法,对应于 Player 类的 toString 方法。
第五行,调用了数组 players 的 toString 方法,对应于 Player[] 类的 toString 方法,继承自 Object 类。
第六行,调用了 Arrays 类的 toString 方法,传入参数是数组 players ,具体可查找该方法的源码。
简单说一下 ArraystoString() ,它返回是由数组内所有元素的字符串化(toString)合并而成的字符串对象。
因此:
1 不是同一个 toString 方法,任何对象都可调用自身的 toString 方法。
2 因为 Player 类的 toString 方法内曾调用了“ ArraystoString(cards) ”。
4 任何对象都可调用自身的 toString 方法,数组是对象。
5 数组是对象,一样有对应的类型,其类型一样继承自 Object 类,继承了 toString 方法。
最后,有任何疑问请追问。
public class PokerDemo {
public static void main(String[] args) {
// 创建一个HashMap集合
HashMap<Integer, String> hm = new HashMap<Integer, String>();
// 创建一个ArrayList集合
ArrayList<Integer> array = new ArrayList<Integer>();
// 创建花色数组和点数数组
// 定义一个花色数组
String[] colors = { "♠", "♥", "♣", "♦" };
// 定义一个点数数组
String[] numbers = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
"K", "A", "2", };
// 从0开始往HashMap里面存储编号,并存储对应的牌,同时往ArrayList里面存储编号即可。
int index = 0;
for (String number : numbers) {
for (String color : colors) {
String poker = colorconcat(number);
hmput(index, poker);
arrayadd(index);
index++;
}
}
hmput(index, "小王");
arrayadd(index);
index++;
hmput(index, "大王");
arrayadd(index);
// 洗牌(洗的是编号)
Collectionsshuffle(array);
// 发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收)
TreeSet<Integer> fengQingYang = new TreeSet<Integer>();
TreeSet<Integer> linQingXia = new TreeSet<Integer>();
TreeSet<Integer> liuYi = new TreeSet<Integer>();
TreeSet<Integer> diPai = new TreeSet<Integer>();
for (int x = 0; x < arraysize(); x++) {
if (x >= arraysize() - 3) {
diPaiadd(arrayget(x));
} else if (x % 3 == 0) {
fengQingYangadd(arrayget(x));
} else if (x % 3 == 1) {
linQingXiaadd(arrayget(x));
} else if (x % 3 == 2) {
liuYiadd(arrayget(x));
}
}
// 看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
lookPoker("风清扬", fengQingYang, hm);
lookPoker("林青霞", linQingXia, hm);
lookPoker("刘意", liuYi, hm);
lookPoker("底牌", diPai, hm);
}
// 写看牌的功能
public static void lookPoker(String name, TreeSet<Integer> ts,
HashMap<Integer, String> hm) {
Systemoutprint(name + "的牌是:");
for (Integer key : ts) {
String value = hmget(key);
Systemoutprint(value + " ");
}
Systemoutprintln();
}
}
以上就是关于用JAVA实现在52张扑克牌中随机抽取一张功能(除大小王),不允许随机抽取的扑克牌出现重复全部的内容,包括:用JAVA实现在52张扑克牌中随机抽取一张功能(除大小王),不允许随机抽取的扑克牌出现重复、用Java写一个扑克牌类,扑克牌有花色和大小,并且有一个tostring方法,返回扑克牌的信息、求一个JAVA扑克牌程序,新人才学习JAVA,能运行的话直接给300分。不知道该怎么入手。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)