commit 20a3467c94a69412c83f5a2b2af491133a76eaf8 Author: Ben de Roo Date: Fri May 1 14:28:07 2026 +0200 Upload files to "/" diff --git a/benstypcurses.py b/benstypcurses.py new file mode 100644 index 0000000..68fee3c --- /dev/null +++ b/benstypcurses.py @@ -0,0 +1,106 @@ +from db import nederlandse_woorden +import random +import time + +RED = "\033[31m" +GREEN = "\033[32m" +BLUE = "\033[34m" +RESET = "\033[0m" +BOLD = "\033[1m" +UNDERLINE = "\033[4m" +YELLOW = "\033[33m" +MAGENTA = "\033[35m" +CYAN = "\033[36m" + +def start(aantal): + print(BOLD + "Typ het woord over:" + RESET) + print() + + woorden = random.sample(nederlandse_woorden, aantal) + + goed = 0 + fout = 0 + tijd_start_volledig = time.time() + + for woord in woorden: + print(BOLD + YELLOW + woord + RESET) + print() + + start_tijd = time.time() + + gegeven = input(" > " + UNDERLINE).strip() + print(RESET) + eind_tijd = time.time() + + tijd = round(eind_tijd - start_tijd, 2) + + if gegeven == woord: + print(f"{GREEN}{BOLD}Goed! {RESET}Tijd: {tijd} seconden") + print() + goed += 1 + elif gegeven == "exit": + break + elif gegeven == "quit": + break + elif gegeven == "break": + break + else: + fout += 1 + print(f"{RED}{BOLD}Fout!{RESET} Het juiste woord was: {woord}") + print(f"Tijd: {tijd} seconden") + print() + + tijd_stop_volledig = time.time() + totale_tijd = round(tijd_stop_volledig - tijd_start_volledig, 2) + gem_tijd = round(totale_tijd / len(woorden), 2) + + totaal = goed + fout + + accuracy = round((goed / totaal) * 100, 2) if totaal > 0 else 0 + if accuracy >= 55: + accuracy_kleur = GREEN + else: + accuracy_kleur = RED + + print() + print(f"totaal goed: {GREEN}{BOLD}{goed}{RESET}") + print(f"totaal fout: {RED}{BOLD}{fout}{RESET}") + print(f"totale tijd: {MAGENTA}{BOLD}{totale_tijd}{RESET}") + print(f"gemiddelde tijd per woord: {MAGENTA}{BOLD}{gem_tijd}{RESET}") + print(f"accuracy: {accuracy_kleur}{BOLD}{accuracy}%{RESET}") + + +menu = f""" +bens typcurses + +{UNDERLINE}Menu:{RESET} +1. Start 100 woorden +2. Start 200 woorden +3. Start alle woorden +4. Start kies aantal woorden +5. {BOLD}Afsluiten{RESET} +""" + +while True: + print(menu) + + menu_keuze = input(" > ").strip() + + if not menu_keuze.isdigit(): + print("Voer een nummer in.\n") + continue + + menu_keuze = int(menu_keuze) + + if menu_keuze > 5 or menu_keuze < 1: + print("gekozen optie bestaat niet, probeer opnieuw.\n") + elif menu_keuze == 1: + start(100) + elif menu_keuze == 2: + start(200) + elif menu_keuze == 3: + start(len(nederlandse_woorden)) + elif menu_keuze == 4: + start(int(input("hoeveel woorden? :"))) + elif menu_keuze == 5: + break diff --git a/db.py b/db.py new file mode 100644 index 0000000..95cd094 --- /dev/null +++ b/db.py @@ -0,0 +1,480 @@ +nederlandse_woorden = [ + "aarde", + "aandacht", + "aankomen", + "aantal", + "aanval", + "aanwezig", + "aardig", + "avond", + "achter", + "actie", + "adem", + "adres", + "afspraak", + "afval", + "agent", + "akker", + "alarm", + "alles", + "allemaal", + "als", + "altijd", + "ambacht", + "ambulance", + "amerika", + "ander", + "antwoord", + "appel", + "april", + "arm", + "artikel", + "arts", + "asfalt", + "auto", + "avondeten", + "baan", + "baard", + "baby", + "badkamer", + "bakker", + "bal", + "bank", + "bar", + "basis", + "batterij", + "bed", + "bedrag", + "bedrijf", + "beeld", + "been", + "begin", + "begroting", + "behandeling", + "behoefte", + "bekend", + "bel", + "belangrijk", + "beleid", + "belofte", + "beneden", + "berg", + "bericht", + "beroep", + "bescherming", + "besluit", + "bestaan", + "bestelling", + "betaald", + "bezoek", + "bezig", + "bibliotheek", + "bier", + "bijna", + "bijvoorbeeld", + "binnen", + "bioscoop", + "blad", + "blank", + "blauw", + "blij", + "blik", + "bloem", + "bloed", + "boerderij", + "boek", + "boom", + "boord", + "boot", + "bord", + "bos", + "boven", + "brand", + "broer", + "brood", + "brug", + "buiten", + "bureau", + "buurt", + "camera", + "camping", + "centrum", + "chef", + "chip", + "cola", + "computer", + "concert", + "contact", + "controle", + "container", + "contract", + "cultuur", + "daar", + "dag", + "dak", + "dankbaar", + "dans", + "darm", + "database", + "deken", + "denken", + "deur", + "dichtbij", + "dier", + "digitaal", + "ding", + "direct", + "dokter", + "donderdag", + "dorp", + "drank", + "droom", + "druk", + "duidelijk", + "duizend", + "echt", + "eenheid", + "eenvoudig", + "eigenaar", + "eiland", + "einde", + "eindelijk", + "energie", + "engel", + "engels", + "enorm", + "ervaring", + "eten", + "euro", + "familie", + "fantasie", + "februari", + "feest", + "fiets", + "film", + "fles", + "folder", + "foto", + "frankrijk", + "fruit", + "functie", + "garage", + "gast", + "gebouw", + "geheim", + "geld", + "geluid", + "gemeente", + "gerecht", + "gereedschap", + "geschiedenis", + "geur", + "gevaar", + "gevoel", + "gezicht", + "glas", + "god", + "goed", + "goud", + "graad", + "grafiek", + "gras", + "gratis", + "groen", + "groep", + "groot", + "haar", + "haast", + "hagel", + "hal", + "hallo", + "hamer", + "hand", + "haven", + "hek", + "helder", + "herinnering", + "herfst", + "heuvel", + "hond", + "hoofdstad", + "hoog", + "hoop", + "hotel", + "hout", + "huis", + "humor", + "idee", + "ijs", + "ijzer", + "informatie", + "internet", + "jacht", + "jaar", + "januari", + "jas", + "jeugd", + "jongen", + "journalist", + "juli", + "juni", + "kaart", + "kabel", + "kamer", + "kampioen", + "kantoor", + "kapot", + "kast", + "kat", + "kasteel", + "keuken", + "keuze", + "kilo", + "kind", + "klacht", + "klant", + "kleur", + "klimaat", + "klok", + "koffie", + "kok", + "komkommer", + "koning", + "koorts", + "kop", + "kracht", + "krant", + "krediet", + "kring", + "kruis", + "kunst", + "kwaliteit", + "kwaad", + "lamp", + "land", + "langzaam", + "laser", + "later", + "leven", + "licht", + "lied", + "liefde", + "lift", + "lijst", + "limburg", + "linie", + "linux", + "lucht", + "lunch", + "machine", + "maaltijd", + "maan", + "maandag", + "maart", + "maatschappij", + "makkelijk", + "magazijn", + "magneet", + "man", + "manager", + "markt", + "materiaal", + "medewerker", + "mei", + "mens", + "menu", + "meter", + "middag", + "middel", + "miljoen", + "minister", + "mobiel", + "model", + "moeder", + "moment", + "monster", + "motor", + "muur", + "muziek", + "nacht", + "nadeel", + "nationaal", + "natuur", + "neef", + "Nederland", + "netwerk", + "nieuw", + "nieuws", + "noodzaak", + "nooit", + "nummer", + "ober", + "object", + "oceaan", + "october", + "officier", + "olie", + "onderdeel", + "onderwerp", + "onderzoek", + "ontwikkeling", + "oorlog", + "opa", + "opleiding", + "oplossing", + "opmerking", + "opslag", + "optie", + "orde", + "organisatie", + "oud", + "oven", + "overzicht", + "pakket", + "pagina", + "papier", + "park", + "partner", + "paspoort", + "pauze", + "pen", + "percentage", + "perfect", + "periode", + "persoon", + "pet", + "piano", + "piloot", + "pizza", + "plaats", + "planeet", + "plant", + "plastic", + "plein", + "politie", + "poort", + "positie", + "post", + "praktijk", + "prijs", + "printer", + "probleem", + "programma", + "project", + "provincie", + "radio", + "reactie", + "rekening", + "regen", + "regel", + "regering", + "reis", + "restaurant", + "resultaat", + "ritme", + "robot", + "rook", + "ruimte", + "school", + "schouder", + "schrijfwijze", + "schuur", + "seconde", + "september", + "server", + "sinaasappel", + "situatie", + "slaap", + "sleutel", + "slim", + "snelheid", + "software", + "spanning", + "spiegel", + "spoor", + "sport", + "spraak", + "stad", + "station", + "steen", + "stem", + "stoel", + "straat", + "student", + "suiker", + "tafel", + "taart", + "tafelblad", + "taal", + "tablet", + "tank", + "tas", + "taxi", + "telefoon", + "temperatuur", + "tent", + "terrein", + "test", + "theater", + "ticket", + "tijd", + "toekomst", + "tomaat", + "toren", + "trein", + "tuin", + "universiteit", + "uur", + "vakantie", + "varken", + "veld", + "venster", + "verhaal", + "verkeer", + "verschil", + "verslag", + "vertrouwen", + "verzoek", + "video", + "vijand", + "vliegtuig", + "vloer", + "voedsel", + "voetbal", + "volk", + "vraag", + "vriend", + "vuur", + "wagen", + "water", + "wedstrijd", + "weg", + "wereld", + "werk", + "winkel", + "winter", + "wolk", + "woning", + "woord", + "worst", + "zaak", + "zand", + "zee", + "zeker", + "zelfstandig", + "zender", + "zenuw", + "ziekenhuis", + "ziel", + "zilver", + "zingen", + "zomer", + "zon", + "zondag", + "zorg", + "zout", + "zuid", + "zuster", + "zwart", + "zweet" +]