awacke1 commited on
Commit
13e0b1b
·
1 Parent(s): 973e097

Create try2.py

Browse files
Files changed (1) hide show
  1. try2.py +72 -0
try2.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import random
3
+ import string
4
+
5
+ board_size = 15
6
+ words = []
7
+ board = [[' ' for _ in range(board_size)] for _ in range(board_size)]
8
+
9
+ def load_word_list():
10
+ global words
11
+ try:
12
+ with open("word_list.txt", "r") as f:
13
+ words = f.read().split("\n")
14
+ except FileNotFoundError:
15
+ pass
16
+ st.text_area("Enter a list of words (one per line)", "\n".join(words))
17
+ st.sidebar.subheader("Word List:")
18
+ for i, word in enumerate(words):
19
+ st.sidebar.write(f"{i+1}. {word}")
20
+
21
+ def save_word_list():
22
+ global words
23
+ with open("word_list.txt", "w") as f:
24
+ f.write("\n".join(words))
25
+ st.write("Word list saved successfully!")
26
+
27
+ def generate_board():
28
+ global board, words
29
+ board = [[' ' for _ in range(board_size)] for _ in range(board_size)]
30
+ for word in words:
31
+ word = word.upper()
32
+ row, col = random.randint(0, board_size - 1), random.randint(0, board_size - 1)
33
+ direction = random.choice(['horizontal', 'vertical', 'diagonal'])
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
+ for i in range(board_size):
44
+ for j in range(board_size):
45
+ if board[i][j] == ' ':
46
+ board[i][j] = random.choice(string.ascii_uppercase)
47
+
48
+ buttons = {
49
+ "Load Word List": load_word_list,
50
+ "Save Word List": save_word_list,
51
+ "Generate Board": generate_board
52
+ }
53
+
54
+ for button_label, button_func in buttons.items():
55
+ if st.sidebar.button(button_label):
56
+ words = st.text_area("Enter a list of words (one per line)", "\n".join(words)).split("\n")
57
+ button_func()
58
+ st.sidebar.subheader("Word List:")
59
+ for i, word in enumerate(words):
60
+ st.sidebar.write(f"{i+1}. {word}")
61
+
62
+ words = st.text_area("Enter a list of words (one per line)", "\n".join(words))
63
+ if st.button("Save Word List", key="save_word_list_btn"):
64
+ words = words.split("\n")
65
+ save_word_list()
66
+
67
+ st.sidebar.subheader("Word List:")
68
+ for i, word in enumerate(words):
69
+ st.sidebar.write(f"{i+1}. {word}")
70
+
71
+ st.write("Word Search Board:")
72
+ st.table(board)