String[] suit = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J",
"Q", "K", "A" };
String[] face = { "红桃", "黑桃", "方块", "梅花" };
就是生成牌 怎么用Int来实现 因为会方便后面比较大小!!
还有就是有木有高手有好用的洗牌算法。。真心求!

解决方案 »

  1.   

    生成牌后放到list中,调用 java.util.Collections的shuffle方法即可实现list中牌的乱序,洗牌也就完成了
      

  2.   

    我不知道规则怎样,假设A最大,2最小。
    A,K,Q,J,10,9....2,就是0到12,黑红梅方,就是0到3,比大小的时候,先比数字,再比花色。
    假设一张牌数字是X,花色是Y,这张牌可以给一个int,X * 4 + Y,数值小的牌比较大。比如红桃2,就是12 * 4 + 1 = 49,黑桃6就是8 * 4 + 0 = 32,红桃2比黑桃小大,黑桃2是12 * 4 + 0 = 48,黑桃2比红桃2大,比黑桃6小生成52个int数列后,按楼上方法完成洗牌
      

  3.   

    首先我问楼主为什么要用int来实现?
    A转为int的话对应应该是多少呢?
    1的话肯定不对。。
    既然java,就可以用对象的概念来写
    创建一个纸牌类public class Card {
    private String name;//纸牌的名称,比如3,Q等等
    private String color;//牌色,比如红桃,这里如果愿意的话,可以改成枚举类型
    private int level;//等级,在判断的大小的时候的标志

    public Card(String name,String color) {
    // TODO Auto-generated constructor stub
    this.name=name;
    this.color=color;
    init();
    } private void init() {
    //根据纸牌的名称和牌色来判断大小
    char c = name.substring(0, 1).toCharArray()[0];
    switch (c) {
    case '3':
    this.level=1;
    break;
    case '4':
    this.level=2;
    break;
    case '5':
    this.level=3;
    break;
    case '6':
    this.level=4;
    break;
    default:
    this.level=0;//level为0时代表有问题
    break;
    }
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public String getColor() {
    return color;
    } public void setColor(String color) {
    this.color = color;
    } public int getLevel() {
    return level;
    } public void setLevel(int level) {
    this.level = level;
    }

    }
      

  4.   

    创4个枚举,每个枚举代表一种花色,其中成员就是2到A,想用STRING表示就用STRING,想比较大小就强转成INT,绝对实用