From 9d8fb91f868f64e54f9b18cdd21a094340659814 Mon Sep 17 00:00:00 2001 From: Zeftax Date: Mon, 2 Sep 2019 11:14:28 +0200 Subject: [PATCH] added "swap sides" --- angtest.tst | 4 +-- programfiles/default.tst | 4 +-- vyzkousejme.py | 76 ++++++++++++++++++++++++++++++---------- 3 files changed, 61 insertions(+), 23 deletions(-) diff --git a/angtest.tst b/angtest.tst index e4a72b7..aba8d7a 100644 --- a/angtest.tst +++ b/angtest.tst @@ -1,6 +1,6 @@ CESTINA/ANGLICTINA -0 +13 apple/jablko car,automobile/auto,automobil chopper,helicopter/vrtulnik,helikoptera -pear/hruska \ No newline at end of file +pear/hruska diff --git a/programfiles/default.tst b/programfiles/default.tst index 7858aea..d3f0310 100644 --- a/programfiles/default.tst +++ b/programfiles/default.tst @@ -1,3 +1,3 @@ EXAMPLE TEST SUBJECT 1/EXAMPLE TEST SUBJECT 2 -0 -question will appear here/question will appear here \ No newline at end of file +1 +question will appear here/question will appear here diff --git a/vyzkousejme.py b/vyzkousejme.py index 0fc2b0f..b035d96 100644 --- a/vyzkousejme.py +++ b/vyzkousejme.py @@ -1,10 +1,37 @@ from tkinter import * from tkinter import filedialog from tkinter import messagebox -import time import random +def swapSides(): + global test + + temp = test[2] + test[2] = test[3] + test[3] = temp + + newQuestion() + + +def saveTest(): + print(test) + with open(filepath, mode='w') as file: + file.write(test[0]+'/'+test[1]) + file.write(str(test[4])+'\n') + for i in range(len(test[2])): + for j in range(len(test[2][i])): + file.write(test[2][i][j]) + if j < len(test[2][i])-1: + file.write(',') + file.write('/') + for j in range(len(test[3][i])): + file.write(test[3][i][j]) + if j < len(test[3][i])-1: + file.write(',') + file.write('\n') + + def newQuestion(): global questionPlace questionPlace = random.randint(0, len(test[2])-1) @@ -14,10 +41,11 @@ def newQuestion(): def on_closing(): if messagebox.askokcancel("Quit", "Do you want to quit?"): + saveTest() root.destroy() -def submitAnswer(): +def submitAnswer(uselessArgument): global score if answerEntry.get().lower() in test[3] [questionPlace]: score += 1 @@ -25,9 +53,9 @@ def submitAnswer(): else: score = 0 currentScore.set('Score: %s' % (score)) - if score > int(test[4]): + if score > test[4]: test[4] = score - highScore.set('High score: %s' % (test[4])) + highScore.set('High score: %d' % (test[4])) answerEntry.delete(0, 'end') newQuestion() @@ -43,7 +71,7 @@ def formatTest(filepath): sloupec1 = [] sloupec2 = [] - highScore = file[1].strip('/n') + highScore = int(file[1].strip('\n')) score = 0 for line in file[2:]: @@ -61,6 +89,8 @@ def getExtension(filename): # returns the last four characters in a filename as def openTest(): global test + global filepath + saveTest() gotfile = False filepath = None while not gotfile: @@ -68,9 +98,11 @@ def openTest(): if getExtension(filepath) == '.tst': gotfile = True else: - messagebox.showinfo("CHYBA: nerozeznany soubor", "Omlovame se ale soubory tupu '%s' nepodporujeme, podporujeme pouze soubory typu '.tst'" % (getExtension(filepath))) + messagebox.showinfo("ERROR: unrecognized file", "We are sorry but files with the '%s' appendix are not supported, we support only '.tst' files." % (getExtension(filepath))) test = list(formatTest(filepath)) newQuestion() + currentScore.set('Score: %s' % score) + highScore.set('High score: %d' % test[4]) def makeMenu(root): @@ -78,7 +110,7 @@ def makeMenu(root): root.config(menu=menu) menu.add_command(label='Open', command=openTest) - menu.add_command(label='Switch sides', command=None) + menu.add_command(label='Switch sides', command=swapSides) return menu @@ -86,13 +118,13 @@ def makeMenu(root): def makeRoot(): root = Tk() root.geometry('500x400') - root.title('Vyzkousej me') + root.title('Test Me') root.configure(bg="gray") return root root = makeRoot() -menu = makeMenu(root) +filepath = 'programfiles/default.tst' test = list(formatTest('programfiles/default.tst')) questionPlace = 0 score = 0 @@ -102,26 +134,32 @@ highScore = StringVar() question = StringVar() timeMultiplier = StringVar() +anotherSpacingLabel = Label(bg='gray', padx=5) currentScoreLabel = Label(root, textvariable=currentScore, bg='gray') highScoreLabel = Label(root, textvariable=highScore, bg='gray') -questionLabel = Label(root, textvariable=question) -answerEntry = Entry(root) +questionLabel = Label(root, textvariable=question, width=30) +spacingLabel = Label(bg='gray', padx=10) +answerEntry = Entry(root, width=30) answerButton = Button(root, text='submit', command=submitAnswer) timeMultiplierLabel = Label(root, textvariable=timeMultiplier, bg='gray') -currentScoreLabel.grid(row=0, column=0, columnspan=2, sticky=W) -highScoreLabel.grid(row=0, column=2, columnspan=2, sticky=E) -questionLabel.grid(row=1, column=1, sticky=W) -answerEntry.grid(row=1, column=2, sticky=E) -answerButton.grid(row=1, column=3, sticky=W) -timeMultiplierLabel.grid(row=2, column=0, columnspan=4) - +anotherSpacingLabel.grid(row=0, column=0) +currentScoreLabel.grid(row=0, column=1, columnspan=2, sticky=W) +highScoreLabel.grid(row=0, column=4, columnspan=2, sticky=E) +questionLabel.grid(row=1, column=2, sticky=W) +spacingLabel.grid(row=1, column=3) +answerEntry.grid(row=1, column=4, sticky=E) +answerButton.grid(row=1, column=5, sticky=W) +timeMultiplierLabel.grid(row=2, column=1, columnspan=5) currentScore.set('Score: %s' %(score)) -highScore.set('High score: %s' %(test[4])) +highScore.set('High score: %d' %(test[4])) question.set('question will appear here') timeMultiplier.set('Time multiplier is: 0') root.protocol("WM_DELETE_WINDOW", on_closing) +answerEntry.bind('', submitAnswer) + +menu = makeMenu(root) root.mainloop()