awacke1 commited on
Commit
6f39e61
Β·
1 Parent(s): 3b0f24d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -18
app.py CHANGED
@@ -9,41 +9,47 @@ wildlife_tokens = ['🐻', 'πŸ¦…', '🐟', '🦌', '🐿️']
9
  players = ['Player 1', 'Player 2']
10
  save_file = 'cascadia_game_state.csv'
11
 
12
- # Initialize or load game state
13
- def initialize_game():
14
- st.session_state['habitat_stack'] = random.sample(habitat_tiles * 10, 50)
15
- st.session_state['wildlife_stack'] = random.sample(wildlife_tokens * 10, 50)
16
- st.session_state['players'] = {player: {'habitat': [], 'wildlife': [], 'nature_tokens': 3} for player in players}
17
-
18
  def load_game_state():
19
  if os.path.exists(save_file):
20
  df = pd.read_csv(save_file)
 
 
 
 
 
21
  for player in players:
22
- st.session_state['players'][player] = {
23
  'habitat': df[player + '_habitat'].dropna().tolist(),
24
  'wildlife': df[player + '_wildlife'].dropna().tolist(),
25
- 'nature_tokens': df[player + '_nature_tokens'][0]
26
  }
27
- st.session_state['habitat_stack'] = df['habitat_stack'].dropna().tolist()
28
- st.session_state['wildlife_stack'] = df['wildlife_stack'].dropna().tolist()
 
29
 
30
- def save_game_state():
 
31
  data = {
32
- 'habitat_stack': pd.Series(st.session_state['habitat_stack']),
33
- 'wildlife_stack': pd.Series(st.session_state['wildlife_stack'])
34
  }
35
  for player in players:
36
- player_state = st.session_state['players'][player]
37
  data[player + '_habitat'] = pd.Series(player_state['habitat'])
38
  data[player + '_wildlife'] = pd.Series(player_state['wildlife'])
39
  data[player + '_nature_tokens'] = pd.Series([player_state['nature_tokens']])
40
  df = pd.DataFrame(data)
41
  df.to_csv(save_file, index=False)
42
 
43
- if 'players' not in st.session_state:
44
- load_game_state()
45
- if 'players' not in st.session_state:
46
- initialize_game()
 
 
 
 
47
 
48
  # Streamlit Interface
49
  st.title("🌲 Cascadia Lite 🌲")
 
9
  players = ['Player 1', 'Player 2']
10
  save_file = 'cascadia_game_state.csv'
11
 
12
+ # Function to load game state from CSV
 
 
 
 
 
13
  def load_game_state():
14
  if os.path.exists(save_file):
15
  df = pd.read_csv(save_file)
16
+ game_state = {
17
+ 'habitat_stack': df['habitat_stack'].dropna().tolist(),
18
+ 'wildlife_stack': df['wildlife_stack'].dropna().tolist(),
19
+ 'players': {}
20
+ }
21
  for player in players:
22
+ game_state['players'][player] = {
23
  'habitat': df[player + '_habitat'].dropna().tolist(),
24
  'wildlife': df[player + '_wildlife'].dropna().tolist(),
25
+ 'nature_tokens': int(df[player + '_nature_tokens'][0])
26
  }
27
+ return game_state
28
+ else:
29
+ return None
30
 
31
+ # Function to save game state to CSV
32
+ def save_game_state(game_state):
33
  data = {
34
+ 'habitat_stack': pd.Series(game_state['habitat_stack']),
35
+ 'wildlife_stack': pd.Series(game_state['wildlife_stack'])
36
  }
37
  for player in players:
38
+ player_state = game_state['players'][player]
39
  data[player + '_habitat'] = pd.Series(player_state['habitat'])
40
  data[player + '_wildlife'] = pd.Series(player_state['wildlife'])
41
  data[player + '_nature_tokens'] = pd.Series([player_state['nature_tokens']])
42
  df = pd.DataFrame(data)
43
  df.to_csv(save_file, index=False)
44
 
45
+ # Initialize or load game state
46
+ game_state = load_game_state()
47
+ if game_state is None:
48
+ game_state = {
49
+ 'habitat_stack': random.sample(habitat_tiles * 10, 50),
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 🌲")