发牌老方法记录

来源:互联网 发布:算术探索 知乎 编辑:程序博客网 时间:2024/06/05 17:48
//Fight against landlordspackage palycard.falandord;public class PlayCard {    // 牌类    private final String Card[] = { "红桃3", "黑桃3", "梅花3", "方块3", "红桃4", "黑桃4",            "梅花4", "方块4", "红桃5", "黑桃5", "梅花5", "方块5", "红桃6", "黑桃6", "梅花6",            "方块6", "红桃7", "黑桃7", "梅花7", "方块7", "红桃8", "黑桃8", "梅花8", "方块8",            "红桃9", "黑桃9", "梅花9", "方块9", "红桃10", "黑桃10", "梅花10", "方块10", "红桃J",            "黑桃J", "梅花J", "方块J", "红桃Q", "黑桃Q", "梅花Q", "方块Q", "红桃K", "黑桃K",            "梅花K", "方块K", "红桃A", "黑桃A", "梅花A", "方块A", "红桃2", "黑桃2", "梅花2",            "方块2", "小王", "大王" };    public String U1[] = new String[18];    public String U2[] = new String[18];    public String U3[] = new String[18];    // 将数组中null值往后放,前面只有一个null的时候方法成立    private void zeroNull(String X[]) {        for (int i = 0; i < X.length - 1; i++) {            if (X[i] == null) {                X[i] = X[i + 1];                X[i + 1] = null;            }        }    }    //    private int rdmIndex(int i) {        int a = i - 1;        a = (int) (Math.random() * i);        return a;    }    // 平均发牌给三个用户    private PlayCard allotCard(String[] X) {        PlayCard pc = new PlayCard();        String[] N = X.clone();        int I = N.length;        int index = 0;        for (int i = 0; i < pc.U1.length; i++) {            index = rdmIndex(I);            pc.U1[i] = N[index];            N[index] = null;            zeroNull(N);            I--;            index = rdmIndex(I);            pc.U2[i] = N[index];            N[index] = null;            zeroNull(N);            I--;            index = rdmIndex(I);            pc.U3[i] = N[index];            N[index] = null;            zeroNull(N);            I--;        }        washCard(pc.U1);        washCard(pc.U2);        washCard(pc.U3);        return pc;    }    // 显示    private void show(String[] X) {        System.out.println();        for (int i = 0; i < X.length; i++) {            System.out.print(i + "\t");        }        System.out.println();        for (String string : X) {            System.out.print(string + "\t");        }        System.out.println();    }    // 显示牌    private PlayCard showCard(String[] X) {        PlayCard pc = allotCard(X);        System.out.println("\n玩家一:");        show(pc.U1);        System.out.println("\n玩家二:");        show(pc.U2);        System.out.println("\n玩家三:");        show(pc.U3);        return pc;    }    // 返回卡牌的排位    private int indexArr(String[] X, String x) {        int in = -1;        for (int i = 0; i < X.length; i++) {            if (x.equals(X[i])) {                in = i;                break;            }        }        return in;    }    // 把每个人手里的牌按照顺序排列    private void washCard(String[] X) {        PlayCard c = new PlayCard();        for (int j = 0; j < X.length + 1; j++) {            for (int i = 0; i < X.length - 1; i++) {                int in1 = indexArr(c.Card, X[i]);                int in2 = indexArr(c.Card, X[i + 1]);                if (in1 > in2) {                    String ex = X[i];                    X[i] = X[i + 1];                    X[i + 1] = ex;                }            }        }    }    // 数组里面每一个字符串的最后一位    private String[] endArray(String[] X) {        String[] x = new String[X.length];        for (int i = 0; i < x.length; i++) {            x[i] = X[i].charAt(X[i].length() - 1) + "";        }        return x;    }    //    private void countSame(String[] X) {        int count = 1;        String mid = X[0];        for (int i = 1; i < X.length; i++) {            if (mid.equals(X[i])) {                count++;            } else if (count > 1) {                System.out.println(count + "个" + X[i - 1]);                mid = X[i];                count = 1;            }        }        /*         * for (int i = 0; i < X.length - 1; i++) { if (X[i].equals(X[i + 1])) {         * count++; } if ((!X[i].equals(X[i + 1]) || i == X.length - 2) && count         * >= 2) { if (X[i - 1].equals("0")) { System.out.println(count + "个1" +         * X[i - 1]); count = 1; } else if (i != X.length - 2) {         * System.out.println(count + "个" + X[i - 1]); count = 1; } else {         * System.out.println(count + "个" + X[i + 1]); count = 1; } } }         */    }    //    public void analyze(String[] X) {        // 最大牌        System.out.println("最大牌:\t" + X[X.length - 1]);        // 最小牌        System.out.println("最小牌:\t" + X[0]);        countSame(endArray(X));    }    public void analyzeAll(PlayCard pc) {        System.out.println("\n\n玩家一:");        analyze(pc.U1);        System.out.println("玩家二:");        analyze(pc.U2);        System.out.println("玩家三:");        analyze(pc.U3);    }    //    public static void main(String[] args) {        PlayCard pc = new PlayCard();        pc = pc.showCard(pc.Card);        pc.analyzeAll(pc);    }}
0 0
原创粉丝点击