v0.2.12 change layout
Browse files- README.md +3 -3
- app.py +1 -1
- pyproject.toml +1 -1
- specs/leaderboard_spec.md +2 -2
- specs/requirements.md +2 -2
- specs/specs.md +2 -2
- wrdler/__init__.py +1 -1
- wrdler/ui.py +13 -8
README.md
CHANGED
|
@@ -21,7 +21,7 @@ thumbnail: >-
|
|
| 21 |
|
| 22 |
# Wrdler
|
| 23 |
|
| 24 |
-
Version 0.2.
|
| 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.
|
| 33 |
-
**Last Updated:** 2025-12-
|
| 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']
|
| 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.
|
| 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.
|
| 5 |
**Author:** GitHub Copilot
|
| 6 |
-
**Last Updated:** 2025-12-
|
| 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.
|
| 4 |
**Status:** Production Ready - Leaderboards Implemented
|
| 5 |
-
**Last Updated:** 2025-12-
|
| 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.
|
| 4 |
-
**Last Updated:** 2025-12-
|
| 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.
|
| 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=
|
| 894 |
-
col1, col2 = st.columns([
|
| 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 |
-
|
| 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:
|