⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 consoleprinter.java

📁 麻将程序
💻 JAVA
字号:
package com.newpalm.game.mj.client;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import com.newpalm.game.mj.share.MJCard;
import com.newpalm.game.mj.share.PlayerCardModule;

/**
 * @author ama
 */
public class ConsolePrinter {
        private static int cardWidth;
        private static String blank;
        static {
                MJCard card = new MJCard(0);
                cardWidth = getStringPrintLength(card.toString());
                blank = genRepeatString(" ", cardWidth+2);
        }

        public static String print(PlayerCardModule pc, boolean hidden) {
                String str;
                str = print(pc.getSortedHandCards(), hidden);
                if (pc.getNewCard() != null) {
                        str += blank + print(pc.getNewCard(), hidden);
                }

                if (pc.getTransparentCaptivePairs().size()>0) {
                        str += blank;
                        str += print(pc.getTransparentCaptivePairs(), false);
                }

                if (pc.getOpacityCaptivePairs().size()>0) {
                        str += " " + print(pc.getOpacityCaptivePairs(), hidden);
                }

                if (pc.getDroppedCards().size() == 0) {
                        str += "\n";
                        return str;
                }


                List list = null;
                if (pc.getDroppedCards() instanceof List)
                        list = (List)pc.getDroppedCards();
                else
                        list = new Vector(pc.getDroppedCards());

                int wrapWidth = 9;
                for (int i = 0; i < list.size(); i++) {
                        MJCard card = (MJCard)list.get(i);
                        if (i%wrapWidth==0 && i != list.size())
                                str += "\n";
                        str += print(card, false) + " ";
                }

//		str += "\n";
                return str;
        }


        //
        public static String print(MJCard card, boolean hidden) {
                if (hidden)
                        return genRepeatString("-", cardWidth);
                else
                        return card.toString();
        }

        public static String print(MJCard[] pair, boolean hidden) {
                String str = "";
                for (int i = 0; i < pair.length; i++) {
                        str += print(pair[i], hidden);
                        if (i < pair.length - 1)
                                str += " ";
                }
                return str;
        }

        public static String print(Collection cards, boolean hidden) {
                String str = "";
                for (Iterator iter = cards.iterator(); iter.hasNext();) {
                        Object item = iter.next();
                        if (item instanceof MJCard) {
                                MJCard card = (MJCard)item;
                                str += print(card, hidden);
                                if (iter.hasNext())
                                        str += " ";
                        } else if (item instanceof MJCard[]) {
                                MJCard[] pair = (MJCard[])item;
                                str += print(pair, hidden);
                                if (iter.hasNext())
                                        str += blank;
                        }
                }
                return str;
        }

        public static String printCardsWithNo(Collection cards) {
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < cards.size() && i < 13; i++) {
                        if (i%3==0)
                                sb.append(i + genRepeatString(" ", cardWidth));
                        else
                                sb.append(genRepeatString(" ", cardWidth+1));
                }
                sb.append("\n" + print(cards, false));
                return sb.toString();
        }

        public static String wrapText(String str) {
                String ctop = "-", cleft = "|", cright = "|", clt = "+";
                String top;
                String[] lines = str.split("\n");
                int width = 0;
                for (int i = 0; i < lines.length; i++) {
                        String string = lines[i];
                        width = Math.max(width, getStringPrintLength(string));
                }
                width += 2;
                top = genRepeatString(ctop, width);

                StringBuffer sb = new StringBuffer();
                sb.append(clt + ctop + top + ctop + clt + "\n");
                for (int i = 0; i < lines.length; i++) {
                        sb.append(
                                cleft
                                        + " "
                                        + lines[i]
                                        + genRepeatString(" ", width - getStringPrintLength(lines[i]))
                                        + " "
                                        + cright
                                        + "\n");
                }
                sb.append(clt + ctop + top + ctop + clt + "\n");
                return sb.toString();
        }

        private static int getStringPrintLength(String str){
                int n = 0;
                for (int i = 0; i < str.length(); i++) {
                        char c = str.charAt(i);
                        if ((int)c > Byte.MAX_VALUE) {
                                n = n + 2;
                        } else
                                n++;
                }
                return n;
        }

        private static String genRepeatString(String c, int times) {
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < times; i++) {
                        sb.append(c);
                }
                return sb.toString();
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -