终于想到一个解决的办法,使用ArrayList可以解决问题,但是还是编译有问题,但是可以正常输出了。请大神指教!!!
输出结果:
第一个人的牌--[{梅花J}, {红桃7}, {红桃9}, {红桃Q}, {黑桃K}, {方块7}, {梅花10}, {黑桃6}, {方块K}, {梅花6}, {方块J}, {红桃A}]
第二个人的牌--[{方块4}, {方块6}, {梅花5}, {梅花2}, {梅花A}, {红桃3}, {黑桃5}, {方块5}, {黑桃9}, {梅花K}, {梅花4}, {红桃8}]
第三个人的牌--[{梅花3}, {黑桃A}, {红桃J}, {黑桃3}, {梅花7}, {红桃6}, {红桃10}, {红桃5}, {方块8}, {黑桃8}, {梅花9}, {黑桃Q}]
第四个人的牌[--{梅花Q}, {方块10}, {黑桃J}, {方块A}, {黑桃4}, {方块Q}, {黑桃10}, {红桃K}, {黑桃2}, {方块9}, {方块2}, {红桃4}]
底牌--[{黑桃7}, {方块3}, {梅花8}, {红桃2}]
源码如下:
package com.yuhongzhen;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
//扑克类
class Poker{
String color; //花色
String num; //点数
//扑克类初始化参数
public Poker(String color, String num) {
super();
this.color = color;
this.num = num;
}
//重写toString方法
@Override
public String toString() {
return "{"+color+num+"}";
}
}
public class Demo2 {
public static void main(String[] args) {
ArrayList pokers = createPoker();
shufflePoker(pokers);
//showPoker(pokers);
/*System.out.print("第一个人的牌--");
getPoker(pokers);
System.out.println();
System.out.print("第二个人的牌--");
getPoker(pokers);
System.out.println();
System.out.print("第三个人的牌--");
getPoker(pokers);
System.out.println();
System.out.print("第四个人的牌--");
getPoker(pokers);
System.out.println();
System.out.print("底牌--");
System.out.println(pokers);
System.out.println(pokers.size());*/
System.out.println("第一个人的牌"+getPoker(pokers));
System.out.println("第二个人的牌"+getPoker(pokers));
System.out.println("第三个人的牌"+getPoker(pokers));
System.out.println("第四个人的牌"+getPoker(pokers));
System.out.println("底牌"+pokers);
}
//洗牌的功能
public static void shufflePoker(ArrayList pokers){
//创建随机数对象
Random random = new Random();
for(int i = 0 ; i <100; i++){
//随机产生两个索引值
int index1 = random.nextInt(pokers.size());
int index2 = random.nextInt(pokers.size());
//根据索引值取出两张牌,然后交换两张牌的顺序
Poker poker1 = (Poker) pokers.get(index1);
Poker poker2 = (Poker) pokers.get(index2);
pokers.set(index1, poker2);
pokers.set(index2, poker1);
}
}
//显示扑克牌
public static void showPoker(ArrayList pokers){
for(int i = 0 ; i<pokers.size() ; i++){
System.out.print(pokers.get(i));
//换行
if(i%10==9){
System.out.println();
}
}
}
//生成扑克牌的方法
public static ArrayList createPoker(){
//该集合用于存储扑克对象。
ArrayList list = new ArrayList();
//定义数组存储所有的花色与点数
String[] colors = {"黑桃","红桃","梅花","方块"};
String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i = 0 ; i < nums.length ; i++){
for(int j = 0 ; j<colors.length ; j++){
list.add(new Poker(colors[j], nums[i]));
}
}
return list;
}
//发牌方法
public static ArrayList getPoker(ArrayList pokers){
ArrayList list=new ArrayList();
Iterator itr=pokers.iterator();
for(int i=0;i<12;i++){
list.add(i, itr.next());
itr.remove();
}
return list;
/*Iterator it=list.iterator();
while(it.hasNext()){
System.out.print(it.next());
}
*/
}
}
|