Spaces:
Runtime error
Runtime error
File size: 5,192 Bytes
ce7029c c11db43 ddb3454 ce7029c 6b5d290 ce7029c 6b5d290 ce7029c 6b5d290 ce7029c 6b5d290 ce7029c 6b5d290 ce7029c 6b5d290 ce7029c 6b5d290 ce7029c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# Code Destiny and Density is equal to one hundred.
#st.Markdown("TODO: A code density slider bar shows and adjusts the size of lines. ')
#st.Markdown('Any ๐ฒDice๐ฒ way to compress the lines yet make it readable as optimal list of sets will do. Match language from good math books.')
import os
import streamlit as st
import numpy as np
import pandas as pd
import plotly.express as px
st.set_page_config(layout='wide')
st.title('Any ๐ฒDice๐ฒ Way - STEM Math and Data Science Numerical Potluck')
dice_types = [{'name': 'Six-sided Dice', 'sides': 6, 'emoji': '๐ฒ'},
{'name': 'Twenty-sided Dice', 'sides': 20, 'emoji': '๐ฟ'},
{'name': 'Thirty-sided Dice', 'sides': 30, 'emoji': '๐ฅ'},
{'name': 'One Hundred-sided Dice', 'sides': 100, 'emoji': '๐'}]
if 'username' not in st.session_state:
st.session_state.username = ''
if 'dice_roll_history' not in st.session_state:
st.session_state.dice_roll_history = pd.DataFrame()
dice_type = st.selectbox('Choose a type of dice', dice_types, format_func=lambda d: f"{d['name']} {d['emoji']}")
num_rolls = st.slider('How many times do you want to roll the dice?', 1, 1000000, 1000)
rolls = np.random.randint(1, dice_type['sides'] + 1, num_rolls, dtype=np.uint64)
roll_counts = pd.Series(rolls).value_counts().sort_index()
fig = px.sunburst(names=[f'Roll {i}' for i in roll_counts.index],
parents=['Dice Rolls'] * dice_type['sides'],
values=roll_counts.values,
color=[f'Roll {i}' for i in roll_counts.index],
color_discrete_sequence=px.colors.qualitative.Dark24,
maxdepth=2)
fig.update_layout(title='Dice Roll Distribution', margin=dict(l=20, r=20, t=40, b=20), width=800, height=600)
show_labels = st.checkbox('Show Labels', value=True)
if not show_labels:
fig.update_traces(textinfo='none')
fig.show()
bonus_match = False
for dice in dice_types:
if rolls[0] == dice['sides']:
bonus_match = True
bonus_dice_type = dice['name']
bonus_dice_emoji = dice['emoji']
break
dice_roll_history = st.session_state.dice_roll_history
new_roll_data = pd.DataFrame({'Roll': rolls,
'Count': np.ones(num_rolls, dtype=np.uint64),
'DiceNumberOfSides': [dice_type['sides']] * num_rolls,
'Username': [st.session_state.username] * num_rolls})
if bonus_match:
new_roll_data['BonusMatchToDiceName'] = [bonus_dice_type] * num_rolls
new_roll_data['BonusMatchToDiceEmoji'] = [bonus_dice_emoji] * num_rolls
dice_roll_history = dice_roll_history.append(new_roll_data, ignore_index=True)
st.session_state.dice_roll_history = dice_roll_history
include_name_column = st.checkbox('Include Username Column in Downloaded CSV', value=True)
if st.button('Download Results'):
filename = f'dice_roll_history_{st.session_state.username}{dice_type["emoji"]}.csv'
if not include_name_column:
dice_roll_history = dice_roll_history.drop(columns=['Username'])
filename = f'dice_roll_history{dice_type["emoji"]}.csv'
st.download_button(label='Download CSV', data=dice_roll_history.to_csv(index=False), file_name=filename, mime='text/csv')
csv_files = [f for f in os.listdir('.') if os.path.isfile
f.endswith('.csv') and 'dice_roll_history' in f]
if csv_files:
st.write('Downloaded files:')
for csv_file in csv_files:
st.markdown(f'[Download {csv_file}]({csv_file})')
st.write('---')
st.subheader('Settings')
st.session_state.username = st.text_input('Username', st.session_state.username)
st.write('---')
st.subheader('Dice Roll History')
st.write(dice_roll_history)
st.write("""
๐ Bread
๐ฅ Croissant
๐ฅ Baguette Bread
๐ซ Flatbread
๐ฅจ Pretzel
๐ฅฏ Bagel
๐ฅ Pancakes
๐ง Waffle
๐ง Cheese Wedge
๐ Meat on Bone
๐ Poultry Leg
๐ฅฉ Cut of Meat
๐ฅ Bacon
๐ Hamburger
๐ French Fries
๐ Pizza
๐ญ Hot Dog
๐ฅช Sandwich
๐ฎ Taco
๐ฏ Burrito
๐ซ Tamale
๐ฅ Stuffed Flatbread
๐ง Falafel
๐ฅ Egg
๐ณ Cooking
๐ฅ Shallow Pan of Food
๐ฒ Pot of Food
๐ซ Fondue
๐ฅฃ Bowl with Spoon
๐ฅ Green Salad
๐ฟ Popcorn
๐ง Butter
๐ง Salt
๐ฅซ Canned Food
๐ฑ Bento Box
๐ Rice Cracker
๐ Rice Ball
๐ Cooked Rice
๐ Curry Rice
๐ Steaming Bowl
๐ Spaghetti
๐ Roasted Sweet Potato
๐ข Oden
๐ฃ Sushi
๐ค Fried Shrimp
๐ฅ Fish Cake with Swirl
๐ฅฎ Moon Cake
๐ก Dango
๐ฅ Dumpling
๐ฅ Fortune Cookie
๐ฅก Takeout Box
๐ฆช Oyster
๐ฆ Soft Ice Cream
๐ง Shaved Ice
๐จ Ice Cream
๐ฉ Doughnut
๐ช Cookie
๐ Birthday Cake
๐ฐ Shortcake
๐ง Cupcake
๐ฅง Pie
๐ซ Chocolate Bar
๐ฌ Candy
๐ญ Lollipop
๐ฎ Custard
๐ฏ Honey Pot
๐ผ Baby Bottle
๐ฅ Glass of Milk
โ Hot Beverage
๐ซ Teapot
๐ต Teacup Without Handle
๐ถ Sake
๐พ Bottle with Popping Cork
๐ท Wine Glass
๐ธ Cocktail Glass
๐น Tropical Drink
๐บ Beer Mug
๐ป Clinking Beer Mugs
๐ฅ Clinking Glasses
๐ฅ Tumbler Glass
๐ซ Pouring Liquid
๐ฅค Cup with Straw
๐ง Bubble Tea
๐ง Beverage Box
๐ง Mate
๐ง Ice
๐ฅข Chopsticks
๐ฝ๏ธ Fork and Knife with Plate
๐ด Fork and Knife
๐ฅ Spoon
๐ซ Jar
""") |