Trise0813 2017-05-24 06:17 采纳率: 0%
浏览 763

求帮助看下代码哪出错了(用集合做的)

package poker.com;

import java.util.*;

public class PokerShuffleCards {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    ArrayList<String> color = new ArrayList<String>();
    color.add("❤");
    color.add("♠");
    color.add("♦");
    color.add("♣");
    ArrayList<String> number = new ArrayList<String>();
    for(int i=3;i<=10;i++){
        number.add(i+"");
    }
    number.add("J");
    number.add("Q");
    number.add("k");
    number.add("A");
    number.add("2");
    HashMap<Integer, String> map = new HashMap<Integer, String>();
    int index = 0;//表示牌的编号
    for(String thisNumber:number){//外循环控制数字字符串
        for(String thisColor:color){//内循环控制花色
            map.put(index++, thisNumber + thisColor);
        }
    }
    //加入大小王
    map.put(index++, "小王");
    map.put(index++, "大王");
    //创建数字集合,代表54张牌
    ArrayList<Integer> cards = new ArrayList<Integer>();
    for(int i=0;i<=53;i++){
        cards.add(i);
    }
    //洗牌,使用Collections的shuffle()方法
    Collections.shuffle(cards);
    //创建三个玩家和底牌
    ArrayList<Integer> iplayer01 = new ArrayList<Integer>();
    ArrayList<Integer> iplayer02 = new ArrayList<Integer>();
    ArrayList<Integer> iplayer03 = new ArrayList<Integer>();
    ArrayList<Integer> iSecretCards = new ArrayList<Integer>();
    //遍历这副洗好的牌,遍历过程中,将牌发到三个玩家手中
    for(int i=0;i<cards.size();i++){
        if(i >=51 ){
            iSecretCards.add(cards.get(i));
        }else{
            //与3取余为0的发给玩家1
            if(i%3 == 0) iplayer01.add(cards.get(i));
            //与3取余为1的发给玩家2
            else if(i%3 == 1) iplayer02.add(cards.get(i));
            //与3取余为2的发给玩家3
            else iplayer03.add(cards.get(i));
        }
    }
    //对每个人手中的牌排序,使用Collections工具类中的sort()方法
    Collections.sort(iplayer01);
    Collections.sort(iplayer02);
    Collections.sort(iplayer03);
    //对应数字形式中的每个人手中的牌。定义字符串形式的牌
    ArrayList<String> sPlayer01 = new ArrayList<String>();
    ArrayList<String> sPlayer02 = new ArrayList<String>();
    ArrayList<String> sPlayer03 = new ArrayList<String>();
    ArrayList<String> sScretCards = new ArrayList<String>();
    //遍历主键,从map中获得纸牌
    for (Integer key:iplayer01){  //第一个玩家手中的牌
        sPlayer01.add(map.get(key));    
    }
    for (Integer key:iplayer02){ //第二个玩家手中的牌
        sPlayer02.add(map.get(key));
    }
    for (Integer key:iplayer03){ //第三个玩家手中的牌
        sPlayer03.add(map.get(key));
    }
    for (Integer key:iSecretCards){ //底牌
        sScretCards.add(map.get(key));
    }
    //看牌
    System.out.println("玩家1:"+iplayer01);
    System.out.println("玩家2:"+iplayer02);
    System.out.println("玩家3:"+iplayer03);
    System.out.println("底牌:"+iSecretCards);
}

}

运算结果:
玩家1:[0, 3, 5, 8, 10, 11, 14, 15, 24, 25, 27, 35, 39, 43, 44, 52, 53]
玩家2:[1, 6, 16, 17, 18, 21, 23, 26, 28, 29, 36, 38, 40, 41, 42, 45, 50]
玩家3:[2, 4, 9, 12, 13, 19, 22, 30, 31, 32, 33, 37, 46, 47, 48, 49, 51]
底牌:[7, 34, 20]

求帮助,帮我分析是哪里出错了

  • 写回答

7条回答 默认 最新

  • Hefei19881002 2017-05-24 06:14
    关注

    你想要输出什么效果????

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码