Created
July 31, 2022 10:48
-
-
Save abenezerangelos/ac4f9b3566b4773c7cf03d6800bddff2 to your computer and use it in GitHub Desktop.
productivity tool for studying languages and vocabularies
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from tkinter import * | |
import pandas as pd | |
import csv | |
from random import * | |
from tkinter.messagebox import * | |
CARD_BACK_BACKGROUND_COLOR="#96C1AA" | |
BACKGROUND_COLOR = "#B1DDC6" | |
learning_language="French" | |
language_already_learned="English" | |
try: | |
data=pd.read_csv("data/hard_words.csv") | |
print(data[learning_language]) | |
if len(data[learning_language])<=0: | |
raise EXCEPTION | |
except: | |
data=pd.read_csv("data/french_words.csv") | |
list_of_words_in_learning_language=list(data[learning_language]) | |
list_of_words_in_already_learned_language=list(data[language_already_learned]) | |
identifier=-1 | |
# TODO 1: Create UI using canvas photoimage and canvas_setimage assign buttons on the canvas. | |
# TODO 2: Next create the process in the background i.e.,save the list of words you have already done inside a list so that you don't go over them again. | |
window=Tk(screenName="Flash Card") | |
window.title("Flash Card") | |
# window.wm_attributes("-transparentcolor",CARD_BACK_BACKGROUND_COLOR) | |
window.configure(background=BACKGROUND_COLOR,padx=50,pady=50) | |
window.geometry(newGeometry="900x723") | |
card_other=PhotoImage(file="images/card_front.png") | |
card_english=PhotoImage(file="images/card_back.png") | |
right=PhotoImage(file="images/right.png") | |
wrong=PhotoImage(file="images/wrong.png") | |
def question(): | |
if len(list_of_words_in_learning_language)==0: | |
showinfo("Out of Flash Cards","Congratulations!, You have successfully memorized all the flash cards in the database. You can go over them again if needed.") | |
window.destroy() | |
else: | |
global identifier | |
if identifier: | |
global after_object | |
window.after_cancel(after_object) | |
global canvas | |
canvas = Canvas(window, width=700, height=400, borderwidth=0, highlightthickness=0, bg=BACKGROUND_COLOR) | |
canvas.configure(width=800, height=526) | |
canvas.create_image(400,263,image=card_other) | |
canvas.grid(row=0,column=0,columnspan=3,rowspan=2) | |
card_label_other=Label(text=learning_language,font=("Arial",40,"italic"),borderwidth=0,highlightthickness=0,bg="white") | |
card_label_other.grid(row=0,column=1,sticky=N,pady=122) | |
global number | |
number=randint(0,len(list_of_words_in_learning_language)-1) | |
print("PROBLEM",len(list_of_words_in_learning_language),identifier,"CAUSER") | |
print(number,111111) | |
card_label_other_word=Label(text=list_of_words_in_learning_language[number],font=("Arial",60,"bold"),justify=CENTER,borderwidth=0,highlightthickness=0,bg="white") | |
card_label_other_word.grid(row=0,column=1,sticky=S,pady=104) | |
identifier = True | |
after_object=window.after(3000,answer) | |
def answer(): | |
if len(list_of_words_in_already_learned_language)>0: | |
global canvas | |
canvas.destroy() | |
canvas = Canvas(window, width=700, height=400, borderwidth=0, highlightthickness=0, bg=BACKGROUND_COLOR) | |
canvas.configure(width=800, height=526) | |
canvas.create_image(400,263,image=card_english) | |
canvas.create_text(400,150, text=language_already_learned, font=("Arial", 40, "italic"), fill="white") | |
global number | |
canvas.create_text(400,263,text=list_of_words_in_already_learned_language[number], font=("Arial", 60, "bold"), | |
fill="white") | |
canvas.grid(row=0,column=0,columnspan=3,rowspan=2) | |
counter=[0] | |
def remove(): | |
global number | |
print(list_of_words_in_learning_language[number], "FRENCH", number) | |
print(list_of_words_in_already_learned_language[number], "ENGLISH", number) | |
popped_english_words=list_of_words_in_already_learned_language.pop(number) | |
popped_french_words=list_of_words_in_learning_language.pop(number) | |
print(popped_french_words,"FRENCH") | |
print(popped_english_words,"ENGLISH") | |
print(list_of_words_in_learning_language,"Check if it is empty") | |
hard_words = {learning_language: (list_of_words_in_learning_language), | |
language_already_learned: (list_of_words_in_already_learned_language)} | |
data = pd.DataFrame(hard_words) | |
data.to_csv(path_or_buf="data/hard_words.csv",mode="w") | |
print(data) | |
print(number,"THIS-") | |
counter[0]+=1 | |
print(counter[0]) | |
print(101-len(list_of_words_in_learning_language)) | |
print(101-len(list_of_words_in_already_learned_language),"..........") | |
question() | |
#,command=remove_word_from_both_lists | |
#----------------------------Data Manipulation and Displayment---------------------# | |
#we will contain this inside a function for one of the buttons probably the right one | |
identifier=False | |
question() | |
right_button=Button(image=wrong,borderwidth=0,highlightthickness=0,command=remove) | |
right_button.grid(column=0,row=2) | |
left_button=Button(image=right,borderwidth=0,highlightthickness=0,command=question) | |
left_button.grid(column=2,row=2) | |
window.mainloop() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment