Skip to content

Instantly share code, notes, and snippets.

@abenezerangelos
Created July 31, 2022 10:48
Show Gist options
  • Save abenezerangelos/ac4f9b3566b4773c7cf03d6800bddff2 to your computer and use it in GitHub Desktop.
Save abenezerangelos/ac4f9b3566b4773c7cf03d6800bddff2 to your computer and use it in GitHub Desktop.
productivity tool for studying languages and vocabularies
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