Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -50,43 +50,47 @@ if game_state is None:
|
|
| 50 |
'wildlife_stack': random.sample(wildlife_tokens * 10, 50),
|
| 51 |
'players': {player: {'habitat': [], 'wildlife': [], 'nature_tokens': 3} for player in players}
|
| 52 |
}
|
|
|
|
| 53 |
|
| 54 |
# Streamlit Interface
|
| 55 |
st.title("π² Cascadia Lite π²")
|
| 56 |
|
| 57 |
# Function to draw habitat and wildlife
|
| 58 |
-
def draw_habitat_and_wildlife(player):
|
| 59 |
-
habitat =
|
| 60 |
-
wildlife =
|
| 61 |
-
|
| 62 |
-
|
|
|
|
| 63 |
|
| 64 |
-
# Display players' areas
|
| 65 |
for player in players:
|
| 66 |
st.write(f"## {player}'s Play Area")
|
| 67 |
-
player_data = pd.DataFrame({'Habitat Tiles':
|
| 68 |
-
'Wildlife Tokens':
|
| 69 |
st.dataframe(player_data)
|
| 70 |
|
| 71 |
# Drafting Phase
|
| 72 |
if st.button(f"{player}: Draw Habitat and Wildlife"):
|
| 73 |
-
draw_habitat_and_wildlife(player)
|
|
|
|
| 74 |
|
| 75 |
-
# Tile Placement
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
# Wildlife Placement
|
| 79 |
-
wildlife_placement = st.selectbox(f"{player}: Place Wildlife Token", options=['Select Habitat'] + list(range(1, len(st.session_state['players'][player]['wildlife']) + 1)))
|
| 80 |
|
| 81 |
-
# Nature Tokens
|
| 82 |
-
|
| 83 |
-
if st.button(f"{player}: Use a Nature Token"):
|
| 84 |
-
st.session_state['players'][player]['nature_tokens'] -= 1
|
| 85 |
-
# Logic for swapping wildlife tokens or other actions
|
| 86 |
-
st.write(f"{player} used a nature token. Remaining: {st.session_state['players'][player]['nature_tokens']}")
|
| 87 |
|
| 88 |
-
#
|
| 89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
|
| 91 |
# Game Controls and Instructions
|
| 92 |
st.write("## Game Controls")
|
|
|
|
| 50 |
'wildlife_stack': random.sample(wildlife_tokens * 10, 50),
|
| 51 |
'players': {player: {'habitat': [], 'wildlife': [], 'nature_tokens': 3} for player in players}
|
| 52 |
}
|
| 53 |
+
save_game_state(game_state)
|
| 54 |
|
| 55 |
# Streamlit Interface
|
| 56 |
st.title("π² Cascadia Lite π²")
|
| 57 |
|
| 58 |
# Function to draw habitat and wildlife
|
| 59 |
+
def draw_habitat_and_wildlife(player, game_state):
|
| 60 |
+
habitat = game_state['habitat_stack'].pop()
|
| 61 |
+
wildlife = game_state['wildlife_stack'].pop()
|
| 62 |
+
game_state['players'][player]['habitat'].append(habitat)
|
| 63 |
+
game_state['players'][player]['wildlife'].append(wildlife)
|
| 64 |
+
save_game_state(game_state)
|
| 65 |
|
| 66 |
+
# Display players' areas and handle actions
|
| 67 |
for player in players:
|
| 68 |
st.write(f"## {player}'s Play Area")
|
| 69 |
+
player_data = pd.DataFrame({'Habitat Tiles': game_state['players'][player]['habitat'],
|
| 70 |
+
'Wildlife Tokens': game_state['players'][player]['wildlife']})
|
| 71 |
st.dataframe(player_data)
|
| 72 |
|
| 73 |
# Drafting Phase
|
| 74 |
if st.button(f"{player}: Draw Habitat and Wildlife"):
|
| 75 |
+
draw_habitat_and_wildlife(player, game_state)
|
| 76 |
+
game_state = load_game_state() # Reload game state after update
|
| 77 |
|
| 78 |
+
# Tile and Wildlife Placement (Placeholders for actual game logic)
|
| 79 |
+
# ... (Add selectbox and logic for tile and wildlife placement)
|
|
|
|
|
|
|
|
|
|
| 80 |
|
| 81 |
+
# Nature Tokens (Placeholder for actual game logic)
|
| 82 |
+
# ... (Add button and logic for using nature tokens)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
|
| 84 |
+
# Reset Button
|
| 85 |
+
if st.button("Reset Game"):
|
| 86 |
+
os.remove(save_file) # Delete the save file
|
| 87 |
+
game_state = {
|
| 88 |
+
'habitat_stack': random.sample(habitat_tiles * 10, 50),
|
| 89 |
+
'wildlife_stack': random.sample(wildlife_tokens * 10, 50),
|
| 90 |
+
'players': {player: {'habitat': [], 'wildlife': [], 'nature_tokens': 3} for player in players}
|
| 91 |
+
}
|
| 92 |
+
save_game_state(game_state)
|
| 93 |
+
st.experimental_rerun()
|
| 94 |
|
| 95 |
# Game Controls and Instructions
|
| 96 |
st.write("## Game Controls")
|