awacke1 commited on
Commit
b3b30f6
·
verified ·
1 Parent(s): cf29e36

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -0
app.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import random
3
+
4
+ # Scrabble letters distribution and scores
5
+ letters_scores = {
6
+ 'A': 1, 'B': 3, 'C': 3, 'D': 2, 'E': 1, 'F': 4, 'G': 2, 'H': 4, 'I': 1,
7
+ 'J': 8, 'K': 5, 'L': 1, 'M': 3, 'N': 1, 'O': 1, 'P': 3, 'Q': 10, 'R': 1,
8
+ 'S': 1, 'T': 1, 'U': 1, 'V': 4, 'W': 4, 'X': 8, 'Y': 4, 'Z': 10
9
+ }
10
+ letters_distribution = {
11
+ 'A': 9, 'B': 2, 'C': 2, 'D': 4, 'E': 12, 'F': 2, 'G': 3, 'H': 2, 'I': 9,
12
+ 'J': 1, 'K': 1, 'L': 4, 'M': 2, 'N': 6, 'O': 8, 'P': 2, 'Q': 1, 'R': 6,
13
+ 'S': 4, 'T': 6, 'U': 4, 'V': 2, 'W': 2, 'X': 1, 'Y': 2, 'Z': 1
14
+ }
15
+
16
+ # Flatten distribution to make random selection easier
17
+ flat_letters = [letter for letter, count in letters_distribution.items() for _ in range(count)]
18
+
19
+ # Select 7 random letters
20
+ random_letters = random.sample(flat_letters, 7)
21
+
22
+ # Streamlit app
23
+ st.title('Scrabble Simulator')
24
+
25
+ # Display the selected letters with buttons
26
+ st.write('Click the buttons to build your word and see the score!')
27
+
28
+ # User's current word and score
29
+ user_word = []
30
+ user_score = 0
31
+
32
+ # Generate buttons for the letters
33
+ for letter in random_letters:
34
+ if st.button(f"{letter} ({letters_scores[letter]})", key=letter):
35
+ user_word.append(letter)
36
+ user_score += letters_scores[letter]
37
+ st.write(f"Current word: {''.join(user_word)}")
38
+ st.write(f"Current score: {user_score}")
39
+
40
+ # Display the final word and score
41
+ st.write(f"Final word: {''.join(user_word)}")
42
+ st.write(f"Final score: {user_score}")