diff --git a/gui/components/buttons.py b/gui/components/buttons.py
index 19ca322..bc43c51 100755
--- a/gui/components/buttons.py
+++ b/gui/components/buttons.py
@@ -6,7 +6,6 @@ class ActionButtons:
self.gui = gui # Reference to main GUI for callbacks
self._create_button_frame()
self._create_action_buttons()
- self._create_control_buttons()
def _create_button_frame(self):
"""Matches original button frame creation"""
@@ -59,40 +58,6 @@ class ActionButtons:
)
self.split_button.grid(row=1, column=1, padx=10, pady=10)
- def _create_control_buttons(self):
- """Replicates hint and next round buttons"""
- self.hint_button = ctk.CTkButton(
- self.parent,
- text="Hint",
- command=self.gui.show_hint,
- fg_color="white",
- text_color="black",
- font=("Arial", 20)
- )
- self.hint_button.pack(pady=10)
-
- self.next_round_button = ctk.CTkButton(
- self.parent,
- text="Next Round",
- command=self.gui.start_new_round,
- fg_color="white",
- text_color="black",
- font=("Arial", 20)
- )
- self.next_round_button.pack(pady=10)
- self.next_round_button.configure(state="disabled")
-
- self.exit_button = ctk.CTkButton(
- self.parent,
- text="Exit",
- command=self.gui._exit,
- fg_color="#555",
- text_color="#ccc",
- font=("Arial", 16),
- hover_color="#666"
- )
- self.exit_button.pack(pady=(4, 10))
-
def _enable_action_buttons(self, enable):
"""Original enable/disable functionality"""
state = "normal" if enable else "disabled"
diff --git a/gui/gui.py b/gui/gui.py
index 25e7ccd..cb4477b 100755
--- a/gui/gui.py
+++ b/gui/gui.py
@@ -28,30 +28,65 @@ class BlackjackGUI:
"""Create all UI components"""
# Card display
self.card_display = CardDisplay(self.app, self.card_images)
-
- # Buttons (pass reference to self for callbacks)
+
+ # Action buttons (Hit, Stand, Double, Split)
self.buttons = ActionButtons(self.app, self)
-
- # Notifications
- self.notifications = NotificationSystem(self.app)
-
- # Hint system
- self.hints = HintSystem(self.app)
- self.hints.set_hint_button(self.buttons.hint_button)
-
- # Stats display
- self.stats = StatsDisplay(self.app)
-
- # Feedback label (only remaining widget in main file)
+
+ # Hint button
+ self.hint_button = ctk.CTkButton(
+ self.app,
+ text="Hint",
+ command=self.show_hint,
+ fg_color="white",
+ text_color="black",
+ font=("Arial", 20)
+ )
+ self.hint_button.pack(pady=10)
+
+ # Feedback label (centered — matches web layout)
self.feedback_label = ctk.CTkLabel(
- self.app,
- text="",
- font=("Arial", 20),
- wraplength=550,
- anchor="w"
+ self.app,
+ text="",
+ font=("Arial", 20),
+ wraplength=550,
+ anchor="center"
)
self.feedback_label.pack(pady=20, padx=10, fill="x")
+ # Next Round button
+ self.next_round_button = ctk.CTkButton(
+ self.app,
+ text="Next Round",
+ command=self.start_new_round,
+ fg_color="white",
+ text_color="black",
+ font=("Arial", 20)
+ )
+ self.next_round_button.pack(pady=10)
+ self.next_round_button.configure(state="disabled")
+
+ # Exit button
+ self.exit_button = ctk.CTkButton(
+ self.app,
+ text="Exit",
+ command=self._exit,
+ fg_color="#555",
+ text_color="#ccc",
+ font=("Arial", 16),
+ hover_color="#666"
+ )
+ self.exit_button.pack(pady=(4, 10))
+
+ # Notifications
+ self.notifications = NotificationSystem(self.app)
+
+ # Hint system
+ self.hints = HintSystem(self.app)
+ self.hints.set_hint_button(self.hint_button)
+
+ # Stats display
+ self.stats = StatsDisplay(self.app)
+
def start_new_round(self):
"""Start a new round of the game"""
self._reset_ui()
@@ -61,9 +96,9 @@ class BlackjackGUI:
def _reset_ui(self):
"""Reset UI for new round"""
self.hints._close_hint_window()
- self.buttons.hint_button.configure(state="normal")
+ self.hint_button.configure(state="normal")
self.feedback_label.configure(text="")
- self.buttons.next_round_button.configure(state="disabled")
+ self.next_round_button.configure(state="disabled")
self.buttons._enable_action_buttons(True)
self.buttons._reset_button_colors()
@@ -85,7 +120,7 @@ class BlackjackGUI:
text_color="green"
)
self.buttons._enable_action_buttons(False)
- self.buttons.next_round_button.configure(state="normal")
+ self.next_round_button.configure(state="normal")
# Handle split possibility
can_split_bool = can_split(self.game_logic.player_hand)
@@ -148,7 +183,7 @@ class BlackjackGUI:
# Update button states
self.buttons._enable_action_buttons(False)
- self.buttons.next_round_button.configure(state="normal")
+ self.next_round_button.configure(state="normal")
def _on_main_window_close(self):
"""Handle window close event — just close directly"""
@@ -173,7 +208,7 @@ class BlackjackGUI:
ctk.CTkLabel(
content,
- text="This is a blackjack basic strategy trainer and not a real blackjack game.\n\nEach round you're dealt a hand and asked to make the correct play (Hit, Stand, Double, or Split) according to basic strategy. You get immediate feedback and track your accuracy over time.",
+ text="This is a blackjack basic strategy trainer and not a real blackjack game.\n\nEach round you're dealt a hand and asked to make the correct play (Hit, Stand, Double, or Split) according to basic strategy. You get immediate feedback and track your accuracy over time.\n\nHave Fun!",
font=("Arial", 15),
text_color="#ccc",
wraplength=450,
@@ -213,8 +248,8 @@ class BlackjackGUI:
def _exit(self):
"""Exit button handler — show stats popup"""
self.buttons._enable_action_buttons(False)
- self.buttons.next_round_button.configure(state="disabled")
- self.buttons.hint_button.configure(state="disabled")
+ self.next_round_button.configure(state="disabled")
+ self.hint_button.configure(state="disabled")
self.stats._show_exit_popup(self.game_logic.get_stats(), self._exit_to_start)
def _exit_to_start(self):
diff --git a/static/index.html b/static/index.html
index cff6de7..4e7bac0 100644
--- a/static/index.html
+++ b/static/index.html
@@ -56,7 +56,9 @@ body{background:#2b2b2b;color:#fff;font-family:Arial,sans-serif;display:flex;jus
🃏 Blackjack Theory Trainer
-
This is a blackjack basic strategy trainer and not a real blackjack game. Each round you're dealt a hand and asked to make the correct play (Hit, Stand, Double, or Split) according to basic strategy. You get immediate feedback and track your accuracy over time.
+
This is a blackjack basic strategy trainer and not a real blackjack game.
+
Each round you're dealt a hand and asked to make the correct play (Hit, Stand, Double, or Split) according to basic strategy. You get immediate feedback and track your accuracy over time.