✏️
Codasium
  • Welkom bij Codasium!
  • Handleiding
  • Moduleoverzicht
  • Module 1.1 - Hedy
  • Module 1.2 Van Hedy naar Python
    • Opdracht 1
    • Opdracht 2
  • Module 2.1 - Geschiedenis quiz
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
    • Les 5
      • Les 5a
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7a
      • Les 7b
  • Module 2.2 - PyGame Quiz
    • Les 1
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
    • Les 5
      • Les 5a
      • Les 5b
    • Les 6
      • Les 6a
      • Les 6b
    • Les 7
      • Les 7a
      • Les 7b
    • Les 8
      • Les 8a
      • Les 8b
    • TODOs
  • Module 2.3 - Pygame Biologie
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
  • Module 2.4 - Rekenmachine
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
    • Les 5
      • Les 5a
      • Les 5b
    • Les 6
      • Les 6a
      • Les 6b
    • Les 7 (extra)
      • Les 7a
      • Les 7b
  • Module 2.5 - Microbit
  • Module 2.6 - Creative Coding
    • Les 1a
    • Les 1b
    • Les 2a
    • Les 2b
  • Module 3.1 - Spreadsheets
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6 en 7
      • Les 6b
    • Les 8 - Eindopdracht
      • Les 8b
  • Module 3.2 - Databases
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 3.3 - TkInter Rekenmachine
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 3.4 - TKinter Woordenoefenapp
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 3.5 - Arduino
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 4.1 - JavaScript
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 4.2 - Game maken
  • Module 4.3 - EU app (TODO)
  • Module 5.1 - Eigen project
  • Module 5.2 - Generatieve AI
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
  • Module 6.1 - Boekenproject
    • Les 1 - Leeswijzer - Basis
    • Les 2 - Leeswijzer - Verdieping
    • Les 3 - Opdrachten
    • Les 4 - Opdrachten
  • Module 6.2 - Algoritmiek
  • 💤Archief
    • Module 1.1 - Nederlands
      • Spiekbrief
        • Spiekbrief - in te vullen
        • Spiekbrief - ingevuld
      • Les 1
        • Les 1a
        • Les 1b
      • Les 2
        • Les 2a
        • Les 2b
      • Les 3
        • Les 3a
        • Les 3b
      • Les 4
        • Les 4a
        • Les 4b
      • Les 5
        • Les 5a
        • Les 5b
      • Eindopdracht
        • Eindopdracht
      • Nakijkbladen
        • Les 1
        • Les 2
        • Les 3
        • Les 4
        • Les 5
    • Module 1.2 - Kunst
      • Les 1
        • Les 1a
        • Les 1b
      • Les 2
        • Les 2a
        • Les 2b
      • Les 3
        • Les 3a
        • Les 3b
      • Les 4
        • Les 4a
        • Les 4b
      • Les 5
        • Les 5a
        • Les 5b
      • Eindopdracht
        • Les 6b
      • Nakijkbladen
        • Les 1
        • Les 2
        • Les 3
        • Les 4
        • Les 5
    • Module 4.1 - Flask
      • Les 1
        • Les 1b
      • Les 2
        • Les 2b
      • Les 3
        • Les 3b
      • Les 4
        • Les 4b
      • Les 5
        • Les 5b
Powered by GitBook
On this page

Was this helpful?

  1. Module 3.3 - TkInter Rekenmachine
  2. Les 8

Les 8b

1) Gebruikersinformatie

In deze laatste les gaan we gebruikers aan de app toevoegen, zodat er meerdere mensen mee kunnen oefenen. Volg deze stappen:

  1. Maak een extra label en een invoerveld. Deze moeten in beeld komen bij het opstarten van de app.

  2. Maak na het klikken op de ok-knop een bestand voor deze gebruiker: words-username.csv dus bijvoorbeeld: words-henkie.csven open dat bestand.

Dat gaan we zo aanpakken: Sla eerst de naam van de gebruiker en de bijbehorende bestandsnaam op in globale variabelen, zodat je er in het hele programma bij kan. De globals moeten op een losse regels!

  global gebruikersnaam
  gebruikersnaam = gebruikersnaamveld.get()
  global bestandsnaam
  bestandsnaam = f'words{gebruikersnaam}.csv'

Volg dan deze stappen:

  • Importeer deze libraries: import os.path, shutil

  • Maak een bestandsnaam aan met de fstrings die we hebben geleerd: bestandsnaam = f'words{gebruikersnaam}.csv'

Test nu je code uit en kijk of je f-string klopt!!!

  • Kijk nu of het bestand bestaat met: if not os.path.exists(bestandsnaam):

  • Zo nee, kopieer het originele bestand: shutil.copy("words.csv", bestandsnaam)

  • Gebruik overal in het programma nu bestandsnaamin plaats van "words.csv"!!!

Verder kan het programma blijven werken zoals het al werkt.

1b) Wachtwoord erbij (extra)

Wil je het nog mooier maken? Maak dan een tweede label en veldje voor een wachtwoord. Sla de wachtwoorden op in een nieuw bestand en zoek het goede wachtwoord op! Tip! Wil je dat het er echt mooi uitziet als een wachtwoord? Gebruik dan deze code: wachtwoordveld = Entry(root, show="*")

2) Statistieken voor alle gebruikers tonen

Nu je meerdere gebruikers hebt, kun je bij het tonenveld ook statistieken laten zien over de scores van alle gebruikers, relatief aan de huidige gebruiker! Bijvoorbeeld:

  • Het moeilijkste woord voor alle gebruikers (alle fouten in alle files bij elkaar opgeteld)

  • Hoeveel woorden een gemiddelde gebruiker goed heeft versus deze gebruiker

  • Hoeveel zinnen een gemiddelde gebruiker ingevoerd heeft versus deze gebruiker

  • De lengte van de langste zin van alle gebruikers versus de huidige gebruiker

3) Sla ook een datum op bij ieder antwoord

Als je dit nog niet gedaan had, kun je nu het tonen-venster uitgebreider maken met datum-informatie. Dat doen we door ook de datum van vandaag op te slaan als iemand een antwoord invoert. Daarmee kan je nog veel meer statistieken maken zoals:

  • Aantal antwoorden goed vandaag, deze week, deze maand

  • Aantal antwoorden fout vandaag, deze week, deze maand

  • Welk woord het allerlangst geleden fout beantwoord is

Volg deze stappen om de datum in te voeren:

  1. Zet boven aan je code import time

  2. Voeg nu bij het antwoorden de code datum = date.today() in

  3. Sla de variabele ook op in je csv file door de rij aan te passen

  4. Sla de variabele ook op in je csv file door de headers aan te passen

En, omdat je nu meerdere gebruikers hebt, kun je daar ook informatie over laten zien, bijvoorbeeld:

  • Hoeveel gebruikers er deze maand, week of dag hebben gespeeld

  • Of de huidige gebruiker vaker of minder vaak oefende dan gemiddeld!

PreviousLes 8NextModule 3.4 - TKinter Woordenoefenapp

Last updated 2 years ago

Was this helpful?