用JAVA实现在52张扑克牌中随机抽取一张功能(除大小王),不允许随机抽取的扑克牌出现重复

用JAVA实现在52张扑克牌中随机抽取一张功能(除大小王),不允许随机抽取的扑克牌出现重复,第1张

不想写,只说思路吧

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分。不知道该怎么入手。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10076872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存