Surn commited on
Commit
5fa093e
·
1 Parent(s): c488945

v0.2.12 change layout

Browse files
README.md CHANGED
@@ -21,7 +21,7 @@ thumbnail: >-
21
 
22
  # Wrdler
23
 
24
- Version 0.2.11
25
 
26
  Wrdler is a vocabulary puzzle game with daily and weekly leaderboards, 8x6 grid, and two free letter guesses at the start. See CHANGELOG or specs for details on the latest updates.
27
 
@@ -29,8 +29,8 @@ Wrdler is a vocabulary puzzle game with daily and weekly leaderboards, 8x6 grid,
29
 
30
  Wrdler is a vocabulary learning game with a simplified grid and strategic letter guessing. The objective is to discover hidden words on a grid by making smart guesses before all letters are revealed.
31
 
32
- **Current Version:** v0.2.11
33
- **Last Updated:** 2025-12-18
34
 
35
  ## Key Differences from BattleWords
36
 
 
21
 
22
  # Wrdler
23
 
24
+ Version 0.2.12
25
 
26
  Wrdler is a vocabulary puzzle game with daily and weekly leaderboards, 8x6 grid, and two free letter guesses at the start. See CHANGELOG or specs for details on the latest updates.
27
 
 
29
 
30
  Wrdler is a vocabulary learning game with a simplified grid and strategic letter guessing. The objective is to discover hidden words on a grid by making smart guesses before all letters are revealed.
31
 
32
+ **Current Version:** v0.2.12
33
+ **Last Updated:** 2025-12-21
34
 
35
  ## Key Differences from BattleWords
36
 
app.py CHANGED
@@ -19,7 +19,7 @@ def main(opened=False):
19
  )
20
 
21
  st.markdown(
22
- "<style>div[data-testid='stSidebar'], .element-container.st-emotion-cache-6zw7lf.e1wguzas1:nth-child(3), .element-container.st-emotion-cache-6zw7lf.e1wguzas1:nth-child(4), .element-container.st-emotion-cache-1vo6xi6.e1wguzas1:nth-child(5), .element-container.st-emotion-cache-1vo6xi6.e1wguzas1:nth-child(2) { display: none !important; }</style>",
23
  unsafe_allow_html=True,
24
  )
25
 
 
19
  )
20
 
21
  st.markdown(
22
+ "<style>div[data-testid='stSidebar'] { display: none !important; }</style>",
23
  unsafe_allow_html=True,
24
  )
25
 
pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
  [project]
2
  name = "wrdler"
3
- version = "0.2.11"
4
  description = "Wrdler vocabulary puzzle game - simplified version based on BattleWords with 8x6 grid, horizontal words only, no scope, 2 free letter guesses, and a settings-based daily/weekly leaderboard system. Features leaderboard UI, challenge sharing, and AI word lists."
5
  readme = "README.md"
6
  requires-python = ">=3.12,<3.13"
 
1
  [project]
2
  name = "wrdler"
3
+ version = "0.2.12"
4
  description = "Wrdler vocabulary puzzle game - simplified version based on BattleWords with 8x6 grid, horizontal words only, no scope, 2 free letter guesses, and a settings-based daily/weekly leaderboard system. Features leaderboard UI, challenge sharing, and AI word lists."
5
  readme = "README.md"
6
  requires-python = ">=3.12,<3.13"
specs/leaderboard_spec.md CHANGED
@@ -1,9 +1,9 @@
1
  # Wrdler Leaderboard System Specification
2
 
3
  **Document Version:** 1.4.3
4
- **Project Version:** 0.2.10
5
  **Author:** GitHub Copilot
6
- **Last Updated:** 2025-12-18
7
  **Status:** ✅ Implemented and Documented
8
 
9
  ---
 
1
  # Wrdler Leaderboard System Specification
2
 
3
  **Document Version:** 1.4.3
4
+ **Project Version:** 0.2.12
5
  **Author:** GitHub Copilot
6
+ **Last Updated:** 2025-12-21
7
  **Status:** ✅ Implemented and Documented
8
 
9
  ---
specs/requirements.md CHANGED
@@ -1,8 +1,8 @@
1
  # Wrdler Requirements
2
 
3
- **Version:** 0.2.11
4
  **Status:** Production Ready - Leaderboards Implemented
5
- **Last Updated:** 2025-12-20
6
 
7
  This document breaks down the implementation tasks for Wrdler using the game rules described in `specs.md`. Wrdler is a Python/Streamlit project based on BattleWords but with a simplified 8x6 grid, horizontal-only words, and free letter guesses at the start.
8
 
 
1
  # Wrdler Requirements
2
 
3
+ **Version:** 0.2.12
4
  **Status:** Production Ready - Leaderboards Implemented
5
+ **Last Updated:** 2025-12-21
6
 
7
  This document breaks down the implementation tasks for Wrdler using the game rules described in `specs.md`. Wrdler is a Python/Streamlit project based on BattleWords but with a simplified 8x6 grid, horizontal-only words, and free letter guesses at the start.
8
 
specs/specs.md CHANGED
@@ -1,7 +1,7 @@
1
  # Wrdler Specifications
2
 
3
- **Version:** 0.2.11
4
- **Last Updated:** 2025-12-20
5
 
6
  **Status:** Production Ready - Leaderboards & Enhanced Settings Page Implemented
7
 
 
1
  # Wrdler Specifications
2
 
3
+ **Version:** 0.2.12
4
+ **Last Updated:** 2025-12-21
5
 
6
  **Status:** Production Ready - Leaderboards & Enhanced Settings Page Implemented
7
 
wrdler/__init__.py CHANGED
@@ -9,5 +9,5 @@ Key differences from BattleWords:
9
  - Daily and weekly leaderboards
10
  """
11
 
12
- __version__ = "0.2.11"
13
  __all__ = ["models", "generator", "logic", "ui", "word_loader", "leaderboard", "leaderboard_page"]
 
9
  - Daily and weekly leaderboards
10
  """
11
 
12
+ __version__ = "0.2.12"
13
  __all__ = ["models", "generator", "logic", "ui", "word_loader", "leaderboard", "leaderboard_page"]
wrdler/ui.py CHANGED
@@ -871,7 +871,7 @@ def _render_guess_form(state: GameState):
871
  .stForm { padding-bottom: 30px; }
872
 
873
  @media (max-width: 640px) {
874
- .st-emotion-cache-1xwdq91, .st-emotion-cache-1r70o5 {
875
  max-width: max-content; min-width:33%;
876
  }
877
  .st-emotion-cache-emqb34, .st-emotion-cache-192m4g1 {
@@ -884,14 +884,17 @@ def _render_guess_form(state: GameState):
884
  width: calc(50% - 1.5rem);
885
  flex:unset;
886
  }
 
 
 
887
  }
888
  </style>
889
  """,
890
  unsafe_allow_html=True,
891
  )
892
 
893
- with st.form("guess_form", width=300, clear_on_submit=True):
894
- col1, col2 = st.columns([2, 1], vertical_alignment="bottom")
895
  with col1:
896
  guess_text = st.text_input(
897
  "Your Guess",
@@ -903,6 +906,8 @@ def _render_guess_form(state: GameState):
903
  )
904
  with col2:
905
  submitted = st.form_submit_button("OK", disabled=not state.can_guess, width=100, key="guess_submit")
 
 
906
 
907
  # Show compact list below input if setting is enabled
908
  #if st.session_state.get("show_incorrect_guesses", True) and recent_incorrect:
@@ -1779,12 +1784,12 @@ def _render_game_tab():
1779
  left, right = st.columns([5, 3], gap="medium") # Adjusted from [3, 2] to give more space to 8×6 grid
1780
  with right:
1781
  # Radar visualization removed for Wrdler (Sprint 3)
1782
- one, two = st.columns([1, 2], gap="medium")
1783
- with one:
1784
- _render_correct_try_again(state)
1785
  #_render_hit_miss(state)
1786
- with two:
1787
- _render_guess_form(state)
1788
  #st.divider()
1789
  _render_score_panel(state)
1790
  with left:
 
871
  .stForm { padding-bottom: 30px; }
872
 
873
  @media (max-width: 640px) {
874
+ .st-emotion-cache-1xwdq91, .st-emotion-cache-1r70o5, {
875
  max-width: max-content; min-width:33%;
876
  }
877
  .st-emotion-cache-emqb34, .st-emotion-cache-192m4g1 {
 
884
  width: calc(50% - 1.5rem);
885
  flex:unset;
886
  }
887
+ .st-emotion-cache-bw9c3d, .st-emotion-cache-1w9nhvb, .st-emotion-cache-bah2wz{
888
+ min-width: unset;
889
+ }
890
  }
891
  </style>
892
  """,
893
  unsafe_allow_html=True,
894
  )
895
 
896
+ with st.form("guess_form", width="stretch", clear_on_submit=True):
897
+ col1, col2, col3 = st.columns([0.4, 0.25, 0.35], vertical_alignment="bottom")
898
  with col1:
899
  guess_text = st.text_input(
900
  "Your Guess",
 
906
  )
907
  with col2:
908
  submitted = st.form_submit_button("OK", disabled=not state.can_guess, width=100, key="guess_submit")
909
+ with col3:
910
+ _render_correct_try_again(state)
911
 
912
  # Show compact list below input if setting is enabled
913
  #if st.session_state.get("show_incorrect_guesses", True) and recent_incorrect:
 
1784
  left, right = st.columns([5, 3], gap="medium") # Adjusted from [3, 2] to give more space to 8×6 grid
1785
  with right:
1786
  # Radar visualization removed for Wrdler (Sprint 3)
1787
+ # one, two = st.columns([1, 2], gap="medium")
1788
+ # with one:
1789
+ # _render_correct_try_again(state)
1790
  #_render_hit_miss(state)
1791
+ # with two:
1792
+ _render_guess_form(state)
1793
  #st.divider()
1794
  _render_score_panel(state)
1795
  with left: