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

📄 mjconsoleclienteventhandler.java~7~

📁 麻将程序
💻 JAVA~7~
📖 第 1 页 / 共 2 页
字号:
                String[] rt = null;
                String cmdpmt = "";
                for (int i = 0; i < cmds.length; i++) {
                        ConsoleCommand cmd = cmds[i];
                        cmdpmt += cmd.getPrompt();
                        if (i < (cmds.length - 1))
                                cmdpmt += "|";
                }
                if (showCmds) {
                        prompt += "(" + cmdpmt + "):";
                }

                while (true) {
                        System.out.print(prompt);
                        rt = readCommand();
                        if (rt == null || rt.length == 0)
                                continue;
                        String thiscmd = rt[0];
                        for (int i = 0; i < cmds.length; i++) {
                                String cmd = cmds[i].getCommand();
                                if (cmd.equalsIgnoreCase(thiscmd))
                                        return rt;
                        }
                }

        }

        private String[] readCommand() {
                String[] rt = null;
                try {
                        BufferedReader br =
                                new BufferedReader(new InputStreamReader(System.in));
                        String line = br.readLine();
                        if (line == null)
                                return null;
                        rt = line.split(" ");
                } catch (Exception e) {
                        System.err.println(e);
                }
                return rt;
        }

        private boolean doCommond(String[] cmd) {
                String op = cmd[0];
                if (op.equalsIgnoreCase("q")) {
                        theClient.exitInstance();
                } else if (op.equalsIgnoreCase("a")) { // an gang
                        return doCmdAnGang(cmd);
                } else if (op.equalsIgnoreCase("c")) { // pass
                return doCmdPass(cmd);
                } else if (op.equalsIgnoreCase("d")) { // drop
                        return doCmdDrop(cmd);
                } else if (op.equalsIgnoreCase("e")) { // eat
                        return doCmdEat(cmd);
                } else if (op.equalsIgnoreCase("g")) { // gang
                        return doCmdGang(cmd);
                } else if (op.equalsIgnoreCase("h")) { // hu
                        return doCmdHu(cmd);
                } else if (op.equalsIgnoreCase("p")) { // peng
                        return doCmdPeng(cmd);
                } else if (op.equalsIgnoreCase("l")) { // look
                        return doCmdLook(cmd);
                }
                return true;
        }

        private boolean doCmdLook(String[] cmd) {
                StringBuffer sb = new StringBuffer();
                String[] changfeng = { "东风", "南风", "西风", "北风" };
                int bankNo = theMod.getBankerNo();
                int lastPlayerNo = theMod.getLastPlayerNo();
                int nLeftCard = theMod.countLeftCard();
                MJCard ldCard = theMod.getLastDroppedCard();

                sb.append("玩家:" + theClient.getPlayer());
                sb.append("    " + changfeng[(bankNo + 4 - myNo) % 4] + "\n");
                sb.append("剩余牌个数(" + nLeftCard + ")\n");
                sb.append("\n");

                sb.append(
                        ConsolePrinter.print(
                                theMod.getNextPlayerCardModule(theClient),
                                true));
                if (ldCard != null && lastPlayerNo == (myNo + 1) % 4)
                        sb.append(" <\n");
                else
                        sb.append("\n");
                sb.append(
                        ConsolePrinter.print(
                                theMod.getOpsPlayerCardModule(theClient),
                                true));
                if (ldCard != null && lastPlayerNo == (myNo + 2) % 4)
                        sb.append(" <\n");
                else
                        sb.append("\n");
                sb.append(
                        ConsolePrinter.print(
                                theMod.getPrevPlayerCardModule(theClient),
                                true));
                if (ldCard != null && lastPlayerNo == (myNo + 3) % 4)
                        sb.append(" <\n");
                else
                        sb.append("\n");

                sb.append("\n");
                sb.append(
                        ConsolePrinter.print(theMod.getMyCardModule(theClient), false));
                if (ldCard != null && lastPlayerNo == myNo)
                        sb.append(" <\n");
                else
                        sb.append("\n");

                String str = ConsolePrinter.wrapText(sb.toString());
                System.out.println(str);
//		System.out.println(sb.toString());

                    return true;
        }


        private boolean doCmdDrop(String[] cmd) {
                List allCards = theMod.getMyCardModule(theClient).getDroppableCards();

                int no = readNumber(ConsolePrinter.printCardsWithNo(allCards), 0, allCards.size() - 1);

                MJCard card = (MJCard) allCards.get(no);
                theClient.dropACard(card);
                System.out.println(card);
                return true;
        }

        private boolean doCmdPass(String[] cmd) {
                theClient.sendPassSignal();
                return true;
        }

        private boolean doCmdEat(String[] cmd) {
                MJCard card = theMod.getLastDroppedCard();
                PlayerCardModule myCards = theMod.getMyCardModule(theClient);
                MJCardCollection handCards = myCards.getHandCards();

                Collection pairs = handCards.getEatablePairs(card);
                if (pairs == null || pairs.size() == 0)
                        return false;

                if (pairs.size() == 1) {
                        MJCard[] pair = (MJCard[]) pairs.iterator().next();
                        theClient.eatWithPair(card, pair);
                        return true;
                }

                int n =
                        readNumber(
                                ConsolePrinter.print(pairs, false),
                                0,
                                pairs.size() - 1);
                int i = 0;
                for (Iterator iter = pairs.iterator(); iter.hasNext(); i++) {
                        MJCard[] pair = (MJCard[]) iter.next();
                        if (i == n) {
                                theClient.eatWithPair(card, pair);
                                return true;
                        }
                }

                return false;
        }

        private boolean doCmdGang(String[] cmd) {
                MJCard card = theMod.getLastDroppedCard();
                theClient.gang(card);
                return true;
        }

        private boolean doCmdAnGang(String[] cmd) {
                PlayerCardModule myCards = theMod.getMyCardModule(theClient);
                MJCardCollection handCards = myCards.getHandCards();
                MJCard[] cards = handCards.getAnGangableCards();
                int n = 0;
                if (cards.length > 1)
                         readNumber(ConsolePrinter.print(cards, false), 0, cards.length-1);
                theClient.anGang(cards[n]);
                return true;
        }

        private boolean doCmdHu(String[] cmd) {
                theClient.hu();
                return true;
        }

        private boolean doCmdPeng(String[] cmd) {
                MJCard card = theMod.getLastDroppedCard();
                theClient.peng(card);
                return true;
        }


}

⌨️ 快捷键说明

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