修改结算积分

master
李泽帆 2025-06-11 19:52:31 +08:00
parent 70bf265812
commit bc6d2d0abb
27 changed files with 81 additions and 41 deletions

View File

@ -54,7 +54,7 @@ public class EXGameController extends GameController {
owner.stateMachine.changeState(Global.getState(EXPlayerBetState.class));
} else if (id == Integer.parseInt(Config.GAME_CALL)) {
EXPlayer player = (EXPlayer) owner;
player.betScore = player.getRoom().callScore;
// player.betScore = player.getRoom().callScore;
owner.stateMachine.changeState(Global.getState(EXPlayerCallState.class));
} else if (id == Integer.parseInt(Config.GAME_ALL_IN)) {
owner.stateMachine.changeState(Global.getState(EXPlayerAllInState.class));
@ -101,7 +101,6 @@ public class EXGameController extends GameController {
}
obj.putTObject("settle_log", player.settleLog.toTObject());
obj.putInt("total_score", player.score.total_score);
}
info.addTObject(obj);
}
@ -159,6 +158,8 @@ public class EXGameController extends GameController {
player.cardInhand.add(room.card.deal());
}
player.showCardInhand.clear();
player.needScore=0;
for(int j=1;j<player.cardInhand.size();j++) {
player.showCardInhand.add(player.cardInhand.get(j));
}

View File

@ -42,9 +42,17 @@ public class EXRoom extends Room {
/** 边池 */
public int sidePot = 0;
/** 当前叫分 */
// /** 当前叫分 */
public int callScore = 0;
/** 最低下注分 */
public int minScore = 0;
/** 最高下注分 */
public int maxScore = 0;
/**
*
*/
@ -62,7 +70,7 @@ public class EXRoom extends Room {
public void clear() {
this.round = 0;
this.raiseRound = 0;
this.callScore = 0;
// this.callScore = 0;
this.callCount = 0;
this.sidePot = 0;
this.win = null;
@ -135,11 +143,16 @@ public class EXRoom extends Room {
* @param destPlayer
*/
public void addAllScore(Player destPlayer) {
EXPlayer dp = (EXPlayer) destPlayer;
boolean bSpring = false;
for (Entry<Integer, Player> entry : this.playerMapByPlaying.entrySet()) {
if (entry.getKey().equals(destPlayer.playerid)) {
continue;
}
EXPlayer fromPlayer = (EXPlayer) entry.getValue();
this.addScore(destPlayer, fromPlayer,fromPlayer.totalLostScore , EXScore.WIN);
Global.logger.info("destPlayer=" + destPlayer);
Global.logger.info("fromPlayer=" + fromPlayer);
Global.logger.info("totalLostScore=" + fromPlayer.totalLostScore);
}
}
@ -157,6 +170,7 @@ public class EXRoom extends Room {
@Override
public void endGame() {
addAllScore(win);
Global.logger.error("EXRoom: endGame");
EXPlayBack pb = (EXPlayBack) this.playBackData;

View File

@ -49,7 +49,7 @@ public class EXPlayerAllInState extends StateBase<EXPlayer> {
owner.callScoreList.put(room.round, owner.baseScore - owner.totalLostScore);
// 当前叫分
owner.betScore = owner.baseScore - owner.totalLostScore;
room.callScore = owner.baseScore - owner.totalLostScore;
// room.callScore = owner.baseScore - owner.totalLostScore;
// 追加操作,广播给客户端
TObject param = new TObject();
if (owner.seat >= room.playerMapByPlaying.size()) {
@ -120,7 +120,7 @@ public class EXPlayerAllInState extends StateBase<EXPlayer> {
// 扣除下注分数
owner.lostScore = 0 - owner.betScore;
room.callScore = 0;
// room.callScore = 0;
room.sidePot += owner.betScore;
room.raiseRound = 0;
// 广播协议

View File

@ -113,17 +113,18 @@ public class EXPlayerBetState extends StateBase<EXPlayer> {
public void addSidePot(EXPlayer owner) {
EXRoom room = owner.getRoom();
// 初始化每轮打出的总分数
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
player.totalLostScore += player.lostScore;
player.lostScore = 0;
Global.logger.info("player:" + player.playerid + "--totalLostScore:" + player.totalLostScore
+ "--lostScore:" + player.lostScore);
}
// for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
// EXPlayer player = (EXPlayer) entry.getValue();
// player.totalLostScore += player.lostScore;
// player.lostScore = 0;
// Global.logger.info("player:" + player.playerid + "--totalLostScore:" + player.totalLostScore
// + "--lostScore:" + player.lostScore);
// }
owner.totalLostScore += owner.betScore;
// 扣除下注分数
owner.lostScore = 0 - owner.betScore;
room.callScore = 0;
owner.lostScore = owner.betScore;
// room.callScore = 0;
room.sidePot += owner.betScore;
room.raiseRound = 0;
// 广播协议
@ -131,7 +132,7 @@ public class EXPlayerBetState extends StateBase<EXPlayer> {
param.putInt("sidePot", room.sidePot);
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore + player.lostScore);
param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore);
}

View File

@ -42,14 +42,14 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
addSidePot(owner);
// 记录每轮下注分数
owner.callScoreList.put(room.round, owner.betScore);
owner.needScore +=owner.betScore;
// 追加操作,广播给客户端
TObject param = new TObject();
room.callCount += 1;
// 当前叫牌次数
Global.logger.info("room.callScore:" + room.callScore);
// Global.logger.info("room.callScore:" + room.callScore);
Global.logger.info("owner.betScore:" + owner.betScore);
Global.logger.info("room.lastRaiseSeat:" + room.lastRaiseSeat);
@ -109,6 +109,7 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
EXPlayer player = CardCheck.CheckCall(room);
room.win = player;
room.roomResult();
room.endGame();
}
/**
@ -118,9 +119,14 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
*/
public void addSidePot(EXPlayer owner) {
EXRoom room = owner.getRoom();
System.out.println("当前需跟注分数"+room.callScore);
// 扣除下注分数
owner.lostScore = 0 - room.callScore;
owner.lostScore = room.callScore-owner.needScore;
//计算总下注分数
owner.totalLostScore += owner.lostScore;
System.out.println("当前已下注分数"+room.callScore);
System.out.println("加注后需要补加的分数owner.needScore"+owner.needScore);
System.out.println("总下注分数owner.totalLostScore"+owner.totalLostScore);
room.sidePot += Math.abs(owner.lostScore);
// 广播协议
@ -128,7 +134,7 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
param.putInt("sidePot", room.sidePot);
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore + player.lostScore);
param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore);
}
room.broadCastToClient(0, Config.GAME_EVT_RESULT, param);
}

View File

@ -29,17 +29,21 @@ public class EXPlayerCheckState extends StateBase<EXPlayer> {
// 追加操作,广播给客户端
TObject param = new TObject();
param.putInt("seat", owner.seat + 1);
if (owner.seat >= room.playerMapByPlaying.size()) {
param.putInt("seat", 1);
} else {
param.putInt("seat", owner.seat + 1);
}
List<Integer> actions = new ArrayList<Integer>();
actions.add(Integer.parseInt(Config.GAME_BET));
actions.add(Integer.parseInt(Config.GAME_CALL));
actions.add(Integer.parseInt(Config.GAME_FOLD));
actions.add(Integer.parseInt(Config.GAME_ALL_IN));
ITArray actionArray = Util.toTArray(actions);
param.putTArray("actions", actionArray);
room.broadCastToClient(0, Config.GAME_EVT_CHANGE_ACTIVE_PLAYER, param);
// 记录房间当前操作
room.actionType =Integer.parseInt( Config.GAME_CHECK);
room.actionType = Integer.parseInt(Config.GAME_CHECK);
toNextState(owner);
}

View File

@ -74,6 +74,7 @@ public class EXPlayerFoldState extends StateBase<EXPlayer> {
EXPlayer player = CardCheck.CheckCall(room);
room.win = player;
room.roomResult();
room.endGame();
}
/**

View File

@ -91,14 +91,17 @@ public class EXPlayerRaiseState extends StateBase<EXPlayer> {
*/
public void addSidePot(EXPlayer owner) {
EXRoom room = owner.getRoom();
// 当前叫分
System.out.println("当前加注owner.betScore"+owner.betScore);
// // 当前叫分
room.callScore += owner.betScore;
// 记录每轮下注分数
// owner.betScore = room.callScore;
// 扣除下注分数
owner.lostScore = 0 - room.callScore;
System.out.println("应下注"+room.callScore);
room.sidePot += Math.abs(room.callScore);
// 扣除下注分数
owner.lostScore = room.callScore-+owner.needScore;
System.out.println("增加的owner.lostScore"+owner.lostScore);
owner.totalLostScore += owner.lostScore;
room.sidePot += Math.abs(owner.lostScore);
if (owner.seat == 1) {
// 最后加注位置
room.lastRaiseSeat = room.playerMapBySeat.size();
@ -106,12 +109,18 @@ public class EXPlayerRaiseState extends StateBase<EXPlayer> {
room.lastRaiseSeat = owner.seat - 1;
}
System.out.println("底池room.sidePot"+room.sidePot);
System.out.println("当前已下注分数"+room.callScore);
System.out.println("加注后需要补加的分数owner.needScore"+owner.needScore);
System.out.println("总下注分数owner.totalLostScore"+owner.totalLostScore);
owner.needScore +=owner.lostScore;
// 广播协议
TObject param = new TObject();
param.putInt("sidePot", room.sidePot);
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore + player.lostScore);
param.putInt("seat_" + player.seat, player.baseScore - player.totalLostScore);
}
room.broadCastToClient(0, Config.GAME_EVT_RESULT, param);
}

View File

@ -46,12 +46,16 @@ public class EXRoomDealState extends StateBase<EXRoom> {
if (room.round == 0) {
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
param.putInt("seat_" + player.seat, 300);
//底分
int baseScore = room.config.getInt(Config.ROOM_CONFIG_BASE_SCORE);
//
int riin_score = room.config.getInt(Config.ROOM_CONFIG_RIIN_SCORE);
param.putInt("seat_" + player.seat, 300-baseScore);
player.baseScore = 300;
}
}
room.broadCastToClient(0, Config.GAME_EVT_RESULT, param);
this.toNextState(room);

View File

@ -20,11 +20,11 @@ public class EXRoomSetpState extends StateBase<EXRoom> {
public void enter(EXRoom owner) {
EXPlayer player = null;
if (owner.activeSeat == 0) {
player = (EXPlayer) owner.playerMapBySeat.get(owner.bankerSeat);
player = (EXPlayer) owner.playerMapByPlaying.get(owner.bankerSeat);
} else {
player = (EXPlayer) owner.playerMapBySeat.get(owner.activeSeat);
player = (EXPlayer) owner.playerMapByPlaying.get(owner.activeSeat);
int nextSeat = player.nextSeat;
player = (EXPlayer) owner.playerMapBySeat.get(nextSeat);
player = (EXPlayer) owner.playerMapByPlaying.get(nextSeat);
}
player.stateMachine.changeState(Global.getState(EXPlayerWaitState.class));