awacke1's picture
Update app.py
48cf4d2
raw
history blame
2.19 kB
import streamlit as st
import plotly.express as px
import pandas as pd
import numpy as np
import base64
def generate_values(n):
return {"HealthPoints": np.random.randint(50, 100, size=n),
"Coins": np.random.randint(10, 50, size=n)}
def app():
st.title("Game Mechanics Treemap Chart")
st.write("This app displays a Treemap chart of game mechanics.")
game_mechanics := ["Action Queue โฑ๏ธ", "Action Retrieval ๐Ÿ”",
"Campaign / Battle Card Driven ๐Ÿ—ƒ๏ธ", "Card Play Conflict Resolution ๐Ÿ’ณ๐Ÿค",
"Communication Limits ๐Ÿ™Š", "Cooperative Game ๐Ÿค๐Ÿ‘ฅ", "Critical Hits and Failures ๐Ÿ’ฅ๐Ÿ’”",
"Deck Construction ๐ŸŽด๐Ÿ› ๏ธ", "Grid Movement ๐Ÿ—บ๏ธ", "Hand Management ๐Ÿ–๏ธ๐Ÿ“Š",
"Hexagon Grid ๐Ÿ”ณ", "Legacy Game ๐ŸŽ“๐ŸŽฎ", "Line of Sight ๐Ÿ‘€", "Modular Board ๐Ÿงฉ",
"Once-Per-Game Abilities ๐ŸŒŸ", "Role Playing ๐ŸŽญ", "Scenario / Mission / Campaign Game ๐ŸŽฏ",
"Simultaneous Action Selection ๐Ÿคœ๐Ÿค›", "Solo / Solitaire Game ๐Ÿ•บ", "Storytelling ๐Ÿ“–",
"Variable Player Powers ๐Ÿฆธโ€โ™‚๏ธ๐Ÿฆนโ€โ™€๏ธ"]
n = len(game_mechanics)
values = generate_values(n)
data = pd.DataFrame({"category": ["Category"] ,
"mechanic": game_mechanics,
"value": list(values.values()),
"HealthPoints": values["HealthPoints"],
"Coins": values["Coins"],
"description": ["Description"]})
data["value"] = data["value"].apply(lambda x: sum(x))
fig = px.treemap(data, path=["category", "mechanic"], values="value",
color="HealthPoints", hover_data=["Coins"])
st.plotly_chart(fig)
csv = data.to_csv(index=False)
b64 = base64.b64encode(csv.encode()).decode()
href = f'<a href="data:file/csv;base64,{b64}" download="game_mechanics.csv">Download CSV</a>'
st.markdown(href, unsafe_allow_html=True)
if __name__ == '__main__':
app()