📄 mjmodule.java
字号:
package com.newpalm.game.mj.server;
import com.newpalm.game.framework.ServerModule;
import com.newpalm.game.mj.client.MJClient;
import com.newpalm.game.mj.share.GameState;
import com.newpalm.game.mj.share.MJCard;
import com.newpalm.game.mj.share.MJEventObject;
import com.newpalm.game.mj.share.PlayerCardModule;
/**
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
* @author liyamin
*/
public class MJModule implements ServerModule {
/**
* @link aggregationByValue
*/
private CardModule cardModule;
private GameState gameState;
private MJClient[] onlineClients = new MJClient[4];
private MJEventObject[] passResults = new MJEventObject[4];
public MJModule() {
super();
gameState = new GameState();
cardModule = new CardModule();
}
public int getBankerNo() {
return gameState.getBankerSeatNo();
}
public int getCurrentPlayerNo() {
return cardModule.getCurrentPlayerNo();
}
public int getLastPlayerNo() {
return cardModule.getLastPlayerNo();
}
/**
* @return
*/
public GameState getGameState() {
return gameState;
}
/**
* @param i
*/
public void setGameState(GameState i) {
gameState = i;
}
/**
* @return
*/
public CardModule getCardModule() {
return cardModule;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString() {
String str = "Card Module:\n";
str += getCardModule().toString();
return str;
}
/**
* @param playerNo
* @return
*/
public PlayerCardModule getPlayerCardModule(int playerNo) {
return cardModule.getPlayerCardModule(playerNo);
}
/**
* @return
*/
public MJCard getLastDroppedCard() {
return cardModule.getLastDroppedCard();
}
public int countLeftCard() {
return getCardModule().countLeftCard();
}
public MJClient getOnlineClient(int n) {
return onlineClients[n];
}
public void setOnlineClient(int n, MJClient clt) {
onlineClients[n] = clt;
}
public int getClientPlayerNo(Object cid) {
int i;
for (i = 0; i < 4; i++) {
if (getOnlineClient(i) == null) continue;
if ( cid.equals(getOnlineClient(i).getCid()) ) {
return i;
}
}
return -1;
}
// Pass result methods
public MJEventObject getPassResult(int n) {
return passResults[n];
}
public void setPassResult(int n, MJEventObject result) {
passResults[n] = result;
}
public void clearPassResult() {
for (int i = 0; i < 4; i++) {
setPassResult(i, null);
}
}
public int getPassResultCount() {
int rt = 0;
for (int i = 0; i < 4; i++) {
if (getPassResult(i) != null)
rt++;
}
return rt;
}
/**
*
* @param first
* @return -1, all pass, else (eat < peng|gang|an_gang < hu)
*/
public int getPriotityPassNo(int first) {
int rt = -1;
for (int i = first; i < first + 4 -1; i++) {
MJEventObject result = getPassResult(i %4);
if (result == null) continue;
if (result.getEventId() == MJEventObject.HU) {
return i % 4;
}
if (result.getEventId() == MJEventObject.AN_GANG ||
result.getEventId() == MJEventObject.GANG ||
result.getEventId() == MJEventObject.PENG) {
rt = i;
}
if (result.getEventId() == MJEventObject.EAT &&
i == first ) {
rt = i;
}
// if (result.getEventId() == MJEventObject.PASS &&
// rt == -1) {
// rt = i;
// }
}
return rt%4;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -