|
import streamlit as st |
|
import streamlit.components.v1 as components |
|
|
|
|
|
def generate_speech_textarea(text_to_speak): |
|
documentHTML5 = ''' |
|
<!DOCTYPE html> |
|
<html> |
|
<head> |
|
<title>Read It Aloud</title> |
|
<script type="text/javascript"> |
|
function readAloud() {{ |
|
const text = document.getElementById("textArea").value; |
|
const speech = new SpeechSynthesisUtterance(text); |
|
window.speechSynthesis.speak(speech); |
|
}} |
|
</script> |
|
</head> |
|
<body> |
|
<h1>π Read It Aloud</h1> |
|
<textarea id="textArea" rows="10" cols="80" readonly>''' |
|
documentHTML5 = documentHTML5 + text_to_speak |
|
documentHTML5 = documentHTML5 + ''' |
|
</textarea> |
|
<br> |
|
<button onclick="readAloud()">π Read Aloud</button> |
|
</body> |
|
</html> |
|
''' |
|
components.html(documentHTML5, width=1280, height=1024) |
|
|
|
|
|
games = ['Terraforming Mars', 'Twilight Imperium (Fourth Edition)', 'Scythe', 'Eclipse', 'Small World', 'Risk Legacy', 'Axis & Allies', 'Diplomacy', 'Pandemic Legacy: Season 1', 'Brass: Birmingham'] |
|
icons = ['πͺ', 'π', 'π€', 'π', 'π§ββοΈ', 'πΊοΈ', 'βοΈ', 'π€', 'π¦ ', 'π'] |
|
|
|
|
|
st.title('Top Ten Board Games with Map-Making Strategies πΊοΈ') |
|
|
|
for i, (game, icon) in enumerate(zip(games, icons)): |
|
st.markdown(f"{i + 1}. {game} {icon}") |
|
|
|
|
|
with st.expander(f"See Map Building & Gamification Strategy for {game}"): |
|
text_to_speak = "" |
|
|
|
|
|
|
|
if game == 'Terraforming Mars': |
|
text_to_speak = "πͺπ‘ **Terraforming Mars** \n1οΈβ£ π±π§ Opt for plant-heavy and water tiles \n2οΈβ£ ππ Position factories near volcanic areas \n3οΈβ£ ππ‘ Control key parameters and energy grid \n4οΈβ£ π€οΈπ‘οΈ Connect colonies and temperature control \n5οΈβ£ ππ― Upgrade spaceports and aim for synergies." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Twilight Imperium (Fourth Edition)': |
|
text_to_speak = "ππ **Twilight Imperium** \n1οΈβ£ πβοΈ Position fleets in strategic nebulas and balance resources \n2οΈβ£ π°π‘οΈ Fortify chokepoints and use PDS systems \n3οΈβ£ ππ Effective trade routes and wormhole caution \n4οΈβ£ ππ Prioritize Mecatol Rex and moon attacks \n5οΈβ£ π οΈπ€ Optimize unit upgrades and forge alliances." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Scythe': |
|
text_to_speak = "π€ποΈ **Scythe** \n1οΈβ£ ποΈπ οΈ Choose starting positions and factory cards \n2οΈβ£ πΊοΈπ Be aware of neighbors and control rivers \n3οΈβ£ ππ‘οΈ Maximize resource buildings and backdoor defense \n4οΈβ£ π―πΎ Focus objectives and manage food \n5οΈβ£ π²π Play probabilities and hunt treasures." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Eclipse': |
|
text_to_speak = "ππ **Eclipse** \n1οΈβ£ ππ Control sectors and central hexes \n2οΈβ£ πΈπ‘οΈ Build formidable fleets and defenses \n3οΈβ£ ππ Prioritize production and research \n4οΈβ£ π€π Trade and diplomacy \n5οΈβ£ ππ Wormhole travel and expansion speed." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Small World': |
|
text_to_speak = "π§ββοΈπ **Small World** \n1οΈβ£ πΊοΈπ Choose realms and races wisely \n2οΈβ£ ππ‘οΈ Exploit powers and defend territories \n3οΈβ£ ππ Collect victory coins and treasures \n4οΈβ£ π€π Forge short alliances and occupy mountains \n5οΈβ£ ππ° Know when to decline and occupy forts." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Risk Legacy': |
|
text_to_speak = "πΊοΈβοΈ **Risk Legacy** \n1οΈβ£ πΊοΈβοΈ Control continents and aggressive expansion \n2οΈβ£ π‘οΈπ Fortify borders and use fortresses \n3οΈβ£ ππ Complete missions and airfields \n4οΈβ£ ππ₯ Collect victory points and scorched earth \n5οΈβ£ π€π Alliances and betrayal." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Axis & Allies': |
|
text_to_speak = "βοΈπ **Axis & Allies** \n1οΈβ£ βοΈπ Strategic frontlines and global dominance \n2οΈβ£ ππ Resource management and economy \n3οΈβ£ π‘οΈπ’ Naval blockades and fortress defenses \n4οΈβ£ ποΈπ― Focused objectives and key battles \n5οΈβ£ π€π₯ Alliances and surprise attacks." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Diplomacy': |
|
text_to_speak = "π€π **Diplomacy** \n1οΈβ£ π€π Negotiation and written orders \n2οΈβ£ πΊοΈπ‘οΈ Strategic positioning and defenses \n3οΈβ£ π’β Naval forces and chokepoints \n4οΈβ£ π°π Territory control and key regions \n5οΈβ£ ππ Timing and deception." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Pandemic Legacy: Season 1': |
|
text_to_speak = "π¦ π **Pandemic Legacy** \n1οΈβ£ π¦ π¬ Cure research and outbreak control \n2οΈβ£ ππ Global movement and airlifts \n3οΈβ£ π₯π‘οΈ Build research stations and quarantine \n4οΈβ£ ππ― Complete objectives and bonus cards \n5οΈβ£ π€π Teamwork and role synergy." |
|
st.markdown(text_to_speak) |
|
|
|
elif game == 'Brass: Birmingham': |
|
text_to_speak = "ππ€οΈ **Brass Birmingham** \n1οΈβ£ ππ€οΈ Industry and canal routes \n2οΈβ£ ππΊ Economic management and beer supply \n3οΈβ£ π οΈπΊοΈ Optimize developments and map control \n4οΈβ£ π€π‘ Partnerships and market strategy \n5οΈβ£ ππ Railroads and victory points." |
|
st.markdown(text_to_speak) |
|
|
|
|
|
|
|
if st.button(f"π Read {game}'s Strategies Aloud"): |
|
st.markdown(text_to_speak) |
|
generate_speech_textarea(text_to_speak) |
|
|