Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.22 KB | None | 0 0
  1. # maybe have specific sequences depending on whether the user wants consecutive vowels/consonants
  2. import sys
  3. import ipapy
  4. import os
  5. from tkinter import *
  6. from tkinter import Tk, Checkbutton, Label
  7. from tkinter import StringVar, IntVar
  8. import csv
  9.  
  10. def onReturn(event=None):
  11. global i
  12. if i<6:
  13. if i==5:
  14. if len(e.get()) == 0:
  15. i=7
  16. del atomsv[5:7]
  17. print(atomsv[0:5])
  18. global nmbrv
  19. nmbrv = 5
  20. text1.set(lines[i])
  21. else:
  22. global j
  23. j=j+1
  24. atomsv[j] = e.get();
  25. print(atomsv[j])
  26. update_label(event)
  27. if i==4:
  28. if len(e.get()) == 0:
  29. i=7
  30. del atomsv[4:7]
  31. print(atomsv[0:4])
  32. nmbrv = 4
  33. text1.set(lines[i])
  34. else:
  35. j=j+1
  36. atomsv[j] = e.get();
  37. print(atomsv[j])
  38. update_label(event)
  39. if i==3:
  40. if len(e.get()) == 0:
  41. i=7
  42. del atomsv[3:7]
  43. print(atomsv[0:3])
  44. nmbrv = 3
  45. text1.set(lines[i])
  46. else:
  47. j=j+1
  48. atomsv[j] = e.get();
  49. print(atomsv[j])
  50. update_label(event)
  51. if i==2:
  52. if len(e.get()) == 0:
  53. i=7
  54. del atomsv[2:7]
  55. print(atomsv[0:2])
  56. nmbrv = 2
  57. text1.set(lines[i])
  58. else:
  59. j=j+1
  60. atomsv[j] = e.get();
  61. print(atomsv[j])
  62. update_label(event)
  63. if i==1:
  64. if len(e.get()) == 0:
  65. i=7
  66. del atomsv[1:7]
  67. print(atomsv[0:1])
  68. nmbrv = 1
  69. text1.set(lines[i])
  70. else:
  71. j=j+1
  72. atomsv[j] = e.get();
  73. print(atomsv[j])
  74. update_label(event)
  75. if i==0:
  76. j=j+1
  77. atomsv[j] = e.get();
  78. print(atomsv[j])
  79. update_label(event)
  80. elif i==6:
  81. if i==6:
  82. if len(e.get()) == 0:
  83. del atomsv[6:7]
  84. print(atomsv[0:6])
  85. nmbrv = 6
  86. text1.set(lines[i])
  87. else:
  88. j=j+1
  89. atomsv[j] = e.get();
  90. print(atomsv[j])
  91. nmbrv = 7
  92. update_label(event)
  93. elif i>6:
  94. if i==13:
  95. if len(e.get()) == 0:
  96. del atomsc[6:7]
  97. print(atomsc[0:6])
  98. update_label(event)
  99. global nmbrc
  100. nmbrc = 7
  101. pregen()
  102. else:
  103. global k
  104. k=k+1
  105. atomsc[k] = e.get();
  106. print(atomsc[k])
  107. nmbrc = 6
  108. pregen()
  109. if i==12:
  110. if len(e.get()) == 0:
  111. del atomsc[5:7]
  112. print(atomsc[0:5])
  113. update_label(event)
  114. nmbrc = 5
  115. pregen()
  116. else:
  117. k=k+1
  118. atomsc[k] = e.get();
  119. print(atomsc[k])
  120. update_label(event)
  121. if i==11:
  122. if len(e.get()) == 0:
  123. del atomsc[4:7]
  124. print(atomsc[0:4])
  125. update_label(event)
  126. nmbrc = 4
  127. pregen()
  128. else:
  129. k=k+1
  130. atomsc[k] = e.get();
  131. print(atomsc[k])
  132. update_label(event)
  133. if i==10:
  134. if len(e.get()) == 0:
  135. del atomsc[3:7]
  136. print(atomsc[0:3])
  137. update_label(event)
  138. nmbrc = 3
  139. pregen()
  140. else:
  141. k=k+1
  142. atomsc[k] = e.get();
  143. print(atomsc[k])
  144. update_label(event)
  145. if i==9:
  146. if len(e.get()) == 0:
  147. del atomsc[2:7]
  148. print(atomsc[0:2])
  149. update_label(event)
  150. nmbrc = 2
  151. pregen()
  152. else:
  153. k=k+1
  154. atomsc[k] = e.get();
  155. print(atomsc[k])
  156. update_label(event)
  157. if i==8:
  158. if len(e.get()) == 0:
  159. del atomsc[1:7]
  160. print(atomsc[0:1])
  161. update_label(event)
  162. nmbrc = 1
  163. pregen()
  164. else:
  165. k=k+1
  166. atomsc[k] = e.get();
  167. print(atomsc[k])
  168. update_label(event)
  169. if i==7:
  170. k=k+1
  171. atomsc[k] = e.get();
  172. print(atomsc[k])
  173. update_label(event)
  174.  
  175. def update_label(event):
  176. e.delete(0, 'end')
  177. global i
  178. i=i+1
  179. if i<6:
  180. text1.set(lines[i])
  181. else:
  182. text1.set(lines[i])
  183.  
  184. def quit():
  185. root.quit()
  186. sys.exit(0)
  187.  
  188. def pregen():
  189. e.destroy()
  190. buttonnext.destroy()
  191. if nmbrv != 1 and nmbrc != 1:
  192. text1.set(lines[14])
  193. if nmbrv != 1 and nmbrc == 1:
  194. text1.set(lines[15])
  195. if nmbrc != 1 and nmbrv == 1:
  196. text1.set(lines[16])
  197. if nmbrv == 1 and nmbrc == 1:
  198. text1.set(lines[17])
  199. buttongen.place(relx=0.45, rely=0.22, anchor=CENTER)
  200.  
  201. def syllgen():
  202. open('twoatoms_list.csv', 'w')
  203. with open('twoatoms_list.csv', 'a',newline='') as csvfile:
  204. a = csv.writer(csvfile, delimiter=',')
  205. a.writerow(['Type of sequence', 'Sequence'])
  206. #V
  207. nmbrcombi = nmbrv
  208. global letter1
  209. for num in range(nmbrcombi):
  210. generated_syllable = atomsv[letter1]
  211. print(generated_syllable)
  212. f.write(generated_syllable + "\n")
  213. letter1 += 1
  214. letter1 = 0
  215. #VV
  216. nmbrcombi = (nmbrv*nmbrv)-nmbrv
  217. global letter2
  218. for num in range(nmbrv):
  219. for num in range(nmbrcombi//nmbrv):
  220. if letter1 == letter2:
  221. letter2 += 1
  222. if letter1 != letter2:
  223. generated_syllable = atomsv[letter1]+atomsv[letter2]
  224. print(generated_syllable)
  225. f.write(generated_syllable + "\n")
  226. with open('twoatoms_list.csv', 'a',newline='') as csvfile:
  227. a = csv.writer(csvfile, delimiter=',')
  228. a.writerow(['VV', '%s' % generated_syllable])
  229. letter2 += 1
  230. letter1 += 1
  231. letter2 = 0
  232. letter1,letter2 = 0,0
  233. #VC
  234. nmbrcombi = nmbrv*(nmbrc//nmbrc)
  235. for num in range(nmbrcombi):
  236. for num in range(nmbrc):
  237. generated_syllable = atomsv[letter1]+atomsc[letter2]
  238. print(generated_syllable)
  239. f.write(generated_syllable + "\n")
  240. with open('twoatoms_list.csv', 'a',newline='') as csvfile:
  241. a = csv.writer(csvfile, delimiter=',')
  242. a.writerow(['VC', '%s' % generated_syllable])
  243. letter2 += 1
  244. letter1 += 1
  245. letter2 = 0
  246. letter1,letter2 = 0,0
  247. #CV
  248. nmbrcombi = nmbrc*nmbrv
  249. for num in range(nmbrc):
  250. for num in range(nmbrv):
  251. generated_syllable = atomsc[letter1]+atomsv[letter2]
  252. print(generated_syllable)
  253. f.write(generated_syllable + "\n")
  254. with open('twoatoms_list.csv', 'a',newline='') as csvfile:
  255. a = csv.writer(csvfile, delimiter=',')
  256. a.writerow(['CV', '%s' % generated_syllable])
  257. letter2 += 1
  258. letter1 += 1
  259. letter2 = 0
  260. letter1,letter2 = 0,0
  261. #VVC
  262. nmbrcombi = ((nmbrv*nmbrv)-nmbrv)*nmbrc
  263. global letter3
  264. for num in range(nmbrv):
  265. for num in range(nmbrv-1):
  266. for num in range(nmbrc):
  267. if letter1 == letter2:
  268. letter2 += 1
  269. if letter1 != letter2:
  270. generated_syllable = atomsv[letter1]+atomsv[letter2]+atomsc[letter3]
  271. print(generated_syllable)
  272. f.write(generated_syllable + "\n")
  273. letter3 += 1
  274. letter2 += 1
  275. letter3 = 0
  276. letter1 += 1
  277. letter2, letter3 = 0,0
  278. letter1,letter2,letter3 = 0,0,0
  279. #VCV
  280. nmbrcombi = nmbrv*nmbrc*nmbrv
  281. for num in range(nmbrv):
  282. for num in range(nmbrc):
  283. for num in range(nmbrv):
  284. generated_syllable = atomsv[letter1]+atomsc[letter2]+atomsv[letter3]
  285. print(generated_syllable)
  286. f.write(generated_syllable + "\n")
  287. letter3 += 1
  288. letter2 += 1
  289. letter3 = 0
  290. letter1 += 1
  291. letter2,letter3 = 0,0
  292. letter1,letter2,letter3 = 0,0,0
  293. #CVV
  294. nmbrcombi = nmbrc*((nmbrv*nmbrv)-nmbrv)
  295. for num in range(nmbrc):
  296. for num in range(nmbrv):
  297. for num in range(((nmbrv*nmbrv)-nmbrv)//nmbrv):
  298. if letter2 == letter3:
  299. letter3 += 1
  300. if letter2 != letter3:
  301. generated_syllable = atomsc[letter1]+atomsv[letter2]+atomsv[letter3]
  302. print(generated_syllable)
  303. f.write(generated_syllable + "\n")
  304. letter3 += 1
  305. letter2 += 1
  306. letter3 = 0
  307. letter1 += 1
  308. letter2,letter3 = 0,0
  309. letter1,letter2,letter3 = 0,0,0
  310. #CVC
  311. nmbrcombi = nmbrv*nmbrc*nmbrv
  312. for num in range(nmbrc):
  313. for num in range(nmbrv):
  314. for num in range(nmbrc):
  315. generated_syllable = atomsc[letter1]+atomsv[letter2]+atomsc[letter3]
  316. print(generated_syllable)
  317. f.write(generated_syllable + "\n")
  318. letter3 += 1
  319. letter2 += 1
  320. letter3 = 0
  321. letter1 += 1
  322. letter2,letter3 = 0,0
  323. letter1,letter2,letter3 = 0,0,0
  324.  
  325. f.close()
  326. text1.set(lines[14])
  327. buttongen.destroy()
  328. buttonopen.place(relx=0.45, rely=0.22, anchor=CENTER)
  329. genover()
  330.  
  331. def genover():
  332. global num_lines
  333. global syllable_nmbr
  334. with open('syllable_list.txt', 'r') as f:
  335. for line in f:
  336. num_lines += 1
  337. print("Quantity of generated syllables:",num_lines)
  338. syllable_nmbr = "Quantity of generated syllables:",num_lines
  339. f.close()
  340. textvar2.place(relx=0.5, rely=0.15, anchor=CENTER)
  341. text2.set(syllable_nmbr)
  342. buttonquad.place(relx=0.45, rely=0.35, anchor=CENTER)
  343.  
  344. def openfile():
  345. current_path = os.getcwd()
  346. print(current_path)
  347. print(path_file)
  348. os.system("start " + path_file)
  349.  
  350. def quadgen():
  351. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  352. for line in csvfile:
  353. if line.startswith('VV'):
  354. #print(line[3:5])
  355. syllable1 = []
  356. syllable1.append(line[3:5])
  357. #print(syllable1[0])
  358. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  359. for line in csvfile:
  360. if line.startswith('CV'):
  361. #print(line[3:5])
  362. syllable2 = []
  363. syllable2.append(line[3:5])
  364. print(syllable1[0]+syllable2[0])
  365. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  366. for line in csvfile:
  367. if line.startswith('VC'):
  368. #print(line[3:5])
  369. syllable1 = []
  370. syllable1.append(line[3:5])
  371. #print(syllable1[0])
  372. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  373. for line in csvfile:
  374. if line.startswith('VV'):
  375. #print(line[3:5])
  376. syllable2 = []
  377. syllable2.append(line[3:5])
  378. print(syllable1[0]+syllable2[0])
  379. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  380. for line in csvfile:
  381. if line.startswith('VC'):
  382. #print(line[3:5])
  383. syllable1 = []
  384. syllable1.append(line[3:5])
  385. #print(syllable1[0])
  386. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  387. for line in csvfile:
  388. if line.startswith('VC'):
  389. #print(line[3:5])
  390. syllable2 = []
  391. syllable2.append(line[3:5])
  392. print(syllable1[0]+syllable2[0])
  393. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  394. for line in csvfile:
  395. if line.startswith('CV'):
  396. #print(line[3:5])
  397. syllable1 = []
  398. syllable1.append(line[3:5])
  399. #print(syllable1[0])
  400. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  401. for line in csvfile:
  402. if line.startswith('VC'):
  403. #print(line[3:5])
  404. syllable2 = []
  405. syllable2.append(line[3:5])
  406. print(syllable1[0]+syllable2[0])
  407. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  408. for line in csvfile:
  409. if line.startswith('CV'):
  410. #print(line[3:5])
  411. syllable1 = []
  412. syllable1.append(line[3:5])
  413. #print(syllable1[0])
  414. with open('twoatoms_list.csv', 'r',newline='') as csvfile:
  415. for line in csvfile:
  416. if line.startswith('CV'):
  417. #print(line[3:5])
  418. syllable2 = []
  419. syllable2.append(line[3:5])
  420. print(syllable1[0]+syllable2[0])
  421.  
  422.  
  423. path_file = 'syllable_list.txt'
  424. open("syllable_list.txt","w+",encoding='utf-8')
  425. f=open("syllable_list.txt","a",encoding='utf-8')
  426. i,j,k=0,-1,-1
  427. space = ' '
  428. atomsv = [0,0,0,0,0,0,0]
  429. atomsc = [0,0,0,0,0,0,0]
  430. num_lines = 0
  431. line1 = "Enter the first vowel you want:"
  432. line2 = "Enter the second vowel you want or nothing if you do not want more vowels:"
  433. line3 = "Enter the third vowel you want or nothing if you do not want more vowels:"
  434. line4 = "Enter the fourth vowel you want or nothing if you do not want more vowels:"
  435. line5 = "Enter the fifth vowel you want or nothing if you do not want more vowels:"
  436. line6 = "Enter the sixth vowel you want or nothing if you do not want more vowels:"
  437. line7 = "Enter the seventh vowel you want or nothing if you do not want more vowels:"
  438. line8 = "Enter the first consonant you want:"
  439. line9 = "Enter the second consonant you want or nothing if you do not want more consonants:"
  440. line10 = "Enter the third consonant you want or nothing if you do not want more consonants:"
  441. line11 = "Enter the fourth consonant you want or nothing if you do not want more consonants:"
  442. line12 = "Enter the fifth consonant you want or nothing if you do not want more consonants:"
  443. line13 = "Enter the sixth consonant you want or nothing if you do not want more consonants:"
  444. line14 = "Enter the seventh consonant you want or nothing if you do not want more consonants:"
  445. line15 = "You have chosen the vowels",atomsv,"and the consonants",atomsc
  446. line16 = "You have chosen the vowels",atomsv,"and the consonant",atomsc
  447. line17 = "You have chosen the vowel",atomsv,"and the consonants",atomsc
  448. line18 = "You have chosen the vowel",atomsv,"and the consonant",atomsc
  449. line19 = "All the combinations have been generated in a text file."
  450. syllable_nmbr = "Quantity of generated syllable_s:",num_lines
  451. lines = [line1,line2,line3,line4,line5,line6,line7,line8,line9,line10,line11,line12,line13,line14,line15,line16,line17,line18,line19]
  452. letter1,letter2,letter3 = 0,0,0
  453. nmbrv, nmbrc = 0,0
  454. root = Tk()
  455. root.title("Word generator")
  456. root.resizable(width=False, height=False)
  457. w = 800
  458. h = 600
  459. ws = root.winfo_screenwidth()
  460. hs = root.winfo_screenheight()
  461. x = (ws/2) - (w/2)
  462. y = (hs/2) - (h/2)
  463. root.geometry('%dx%d+%d+%d' %(w, h, x, y))
  464. welcome=Label(root, text ="This software generates syllables based on the sounds you choose.", bg="black",fg='#ffffff', font="13")
  465. welcome.place(relx=0.5, rely=0.05, anchor=CENTER)
  466. text1=StringVar()
  467. text1.set(line1)
  468. textvar1=Label(root, textvariable = text1,bg="black",fg='#ffffff', font="13")
  469. textvar1.place(relx=0.5, rely=0.1, anchor=CENTER)
  470. text2=StringVar()
  471. text2.set(syllable_nmbr)
  472. textvar2=Label(root, textvariable = text2,bg="black",fg='#ffffff', font="13")
  473. e = Entry(root)
  474. e.bind("<Return>",onReturn)
  475. e.place(relx=0.5, rely=0.15, anchor=CENTER)
  476. e.focus()
  477. buttonnext=Button(root, text="Next", command = onReturn)
  478. buttonnext.place(relx=0.45, rely=0.22, anchor=CENTER)
  479. buttonclose=Button(root, text="Exit", command = quit)
  480. buttonclose.place(relx=0.55, rely=0.22, anchor=CENTER)
  481. buttongen=Button(root, text="Generate", command = syllgen)
  482. buttonopen=Button(root, text="Open", command = openfile)
  483. buttonquad=Button(root, text="Generate", command = quadgen)
  484. root.configure(bg="black")
  485. root.iconbitmap(r'favicon.ico')
  486. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement