Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import os | |
| import random | |
| from PIL import Image | |
| # Set up the title and description | |
| st.title("Dungeon Map Generator") | |
| st.write("This app generates random dungeon maps using pre-designed templates or dynamically creates new layouts.") | |
| # Directory for map images | |
| map_dir = "" # Replace with your actual directory containing .png files | |
| # Create layout for map generation and details | |
| with st.container(): | |
| st.header("Dungeon Map") | |
| col1, col2 = st.columns(2) | |
| # Display the dungeon map | |
| with col1: | |
| if os.path.exists(map_dir): | |
| # Randomly select a map image | |
| map_files = [f for f in os.listdir(map_dir) if f.endswith(".png")] | |
| if map_files: | |
| selected_map = random.choice(map_files) | |
| map_path = os.path.join(map_dir, selected_map) | |
| st.image(Image.open(map_path), caption="Generated Dungeon Map") | |
| else: | |
| st.write("No map images found in the directory.") | |
| else: | |
| st.write("Map directory does not exist.") | |
| # Generate Key and Outline | |
| with col2: | |
| st.subheader("Map Key") | |
| st.write(""" | |
| - **V20**: Dining Hall | |
| - **V21**: Storage Room | |
| - **V22**: Hallway | |
| - **V23**: Guard Room | |
| - **V24**: Training Room | |
| - **V25**: Treasury | |
| - **V26**: Throne Room | |
| - **V27**: Passageway | |
| - **V28**: Crypt | |
| - **V29**: Prison | |
| - **V30**: Exit Hall | |
| - **V31**: Barracks | |
| - **V32**: Workshop | |
| - **V33**: Common Room | |
| - **V34**: Secret Chamber | |
| - **V35**: Armory | |
| - **V36**: Ritual Room | |
| """) | |
| # Add an option to dynamically generate maps | |
| st.subheader("Generate a New Dungeon") | |
| if st.button("Create New Map"): | |
| st.write("**Feature coming soon!** Dynamically generating new maps using procedural algorithms.") | |
| # Sidebar for user options | |
| st.sidebar.title("Options") | |
| st.sidebar.write("Select map options or upload your own dungeon map template:") | |
| uploaded_file = st.sidebar.file_uploader("Upload a .png map file", type="png") | |
| if uploaded_file: | |
| with open(os.path.join(map_dir, uploaded_file.name), "wb") as f: | |
| f.write(uploaded_file.getbuffer()) | |
| st.sidebar.success("File uploaded successfully!") | |