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]
求帮助,帮我分析是哪里出错了
你想要输出什么效果????
//创建数字集合,代表54张牌
ArrayList cards = new ArrayList();
for(int i=0;i<=53;i++){
cards.add(i);
}
这里你放的是i
System.out.println("玩家1:"+sPlayer01);
System.out.println("玩家2:"+sPlayer02);
System.out.println("玩家3:"+sPlayer03);
System.out.println("底牌:"+sScretCards);
玩家1:[3♣, 4♠, 5❤, 6♠, 6♣, 7❤, 7♠, 9❤, 9♦, J♠, Q❤, Q♠, Q♣, A♠, 2❤, 2♠, 2♦]
玩家2:[3♠, 4❤, 5♦, 5♣, 6♦, 7♦, 8❤, 8♦, 9♣, 10♠, 10♣, J♦, J♣, k♦, A❤, 2♣, 大王]
玩家3:[3❤, 3♦, 4♦, 5♠, 6❤, 7♣, 8♠, 8♣, 9♠, 10❤, 10♦, k❤, k♠, k♣, A♦, A♣, 小王]
底牌:[4♣, J❤, Q♦]
// TODO Auto-generated method stub
ArrayList color = new ArrayList();
color.add("❤");
color.add("♠");
color.add("♦");
color.add("♣");
ArrayList number = new ArrayList();
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 map = new HashMap();
int index = 0;//表示牌的编号
for(String thisNumber:number){//外循环控制数字字符串
for(String thisColor:color){//内循环控制花色
map.put(index++, thisNumber + thisColor);
}
}
//加入大小王
map.put(index++, "小王");
map.put(index++, "大王");
//创建数字集合,代表54张牌
ArrayList cards = new ArrayList();
for(int i=0;i<=map.size();i++){
cards.add(map.get(i));
}
//洗牌,使用Collections的shuffle()方法
Collections.shuffle(cards);
//创建三个玩家和底牌
ArrayList iplayer01 = new ArrayList();
ArrayList iplayer02 = new ArrayList();
ArrayList iplayer03 = new ArrayList();
ArrayList iSecretCards = new ArrayList();
//遍历这副洗好的牌,遍历过程中,将牌发到三个玩家手中
for(int i=0;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);*/
//看牌
System.out.println("玩家1:"+iplayer01);
System.out.println("玩家2:"+iplayer02);
System.out.println("玩家3:"+iplayer03);
System.out.println("底牌:"+iSecretCards);
}
随便写该的
// 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<String> cards = new ArrayList<String>();
for(int i=0;i<map.size();i++){
cards.add(map.get(i));
}
//洗牌,使用Collections的shuffle()方法
Collections.shuffle(cards);
//创建三个玩家和底牌
ArrayList<String> iplayer01 = new ArrayList<String>();
ArrayList<String> iplayer02 = new ArrayList<String>();
ArrayList<String> iplayer03 = new ArrayList<String>();
ArrayList<String> iSecretCards = new ArrayList<String>();
//遍历这副洗好的牌,遍历过程中,将牌发到三个玩家手中
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);*/
//看牌
System.out.println("玩家1:"+iplayer01);
System.out.println("玩家2:"+iplayer02);
System.out.println("玩家3:"+iplayer03);
System.out.println("底牌:"+iSecretCards);