Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # maybe have specific sequences depending on whether the user wants consecutive vowels/consonants
- import sys
- import ipapy
- import os
- from tkinter import *
- from tkinter import Tk, Checkbutton, Label
- from tkinter import StringVar, IntVar
- import csv
- def onReturn(event=None):
- global i
- if i<6:
- if i==5:
- if len(e.get()) == 0:
- i=7
- del atomsv[5:7]
- print(atomsv[0:5])
- global nmbrv
- nmbrv = 5
- text1.set(lines[i])
- else:
- global j
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- update_label(event)
- if i==4:
- if len(e.get()) == 0:
- i=7
- del atomsv[4:7]
- print(atomsv[0:4])
- nmbrv = 4
- text1.set(lines[i])
- else:
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- update_label(event)
- if i==3:
- if len(e.get()) == 0:
- i=7
- del atomsv[3:7]
- print(atomsv[0:3])
- nmbrv = 3
- text1.set(lines[i])
- else:
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- update_label(event)
- if i==2:
- if len(e.get()) == 0:
- i=7
- del atomsv[2:7]
- print(atomsv[0:2])
- nmbrv = 2
- text1.set(lines[i])
- else:
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- update_label(event)
- if i==1:
- if len(e.get()) == 0:
- i=7
- del atomsv[1:7]
- print(atomsv[0:1])
- nmbrv = 1
- text1.set(lines[i])
- else:
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- update_label(event)
- if i==0:
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- update_label(event)
- elif i==6:
- if i==6:
- if len(e.get()) == 0:
- del atomsv[6:7]
- print(atomsv[0:6])
- nmbrv = 6
- text1.set(lines[i])
- else:
- j=j+1
- atomsv[j] = e.get();
- print(atomsv[j])
- nmbrv = 7
- update_label(event)
- elif i>6:
- if i==13:
- if len(e.get()) == 0:
- del atomsc[6:7]
- print(atomsc[0:6])
- update_label(event)
- global nmbrc
- nmbrc = 7
- pregen()
- else:
- global k
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- nmbrc = 6
- pregen()
- if i==12:
- if len(e.get()) == 0:
- del atomsc[5:7]
- print(atomsc[0:5])
- update_label(event)
- nmbrc = 5
- pregen()
- else:
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- update_label(event)
- if i==11:
- if len(e.get()) == 0:
- del atomsc[4:7]
- print(atomsc[0:4])
- update_label(event)
- nmbrc = 4
- pregen()
- else:
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- update_label(event)
- if i==10:
- if len(e.get()) == 0:
- del atomsc[3:7]
- print(atomsc[0:3])
- update_label(event)
- nmbrc = 3
- pregen()
- else:
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- update_label(event)
- if i==9:
- if len(e.get()) == 0:
- del atomsc[2:7]
- print(atomsc[0:2])
- update_label(event)
- nmbrc = 2
- pregen()
- else:
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- update_label(event)
- if i==8:
- if len(e.get()) == 0:
- del atomsc[1:7]
- print(atomsc[0:1])
- update_label(event)
- nmbrc = 1
- pregen()
- else:
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- update_label(event)
- if i==7:
- k=k+1
- atomsc[k] = e.get();
- print(atomsc[k])
- update_label(event)
- def update_label(event):
- e.delete(0, 'end')
- global i
- i=i+1
- if i<6:
- text1.set(lines[i])
- else:
- text1.set(lines[i])
- def quit():
- root.quit()
- sys.exit(0)
- def pregen():
- e.destroy()
- buttonnext.destroy()
- if nmbrv != 1 and nmbrc != 1:
- text1.set(lines[14])
- if nmbrv != 1 and nmbrc == 1:
- text1.set(lines[15])
- if nmbrc != 1 and nmbrv == 1:
- text1.set(lines[16])
- if nmbrv == 1 and nmbrc == 1:
- text1.set(lines[17])
- buttongen.place(relx=0.45, rely=0.22, anchor=CENTER)
- def syllgen():
- open('twoatoms_list.csv', 'w')
- with open('twoatoms_list.csv', 'a',newline='') as csvfile:
- a = csv.writer(csvfile, delimiter=',')
- a.writerow(['Type of sequence', 'Sequence'])
- #V
- nmbrcombi = nmbrv
- global letter1
- for num in range(nmbrcombi):
- generated_syllable = atomsv[letter1]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- letter1 += 1
- letter1 = 0
- #VV
- nmbrcombi = (nmbrv*nmbrv)-nmbrv
- global letter2
- for num in range(nmbrv):
- for num in range(nmbrcombi//nmbrv):
- if letter1 == letter2:
- letter2 += 1
- if letter1 != letter2:
- generated_syllable = atomsv[letter1]+atomsv[letter2]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- with open('twoatoms_list.csv', 'a',newline='') as csvfile:
- a = csv.writer(csvfile, delimiter=',')
- a.writerow(['VV', '%s' % generated_syllable])
- letter2 += 1
- letter1 += 1
- letter2 = 0
- letter1,letter2 = 0,0
- #VC
- nmbrcombi = nmbrv*(nmbrc//nmbrc)
- for num in range(nmbrcombi):
- for num in range(nmbrc):
- generated_syllable = atomsv[letter1]+atomsc[letter2]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- with open('twoatoms_list.csv', 'a',newline='') as csvfile:
- a = csv.writer(csvfile, delimiter=',')
- a.writerow(['VC', '%s' % generated_syllable])
- letter2 += 1
- letter1 += 1
- letter2 = 0
- letter1,letter2 = 0,0
- #CV
- nmbrcombi = nmbrc*nmbrv
- for num in range(nmbrc):
- for num in range(nmbrv):
- generated_syllable = atomsc[letter1]+atomsv[letter2]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- with open('twoatoms_list.csv', 'a',newline='') as csvfile:
- a = csv.writer(csvfile, delimiter=',')
- a.writerow(['CV', '%s' % generated_syllable])
- letter2 += 1
- letter1 += 1
- letter2 = 0
- letter1,letter2 = 0,0
- #VVC
- nmbrcombi = ((nmbrv*nmbrv)-nmbrv)*nmbrc
- global letter3
- for num in range(nmbrv):
- for num in range(nmbrv-1):
- for num in range(nmbrc):
- if letter1 == letter2:
- letter2 += 1
- if letter1 != letter2:
- generated_syllable = atomsv[letter1]+atomsv[letter2]+atomsc[letter3]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- letter3 += 1
- letter2 += 1
- letter3 = 0
- letter1 += 1
- letter2, letter3 = 0,0
- letter1,letter2,letter3 = 0,0,0
- #VCV
- nmbrcombi = nmbrv*nmbrc*nmbrv
- for num in range(nmbrv):
- for num in range(nmbrc):
- for num in range(nmbrv):
- generated_syllable = atomsv[letter1]+atomsc[letter2]+atomsv[letter3]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- letter3 += 1
- letter2 += 1
- letter3 = 0
- letter1 += 1
- letter2,letter3 = 0,0
- letter1,letter2,letter3 = 0,0,0
- #CVV
- nmbrcombi = nmbrc*((nmbrv*nmbrv)-nmbrv)
- for num in range(nmbrc):
- for num in range(nmbrv):
- for num in range(((nmbrv*nmbrv)-nmbrv)//nmbrv):
- if letter2 == letter3:
- letter3 += 1
- if letter2 != letter3:
- generated_syllable = atomsc[letter1]+atomsv[letter2]+atomsv[letter3]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- letter3 += 1
- letter2 += 1
- letter3 = 0
- letter1 += 1
- letter2,letter3 = 0,0
- letter1,letter2,letter3 = 0,0,0
- #CVC
- nmbrcombi = nmbrv*nmbrc*nmbrv
- for num in range(nmbrc):
- for num in range(nmbrv):
- for num in range(nmbrc):
- generated_syllable = atomsc[letter1]+atomsv[letter2]+atomsc[letter3]
- print(generated_syllable)
- f.write(generated_syllable + "\n")
- letter3 += 1
- letter2 += 1
- letter3 = 0
- letter1 += 1
- letter2,letter3 = 0,0
- letter1,letter2,letter3 = 0,0,0
- f.close()
- text1.set(lines[14])
- buttongen.destroy()
- buttonopen.place(relx=0.45, rely=0.22, anchor=CENTER)
- genover()
- def genover():
- global num_lines
- global syllable_nmbr
- with open('syllable_list.txt', 'r') as f:
- for line in f:
- num_lines += 1
- print("Quantity of generated syllables:",num_lines)
- syllable_nmbr = "Quantity of generated syllables:",num_lines
- f.close()
- textvar2.place(relx=0.5, rely=0.15, anchor=CENTER)
- text2.set(syllable_nmbr)
- buttonquad.place(relx=0.45, rely=0.35, anchor=CENTER)
- def openfile():
- current_path = os.getcwd()
- print(current_path)
- print(path_file)
- os.system("start " + path_file)
- def quadgen():
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('VV'):
- #print(line[3:5])
- syllable1 = []
- syllable1.append(line[3:5])
- #print(syllable1[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('CV'):
- #print(line[3:5])
- syllable2 = []
- syllable2.append(line[3:5])
- print(syllable1[0]+syllable2[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('VC'):
- #print(line[3:5])
- syllable1 = []
- syllable1.append(line[3:5])
- #print(syllable1[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('VV'):
- #print(line[3:5])
- syllable2 = []
- syllable2.append(line[3:5])
- print(syllable1[0]+syllable2[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('VC'):
- #print(line[3:5])
- syllable1 = []
- syllable1.append(line[3:5])
- #print(syllable1[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('VC'):
- #print(line[3:5])
- syllable2 = []
- syllable2.append(line[3:5])
- print(syllable1[0]+syllable2[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('CV'):
- #print(line[3:5])
- syllable1 = []
- syllable1.append(line[3:5])
- #print(syllable1[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('VC'):
- #print(line[3:5])
- syllable2 = []
- syllable2.append(line[3:5])
- print(syllable1[0]+syllable2[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('CV'):
- #print(line[3:5])
- syllable1 = []
- syllable1.append(line[3:5])
- #print(syllable1[0])
- with open('twoatoms_list.csv', 'r',newline='') as csvfile:
- for line in csvfile:
- if line.startswith('CV'):
- #print(line[3:5])
- syllable2 = []
- syllable2.append(line[3:5])
- print(syllable1[0]+syllable2[0])
- path_file = 'syllable_list.txt'
- open("syllable_list.txt","w+",encoding='utf-8')
- f=open("syllable_list.txt","a",encoding='utf-8')
- i,j,k=0,-1,-1
- space = ' '
- atomsv = [0,0,0,0,0,0,0]
- atomsc = [0,0,0,0,0,0,0]
- num_lines = 0
- line1 = "Enter the first vowel you want:"
- line2 = "Enter the second vowel you want or nothing if you do not want more vowels:"
- line3 = "Enter the third vowel you want or nothing if you do not want more vowels:"
- line4 = "Enter the fourth vowel you want or nothing if you do not want more vowels:"
- line5 = "Enter the fifth vowel you want or nothing if you do not want more vowels:"
- line6 = "Enter the sixth vowel you want or nothing if you do not want more vowels:"
- line7 = "Enter the seventh vowel you want or nothing if you do not want more vowels:"
- line8 = "Enter the first consonant you want:"
- line9 = "Enter the second consonant you want or nothing if you do not want more consonants:"
- line10 = "Enter the third consonant you want or nothing if you do not want more consonants:"
- line11 = "Enter the fourth consonant you want or nothing if you do not want more consonants:"
- line12 = "Enter the fifth consonant you want or nothing if you do not want more consonants:"
- line13 = "Enter the sixth consonant you want or nothing if you do not want more consonants:"
- line14 = "Enter the seventh consonant you want or nothing if you do not want more consonants:"
- line15 = "You have chosen the vowels",atomsv,"and the consonants",atomsc
- line16 = "You have chosen the vowels",atomsv,"and the consonant",atomsc
- line17 = "You have chosen the vowel",atomsv,"and the consonants",atomsc
- line18 = "You have chosen the vowel",atomsv,"and the consonant",atomsc
- line19 = "All the combinations have been generated in a text file."
- syllable_nmbr = "Quantity of generated syllable_s:",num_lines
- lines = [line1,line2,line3,line4,line5,line6,line7,line8,line9,line10,line11,line12,line13,line14,line15,line16,line17,line18,line19]
- letter1,letter2,letter3 = 0,0,0
- nmbrv, nmbrc = 0,0
- root = Tk()
- root.title("Word generator")
- root.resizable(width=False, height=False)
- w = 800
- h = 600
- ws = root.winfo_screenwidth()
- hs = root.winfo_screenheight()
- x = (ws/2) - (w/2)
- y = (hs/2) - (h/2)
- root.geometry('%dx%d+%d+%d' %(w, h, x, y))
- welcome=Label(root, text ="This software generates syllables based on the sounds you choose.", bg="black",fg='#ffffff', font="13")
- welcome.place(relx=0.5, rely=0.05, anchor=CENTER)
- text1=StringVar()
- text1.set(line1)
- textvar1=Label(root, textvariable = text1,bg="black",fg='#ffffff', font="13")
- textvar1.place(relx=0.5, rely=0.1, anchor=CENTER)
- text2=StringVar()
- text2.set(syllable_nmbr)
- textvar2=Label(root, textvariable = text2,bg="black",fg='#ffffff', font="13")
- e = Entry(root)
- e.bind("<Return>",onReturn)
- e.place(relx=0.5, rely=0.15, anchor=CENTER)
- e.focus()
- buttonnext=Button(root, text="Next", command = onReturn)
- buttonnext.place(relx=0.45, rely=0.22, anchor=CENTER)
- buttonclose=Button(root, text="Exit", command = quit)
- buttonclose.place(relx=0.55, rely=0.22, anchor=CENTER)
- buttongen=Button(root, text="Generate", command = syllgen)
- buttonopen=Button(root, text="Open", command = openfile)
- buttonquad=Button(root, text="Generate", command = quadgen)
- root.configure(bg="black")
- root.iconbitmap(r'favicon.ico')
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement