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

📄 cardmodule.java~2~

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

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

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

/**
* @author liyamin
*/
public class CardModule {
        private Random rand = new Random();
    private List boardCards = new Vector();
        private List playerCardModules = new Vector();

        private int currentPlayerNo;
        private int lastPlayerNo;


    /**
    *@see java.lang.Object#Object()
    */
    public CardModule() {
                reset();
    }

    public boolean hasMoreBoardCard() {
        return !(getBoardCards().isEmpty());
    }

    public MJCard fetchNextBoardCardToPlayer(int playerNo) {
            if (!hasMoreBoardCard())
                    return null;
            MJCard card = (MJCard)getBoardCards().remove(0);
            giveCardToPlayer(card, playerNo);
            return card;
    }

    public MJCard fetchNextBoardCardToCurrentPlayer() {
            return fetchNextBoardCardToPlayer(getCurrentPlayerNo());
    }

    public void dropCard(int playerNo, MJCard card) {
            getPlayerCardModule(playerNo).dropACard(card);
            setLastPlayerNo(playerNo);
    }

        private void giveCardToPlayer(MJCard card, int playerNo) {
                getPlayerCardModule(playerNo).fetchNewCard(card);
        }

        public void reset() {
                generatorCards();
                playerCardModules.clear();
                for (int i = 0; i < 4; i++) {
                        playerCardModules.add(new PlayerCardModule());
                }
                shuffle();
        }

    private void generatorCards() {
            boardCards.clear();
        for (int i = 0; i <= 33; i++) { // 33
            for (int j = 0; j < 4; j++) { // 4
                MJCard card = new MJCard(i);
                boardCards.add(card);
            }
        }
    }

    private void shuffle() {
        List list = (List) getBoardCards();
        Object temp;
        for (int i = 0; i < list.size(); i++) {
            int j = rand.nextInt(list.size());
            temp = list.get(i);
            list.set(i, list.get(j));
            list.set(j, temp);
        }
    }

        public void sendInitialCards(int first) {
                reset();
                for (int i = first; i < 13 * 4 + first + 1; i++) {
                        int playerNo = i % 4;
                        fetchNextBoardCardToPlayer(playerNo);
                }
                for (int i = 0; i< 4; i++) {
                        if (i != first) {
                                getPlayerCardModule(i).mergeNewCard();
                        }
                }
        }

        public void eatWithPair(int playerNo, MJCard card, MJCard[] pair) {
                getPlayerCardModule(playerNo).eatWithPair(card, pair);
        }

        public void peng(int playerNo, MJCard card) {
                getPlayerCardModule(playerNo).peng(card);
        }

        public void gang(int playerNo, MJCard card) {
                getPlayerCardModule(playerNo).gang(card);
        }

        public void anGang(int playerNo, MJCard card) {
                getPlayerCardModule(playerNo).anGang(card);
        }


    /**
     * @return
     */
    public List getBoardCards() {
        return boardCards;
    }

        public PlayerCardModule getPlayerCardModule(int playerNo) {
                return (PlayerCardModule)this.playerCardModules.get(playerNo);
        }

        public Collection getDroppedCards(int playerNo) {
                return (Collection)getPlayerCardModule(playerNo).getDroppedCards();
        }

        public MJCard getLastDroppedCard() {
                List dc = (List)getDroppedCards(getLastPlayerNo());
                if (dc.size()==0)
                        return null;
                return (MJCard)dc.get(dc.size()-1);
        }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    public String toString() {
        String str = "Board Cards(" + getBoardCards().size() + "):\n";
        str += "Players' cards:\n";
                for (int i = 0; i < 4; i++) {
                        str += "P" + i + ": "+ getPlayerCardModule(i);
        }
        return str;
    }

    public void setCurrentPlayerNo(int currentPlayerNo) {
        this.currentPlayerNo = currentPlayerNo;
    }

        public int getCurrentPlayerNo() {
        return currentPlayerNo;
    }

        public void setLastPlayerNo(int lastPlayerNo) {
        this.lastPlayerNo = lastPlayerNo;
    }

        public int getLastPlayerNo() {
        return lastPlayerNo;
    }

        public int countLeftCard() {
                return getBoardCards().size();
        }

}

⌨️ 快捷键说明

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