awacke1 commited on
Commit
84d2245
·
1 Parent(s): 89f1b7a

Create try1.py

Browse files
Files changed (1) hide show
  1. try1.py +57 -0
try1.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import random
3
+ import string
4
+
5
+ # Initialize global variables
6
+ board_size = 15
7
+ words = []
8
+ board = [[' ' for _ in range(board_size)] for _ in range(board_size)]
9
+
10
+ # Function to load word list
11
+ def load_word_list():
12
+ global words
13
+ words = st.text_area("Enter a list of words (one per line)", "").split("\n")
14
+
15
+ # Function to save word list
16
+ def save_word_list():
17
+ global words
18
+ with open("word_list.txt", "w") as f:
19
+ f.write("\n".join(words))
20
+ st.write("Word list saved successfully!")
21
+
22
+ # Function to generate board
23
+ def generate_board():
24
+ global board, words
25
+ # Clear board
26
+ board = [[' ' for _ in range(board_size)] for _ in range(board_size)]
27
+ # Add words to board
28
+ for word in words:
29
+ word = word.upper()
30
+ # Generate random starting position and direction for word
31
+ row, col = random.randint(0, board_size - 1), random.randint(0, board_size - 1)
32
+ direction = random.choice(['horizontal', 'vertical', 'diagonal'])
33
+ # Check if word can fit in selected direction
34
+ if direction == 'horizontal' and col + len(word) <= board_size:
35
+ for i, letter in enumerate(word):
36
+ board[row][col+i] = letter
37
+ elif direction == 'vertical' and row + len(word) <= board_size:
38
+ for i, letter in enumerate(word):
39
+ board[row+i][col] = letter
40
+ elif direction == 'diagonal' and row + len(word) <= board_size and col + len(word) <= board_size:
41
+ for i, letter in enumerate(word):
42
+ board[row+i][col+i] = letter
43
+ # Fill remaining board spaces with random letters
44
+ for i in range(board_size):
45
+ for j in range(board_size):
46
+ if board[i][j] == ' ':
47
+ board[i][j] = random.choice(string.ascii_uppercase)
48
+
49
+ # Display sidebar buttons and handle user input
50
+ st.sidebar.button("Load Word List", on_click=load_word_list)
51
+ st.sidebar.button("Save Word List", on_click=save_word_list)
52
+ if st.sidebar.button("Generate Board"):
53
+ generate_board()
54
+
55
+ # Display letter board
56
+ st.write("Word Search Board:")
57
+ st.table(board)