File size: 1,461 Bytes
b3b30f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import random

# Scrabble letters distribution and scores
letters_scores = {
    'A': 1, 'B': 3, 'C': 3, 'D': 2, 'E': 1, 'F': 4, 'G': 2, 'H': 4, 'I': 1,
    'J': 8, 'K': 5, 'L': 1, 'M': 3, 'N': 1, 'O': 1, 'P': 3, 'Q': 10, 'R': 1,
    'S': 1, 'T': 1, 'U': 1, 'V': 4, 'W': 4, 'X': 8, 'Y': 4, 'Z': 10
}
letters_distribution = {
    'A': 9, 'B': 2, 'C': 2, 'D': 4, 'E': 12, 'F': 2, 'G': 3, 'H': 2, 'I': 9,
    'J': 1, 'K': 1, 'L': 4, 'M': 2, 'N': 6, 'O': 8, 'P': 2, 'Q': 1, 'R': 6,
    'S': 4, 'T': 6, 'U': 4, 'V': 2, 'W': 2, 'X': 1, 'Y': 2, 'Z': 1
}

# Flatten distribution to make random selection easier
flat_letters = [letter for letter, count in letters_distribution.items() for _ in range(count)]

# Select 7 random letters
random_letters = random.sample(flat_letters, 7)

# Streamlit app
st.title('Scrabble Simulator')

# Display the selected letters with buttons
st.write('Click the buttons to build your word and see the score!')

# User's current word and score
user_word = []
user_score = 0

# Generate buttons for the letters
for letter in random_letters:
    if st.button(f"{letter} ({letters_scores[letter]})", key=letter):
        user_word.append(letter)
        user_score += letters_scores[letter]
        st.write(f"Current word: {''.join(user_word)}")
        st.write(f"Current score: {user_score}")

# Display the final word and score
st.write(f"Final word: {''.join(user_word)}")
st.write(f"Final score: {user_score}")