From ffd651d74b1fd453933bd5dd86cf600496da9d25 Mon Sep 17 00:00:00 2001
From: Phan Huy Tran
Date: Thu, 27 Mar 2025 14:18:03 +0100
Subject: [PATCH] feat: add balance when player wins gets blackjack in first
round
---
.../de/szut/casino/blackjack/BlackJackService.java | 13 ++++++++++---
.../de/szut/casino/blackjack/BlackJackState.java | 2 +-
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/backend/src/main/java/de/szut/casino/blackjack/BlackJackService.java b/backend/src/main/java/de/szut/casino/blackjack/BlackJackService.java
index df1a459..62b8859 100644
--- a/backend/src/main/java/de/szut/casino/blackjack/BlackJackService.java
+++ b/backend/src/main/java/de/szut/casino/blackjack/BlackJackService.java
@@ -42,8 +42,15 @@ public class BlackJackService {
dealerCard.setCardType(CardType.DEALER);
game.getDealerCards().add(dealerCard);
- game.setState(getState(game));
- user.setBalance(user.getBalance().subtract(betAmount));
+ BlackJackState state = getState(game);
+ if (state == BlackJackState.PLAYER_BLACKJACK) {
+ BigDecimal blackjackWinnings = betAmount.multiply(new BigDecimal("1.5"));
+ user.setBalance(user.getBalance().add(blackjackWinnings));
+ } else {
+ user.setBalance(user.getBalance().subtract(betAmount));
+ }
+
+ game.setState(state);
userRepository.save(user);
blackJackGameRepository.save(game);
@@ -88,7 +95,7 @@ public class BlackJackService {
int playerHandValue = calculateHandValue(game.getPlayerCards());
if (playerHandValue == 21) {
- return BlackJackState.PLAYER_WON;
+ return BlackJackState.PLAYER_BLACKJACK;
} else if (playerHandValue > 21) {
return BlackJackState.PLAYER_LOST;
}
diff --git a/backend/src/main/java/de/szut/casino/blackjack/BlackJackState.java b/backend/src/main/java/de/szut/casino/blackjack/BlackJackState.java
index 2ba802c..e866bd9 100644
--- a/backend/src/main/java/de/szut/casino/blackjack/BlackJackState.java
+++ b/backend/src/main/java/de/szut/casino/blackjack/BlackJackState.java
@@ -1,7 +1,7 @@
package de.szut.casino.blackjack;
public enum BlackJackState {
- PLAYER_WON,
IN_PROGRESS,
+ PLAYER_BLACKJACK,
PLAYER_LOST,
}