修改结算积分

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)); owner.stateMachine.changeState(Global.getState(EXPlayerBetState.class));
} else if (id == Integer.parseInt(Config.GAME_CALL)) { } else if (id == Integer.parseInt(Config.GAME_CALL)) {
EXPlayer player = (EXPlayer) owner; EXPlayer player = (EXPlayer) owner;
player.betScore = player.getRoom().callScore; // player.betScore = player.getRoom().callScore;
owner.stateMachine.changeState(Global.getState(EXPlayerCallState.class)); owner.stateMachine.changeState(Global.getState(EXPlayerCallState.class));
} else if (id == Integer.parseInt(Config.GAME_ALL_IN)) { } else if (id == Integer.parseInt(Config.GAME_ALL_IN)) {
owner.stateMachine.changeState(Global.getState(EXPlayerAllInState.class)); owner.stateMachine.changeState(Global.getState(EXPlayerAllInState.class));
@ -101,7 +101,6 @@ public class EXGameController extends GameController {
} }
obj.putTObject("settle_log", player.settleLog.toTObject()); obj.putTObject("settle_log", player.settleLog.toTObject());
obj.putInt("total_score", player.score.total_score); obj.putInt("total_score", player.score.total_score);
} }
info.addTObject(obj); info.addTObject(obj);
} }
@ -159,6 +158,8 @@ public class EXGameController extends GameController {
player.cardInhand.add(room.card.deal()); player.cardInhand.add(room.card.deal());
} }
player.showCardInhand.clear(); player.showCardInhand.clear();
player.needScore=0;
for(int j=1;j<player.cardInhand.size();j++) { for(int j=1;j<player.cardInhand.size();j++) {
player.showCardInhand.add(player.cardInhand.get(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 sidePot = 0;
/** 当前叫分 */ // /** 当前叫分 */
public int callScore = 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() { public void clear() {
this.round = 0; this.round = 0;
this.raiseRound = 0; this.raiseRound = 0;
this.callScore = 0; // this.callScore = 0;
this.callCount = 0; this.callCount = 0;
this.sidePot = 0; this.sidePot = 0;
this.win = null; this.win = null;
@ -136,10 +144,15 @@ public class EXRoom extends Room {
*/ */
public void addAllScore(Player destPlayer) { public void addAllScore(Player destPlayer) {
EXPlayer dp = (EXPlayer) destPlayer;
boolean bSpring = false;
for (Entry<Integer, Player> entry : this.playerMapByPlaying.entrySet()) { 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 @Override
public void endGame() { public void endGame() {
addAllScore(win); addAllScore(win);
Global.logger.error("EXRoom: endGame");
EXPlayBack pb = (EXPlayBack) this.playBackData; 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.callScoreList.put(room.round, owner.baseScore - owner.totalLostScore);
// 当前叫分 // 当前叫分
owner.betScore = 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(); TObject param = new TObject();
if (owner.seat >= room.playerMapByPlaying.size()) { if (owner.seat >= room.playerMapByPlaying.size()) {
@ -120,7 +120,7 @@ public class EXPlayerAllInState extends StateBase<EXPlayer> {
// 扣除下注分数 // 扣除下注分数
owner.lostScore = 0 - owner.betScore; owner.lostScore = 0 - owner.betScore;
room.callScore = 0; // room.callScore = 0;
room.sidePot += owner.betScore; room.sidePot += owner.betScore;
room.raiseRound = 0; room.raiseRound = 0;
// 广播协议 // 广播协议

View File

@ -113,17 +113,18 @@ public class EXPlayerBetState extends StateBase<EXPlayer> {
public void addSidePot(EXPlayer owner) { public void addSidePot(EXPlayer owner) {
EXRoom room = owner.getRoom(); EXRoom room = owner.getRoom();
// 初始化每轮打出的总分数 // 初始化每轮打出的总分数
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) { // for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue(); // EXPlayer player = (EXPlayer) entry.getValue();
player.totalLostScore += player.lostScore; // player.totalLostScore += player.lostScore;
player.lostScore = 0; // player.lostScore = 0;
Global.logger.info("player:" + player.playerid + "--totalLostScore:" + player.totalLostScore // Global.logger.info("player:" + player.playerid + "--totalLostScore:" + player.totalLostScore
+ "--lostScore:" + player.lostScore); // + "--lostScore:" + player.lostScore);
} // }
owner.totalLostScore += owner.betScore;
// 扣除下注分数 // 扣除下注分数
owner.lostScore = 0 - owner.betScore; owner.lostScore = owner.betScore;
room.callScore = 0; // room.callScore = 0;
room.sidePot += owner.betScore; room.sidePot += owner.betScore;
room.raiseRound = 0; room.raiseRound = 0;
// 广播协议 // 广播协议
@ -131,7 +132,7 @@ public class EXPlayerBetState extends StateBase<EXPlayer> {
param.putInt("sidePot", room.sidePot); param.putInt("sidePot", room.sidePot);
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) { for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue(); 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); addSidePot(owner);
// 记录每轮下注分数 // 记录每轮下注分数
owner.callScoreList.put(room.round, owner.betScore); owner.callScoreList.put(room.round, owner.betScore);
owner.needScore +=owner.betScore;
// 追加操作,广播给客户端 // 追加操作,广播给客户端
TObject param = new TObject(); TObject param = new TObject();
room.callCount += 1; 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("owner.betScore:" + owner.betScore);
Global.logger.info("room.lastRaiseSeat:" + room.lastRaiseSeat); Global.logger.info("room.lastRaiseSeat:" + room.lastRaiseSeat);
@ -109,6 +109,7 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
EXPlayer player = CardCheck.CheckCall(room); EXPlayer player = CardCheck.CheckCall(room);
room.win = player; room.win = player;
room.roomResult(); room.roomResult();
room.endGame();
} }
/** /**
@ -118,9 +119,14 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
*/ */
public void addSidePot(EXPlayer owner) { public void addSidePot(EXPlayer owner) {
EXRoom room = owner.getRoom(); 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); room.sidePot += Math.abs(owner.lostScore);
// 广播协议 // 广播协议
@ -128,7 +134,7 @@ public class EXPlayerCallState extends StateBase<EXPlayer> {
param.putInt("sidePot", room.sidePot); param.putInt("sidePot", room.sidePot);
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) { for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue(); 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); room.broadCastToClient(0, Config.GAME_EVT_RESULT, param);
} }

View File

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

View File

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

View File

@ -91,14 +91,17 @@ public class EXPlayerRaiseState extends StateBase<EXPlayer> {
*/ */
public void addSidePot(EXPlayer owner) { public void addSidePot(EXPlayer owner) {
EXRoom room = owner.getRoom(); EXRoom room = owner.getRoom();
// 当前叫分 System.out.println("当前加注owner.betScore"+owner.betScore);
// // 当前叫分
room.callScore += owner.betScore; room.callScore += owner.betScore;
// 记录每轮下注分数 System.out.println("应下注"+room.callScore);
// owner.betScore = room.callScore;
// 扣除下注分数
owner.lostScore = 0 - 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) { if (owner.seat == 1) {
// 最后加注位置 // 最后加注位置
room.lastRaiseSeat = room.playerMapBySeat.size(); room.lastRaiseSeat = room.playerMapBySeat.size();
@ -106,12 +109,18 @@ public class EXPlayerRaiseState extends StateBase<EXPlayer> {
room.lastRaiseSeat = owner.seat - 1; 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(); TObject param = new TObject();
param.putInt("sidePot", room.sidePot); param.putInt("sidePot", room.sidePot);
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) { for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue(); 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); room.broadCastToClient(0, Config.GAME_EVT_RESULT, param);
} }

View File

@ -46,12 +46,16 @@ public class EXRoomDealState extends StateBase<EXRoom> {
if (room.round == 0) { if (room.round == 0) {
for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) { for (Entry<Integer, Player> entry : room.playerMapBySeat.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue(); 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; player.baseScore = 300;
} }
} }
room.broadCastToClient(0, Config.GAME_EVT_RESULT, param); room.broadCastToClient(0, Config.GAME_EVT_RESULT, param);
this.toNextState(room); this.toNextState(room);

View File

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