1834 lines
31 KiB
JavaScript
1834 lines
31 KiB
JavaScript
const words = [
|
|
"aalen",
|
|
"Abart",
|
|
"abbat",
|
|
"Abbau",
|
|
"abbog",
|
|
"Abend",
|
|
"abgab",
|
|
"Abgas",
|
|
"abhob",
|
|
"Abhol",
|
|
"abkam",
|
|
"ablag",
|
|
"Abort",
|
|
"Abruf",
|
|
"absah",
|
|
"Absud",
|
|
"abtat",
|
|
"Abtei",
|
|
"abtun",
|
|
"Abweg",
|
|
"abwog",
|
|
"abzog",
|
|
"Abzug",
|
|
"Achse",
|
|
"Acker",
|
|
"Acryl",
|
|
"Adams",
|
|
"adeln",
|
|
"Adels",
|
|
"adieu",
|
|
"Adler",
|
|
"adlig",
|
|
"Affen",
|
|
"affig",
|
|
"After",
|
|
"Agave",
|
|
"Agent",
|
|
"Agrar",
|
|
"ahmen",
|
|
"ahnen",
|
|
"Ahorn",
|
|
"Akten",
|
|
"Aktie",
|
|
"aktiv",
|
|
"Aktor",
|
|
"Alarm",
|
|
"Alben",
|
|
"Album",
|
|
"alert",
|
|
"alias",
|
|
"Alibi",
|
|
"Allee",
|
|
"allwo",
|
|
"allzu",
|
|
"Alpen",
|
|
"Alpha",
|
|
"alpin",
|
|
"Altar",
|
|
"Alten",
|
|
"Alter",
|
|
"Ammen",
|
|
"Ampel",
|
|
"Amsel",
|
|
"amten",
|
|
"Anbau",
|
|
"anbei",
|
|
"anbot",
|
|
"andre",
|
|
"angab",
|
|
"Angel",
|
|
"angst",
|
|
"anhob",
|
|
"ankam",
|
|
"Anker",
|
|
"Anmut",
|
|
"Anruf",
|
|
"ansah",
|
|
"antat",
|
|
"antik",
|
|
"antun",
|
|
"anzog",
|
|
"Anzug",
|
|
"apart",
|
|
"Apfel",
|
|
"April",
|
|
"Apsis",
|
|
"Arche",
|
|
"Areal",
|
|
"Arena",
|
|
"Arier",
|
|
"Armee",
|
|
"Armen",
|
|
"Armut",
|
|
"Aroma",
|
|
"Arsch",
|
|
"Arsen",
|
|
"arten",
|
|
"artig",
|
|
"Asche",
|
|
"Asien",
|
|
"Asket",
|
|
"Aspik",
|
|
"Assel",
|
|
"Aster",
|
|
"Astro",
|
|
"Atlas",
|
|
"atmen",
|
|
"Atoll",
|
|
"Audio",
|
|
"Augen",
|
|
"Autor",
|
|
"Axiom",
|
|
"baden",
|
|
"Bahre",
|
|
"Bambi",
|
|
"banal",
|
|
"Bande",
|
|
"Banjo",
|
|
"Barde",
|
|
"Baron",
|
|
"barst",
|
|
"basal",
|
|
"Basar",
|
|
"Basis",
|
|
"Batik",
|
|
"Bauch",
|
|
"bauen",
|
|
"Bauer",
|
|
"beben",
|
|
"Beere",
|
|
"begab",
|
|
"beide",
|
|
"beige",
|
|
"bekam",
|
|
"Belag",
|
|
"Beleg",
|
|
"belud",
|
|
"Berge",
|
|
"Beruf",
|
|
"besah",
|
|
"Besen",
|
|
"beste",
|
|
"beten",
|
|
"Beton",
|
|
"Beuge",
|
|
"Beule",
|
|
"Beute",
|
|
"bevor",
|
|
"bewog",
|
|
"Bezug",
|
|
"Bibel",
|
|
"Biber",
|
|
"Biene",
|
|
"Biest",
|
|
"Binde",
|
|
"Binse",
|
|
"birgt",
|
|
"Birke",
|
|
"Birne",
|
|
"Bitte",
|
|
"Biwak",
|
|
"blank",
|
|
"Blase",
|
|
"blass",
|
|
"Blatt",
|
|
"Blech",
|
|
"blich",
|
|
"Blick",
|
|
"blieb",
|
|
"blies",
|
|
"blind",
|
|
"Blink",
|
|
"Blitz",
|
|
"Block",
|
|
"blond",
|
|
"Bluff",
|
|
"Blume",
|
|
"Bluse",
|
|
"Boden",
|
|
"Bogen",
|
|
"Bohle",
|
|
"Bohne",
|
|
"Bombe",
|
|
"Bongo",
|
|
"Bonus",
|
|
"Bonze",
|
|
"Boots",
|
|
"Borke",
|
|
"Borte",
|
|
"Boten",
|
|
"Bowle",
|
|
"boxen",
|
|
"Boxer",
|
|
"brach",
|
|
"Brand",
|
|
"Braue",
|
|
"braun",
|
|
"Braut",
|
|
"Brech",
|
|
"breit",
|
|
"Brems",
|
|
"Brenn",
|
|
"Brett",
|
|
"Brief",
|
|
"briet",
|
|
"Brise",
|
|
"Brite",
|
|
"Bruch",
|
|
"Brumm",
|
|
"Brust",
|
|
"Buben",
|
|
"buhen",
|
|
"Bulle",
|
|
"Busch",
|
|
"Busen",
|
|
"Butan",
|
|
"Butze",
|
|
"Celli",
|
|
"Cello",
|
|
"Chaos",
|
|
"Chaot",
|
|
"Chlor",
|
|
"Choke",
|
|
"Chrom",
|
|
"Civil",
|
|
"Clown",
|
|
"Cobra",
|
|
"Codex",
|
|
"Comic",
|
|
"Couch",
|
|
"Coupe",
|
|
"Creme",
|
|
"Curry",
|
|
"dabei",
|
|
"Dachs",
|
|
"daher",
|
|
"dahin",
|
|
"Damen",
|
|
"damit",
|
|
"Dampf",
|
|
"Dandy",
|
|
"daran",
|
|
"darum",
|
|
"Datei",
|
|
"Daten",
|
|
"Datex",
|
|
"Dativ",
|
|
"Datum",
|
|
"Dauer",
|
|
"Daune",
|
|
"davon",
|
|
"davor",
|
|
"debil",
|
|
"Degen",
|
|
"Deich",
|
|
"Dekan",
|
|
"Dekor",
|
|
"Delle",
|
|
"Delta",
|
|
"Demut",
|
|
"Depot",
|
|
"derer",
|
|
"desto",
|
|
"Devon",
|
|
"devot",
|
|
"dicht",
|
|
"Diele",
|
|
"Dildo",
|
|
"Dinar",
|
|
"Diode",
|
|
"Dirne",
|
|
"Diwan",
|
|
"Docht",
|
|
"Dogge",
|
|
"Dogma",
|
|
"Dohle",
|
|
"Dolch",
|
|
"Donau",
|
|
"Dosen",
|
|
"Dosis",
|
|
"Draht",
|
|
"drall",
|
|
"Drama",
|
|
"drang",
|
|
"drauf",
|
|
"Dreck",
|
|
"Drift",
|
|
"Drink",
|
|
"dritt",
|
|
"Droge",
|
|
"Druck",
|
|
"Dudel",
|
|
"Duell",
|
|
"Duett",
|
|
"dumpf",
|
|
"Dunst",
|
|
"durch",
|
|
"Durst",
|
|
"Dusch",
|
|
"Dusel",
|
|
"duzen",
|
|
"ebben",
|
|
"Ebene",
|
|
"ebnen",
|
|
"ecken",
|
|
"eckig",
|
|
"Edukt",
|
|
"ehren",
|
|
"Eiche",
|
|
"Eifer",
|
|
"eigen",
|
|
"eilen",
|
|
"eilig",
|
|
"Eimer",
|
|
"einen",
|
|
"einig",
|
|
"Eisen",
|
|
"eisig",
|
|
"eitel",
|
|
"Eiter",
|
|
"ekeln",
|
|
"Eklat",
|
|
"eklig",
|
|
"Ekzem",
|
|
"elend",
|
|
"Elfen",
|
|
"Elite",
|
|
"Ellen",
|
|
"empor",
|
|
"emsig",
|
|
"enden",
|
|
"Engel",
|
|
"engen",
|
|
"Enkel",
|
|
"enorm",
|
|
"Enten",
|
|
"Enzym",
|
|
"erbat",
|
|
"erben",
|
|
"Erbin",
|
|
"Erbse",
|
|
"erden",
|
|
"erdig",
|
|
"ergab",
|
|
"Erker",
|
|
"erlag",
|
|
"ernst",
|
|
"Ernte",
|
|
"erzog",
|
|
"Esche",
|
|
"Essen",
|
|
"Esser",
|
|
"Essig",
|
|
"Etage",
|
|
"Ethik",
|
|
"Ethos",
|
|
"Eulen",
|
|
"Euter",
|
|
"exakt",
|
|
"extra",
|
|
"Fabel",
|
|
"Faden",
|
|
"Fahne",
|
|
"Fahrt",
|
|
"Falke",
|
|
"Falle",
|
|
"falls",
|
|
"Falte",
|
|
"famos",
|
|
"Fango",
|
|
"Farbe",
|
|
"Fasan",
|
|
"Faser",
|
|
"fatal",
|
|
"Fatum",
|
|
"Fauna",
|
|
"Faust",
|
|
"faxen",
|
|
"Fazit",
|
|
"Fecht",
|
|
"Feder",
|
|
"fegen",
|
|
"Feger",
|
|
"Fehde",
|
|
"Feier",
|
|
"Feile",
|
|
"feind",
|
|
"Felge",
|
|
"Ferse",
|
|
"fesch",
|
|
"Feuer",
|
|
"Fibel",
|
|
"Fiber",
|
|
"fidel",
|
|
"Figur",
|
|
"Filet",
|
|
"final",
|
|
"finit",
|
|
"Finne",
|
|
"Finte",
|
|
"Firma",
|
|
"First",
|
|
"Fisch",
|
|
"fixen",
|
|
"Fixer",
|
|
"Fjord",
|
|
"flach",
|
|
"Flair",
|
|
"Flaum",
|
|
"Fleck",
|
|
"flink",
|
|
"Flirt",
|
|
"Flora",
|
|
"floss",
|
|
"flott",
|
|
"Fluch",
|
|
"flugs",
|
|
"Fluid",
|
|
"Fluor",
|
|
"Fluss",
|
|
"focht",
|
|
"Fokus",
|
|
"Folge",
|
|
"Folie",
|
|
"Foren",
|
|
"Forst",
|
|
"Forum",
|
|
"Foyer",
|
|
"Frack",
|
|
"Frage",
|
|
"Franc",
|
|
"Freak",
|
|
"frech",
|
|
"fremd",
|
|
"Fress",
|
|
"Freud",
|
|
"Frist",
|
|
"fromm",
|
|
"Front",
|
|
"Frost",
|
|
"Frust",
|
|
"Fuchs",
|
|
"Fuder",
|
|
"Fugen",
|
|
"Fuhre",
|
|
"Furie",
|
|
"Fusel",
|
|
"Futur",
|
|
"Gabel",
|
|
"Galle",
|
|
"Garbe",
|
|
"Garde",
|
|
"garni",
|
|
"Gasse",
|
|
"Gassi",
|
|
"Gatte",
|
|
"Gauda",
|
|
"gebar",
|
|
"geben",
|
|
"Geber",
|
|
"Gebet",
|
|
"Gebot",
|
|
"gegen",
|
|
"gehen",
|
|
"Geier",
|
|
"Geige",
|
|
"Geist",
|
|
"Gelee",
|
|
"genau",
|
|
"Genie",
|
|
"Genom",
|
|
"Genre",
|
|
"genug",
|
|
"Genus",
|
|
"Geste",
|
|
"getan",
|
|
"Getto",
|
|
"Getue",
|
|
"Gicht",
|
|
"Gilde",
|
|
"Ginko",
|
|
"Glanz",
|
|
"glatt",
|
|
"Gleis",
|
|
"Gleit",
|
|
"glich",
|
|
"Glied",
|
|
"Glimm",
|
|
"glitt",
|
|
"Gnade",
|
|
"Gosse",
|
|
"Gouda",
|
|
"Gramm",
|
|
"Graph",
|
|
"Greif",
|
|
"Greis",
|
|
"grell",
|
|
"Grenz",
|
|
"griff",
|
|
"Grill",
|
|
"Grips",
|
|
"Groll",
|
|
"Grube",
|
|
"Gruft",
|
|
"Grund",
|
|
"Gulag",
|
|
"Gummi",
|
|
"Gunst",
|
|
"Gurke",
|
|
"Gusto",
|
|
"haben",
|
|
"Hades",
|
|
"Hafen",
|
|
"Hafer",
|
|
"Hagel",
|
|
"hager",
|
|
"haken",
|
|
"Halde",
|
|
"hallo",
|
|
"Halte",
|
|
"Handy",
|
|
"Hanse",
|
|
"Harem",
|
|
"Harfe",
|
|
"Hasel",
|
|
"Hasen",
|
|
"hatte",
|
|
"Haube",
|
|
"Hauch",
|
|
"hauen",
|
|
"Hauer",
|
|
"Haupt",
|
|
"Hebel",
|
|
"heben",
|
|
"Heber",
|
|
"Hecht",
|
|
"hegen",
|
|
"Heide",
|
|
"Helot",
|
|
"Henne",
|
|
"herab",
|
|
"heran",
|
|
"herum",
|
|
"herzu",
|
|
"heuer",
|
|
"heute",
|
|
"hexen",
|
|
"Hexer",
|
|
"hielt",
|
|
"Hilfe",
|
|
"Hilfs",
|
|
"hilft",
|
|
"hinab",
|
|
"hinan",
|
|
"Hindu",
|
|
"hinzu",
|
|
"Hirse",
|
|
"Hirte",
|
|
"Hitze",
|
|
"Hobby",
|
|
"Hobel",
|
|
"Hoden",
|
|
"holen",
|
|
"Honig",
|
|
"Horde",
|
|
"Horst",
|
|
"Hosen",
|
|
"Hotel",
|
|
"human",
|
|
"humid",
|
|
"Humor",
|
|
"Humus",
|
|
"Hunde",
|
|
"Hunne",
|
|
"hupen",
|
|
"huren",
|
|
"hurra",
|
|
"Husar",
|
|
"Hydra",
|
|
"Hymne",
|
|
"ideal",
|
|
"Ideen",
|
|
"Idiot",
|
|
"Idyll",
|
|
"Ihnen",
|
|
"igeln",
|
|
"Ikone",
|
|
"Iltis",
|
|
"Image",
|
|
"Imker",
|
|
"immer",
|
|
"immun",
|
|
"indem",
|
|
"indes",
|
|
"Index",
|
|
"Indio",
|
|
"Indiz",
|
|
"infam",
|
|
"Innen",
|
|
"innig",
|
|
"Insel",
|
|
"intim",
|
|
"intus",
|
|
"Ionen",
|
|
"irden",
|
|
"irren",
|
|
"irrig",
|
|
"Islam",
|
|
"Jacht",
|
|
"Jacke",
|
|
"jagen",
|
|
"Japan",
|
|
"jeher",
|
|
"jetzt",
|
|
"Joker",
|
|
"Jolle",
|
|
"Joule",
|
|
"Jubel",
|
|
"Juden",
|
|
"Jumbo",
|
|
"Junge",
|
|
"Juras",
|
|
"Juror",
|
|
"Juwel",
|
|
"Kabel",
|
|
"Kader",
|
|
"Kakao",
|
|
"Kalbs",
|
|
"Kalif",
|
|
"Kamel",
|
|
"Kamin",
|
|
"Kampf",
|
|
"Kanal",
|
|
"Kanne",
|
|
"Kanon",
|
|
"Kante",
|
|
"Kappe",
|
|
"Karat",
|
|
"Karre",
|
|
"Karte",
|
|
"Kasko",
|
|
"Kasse",
|
|
"Kasus",
|
|
"Kater",
|
|
"Katze",
|
|
"kauen",
|
|
"Kegel",
|
|
"Kehle",
|
|
"Kelch",
|
|
"Kelle",
|
|
"Kerze",
|
|
"Kette",
|
|
"Keule",
|
|
"Kiepe",
|
|
"Kiosk",
|
|
"Kippe",
|
|
"Kirch",
|
|
"Kiste",
|
|
"Klage",
|
|
"klamm",
|
|
"klang",
|
|
"Klapp",
|
|
"Klebe",
|
|
"Kleid",
|
|
"Kleie",
|
|
"klein",
|
|
"Klemm",
|
|
"Klick",
|
|
"Klima",
|
|
"klipp",
|
|
"Klops",
|
|
"Klotz",
|
|
"Kluft",
|
|
"Knabe",
|
|
"Knack",
|
|
"Knall",
|
|
"knapp",
|
|
"Knast",
|
|
"Knauf",
|
|
"Knick",
|
|
"knien",
|
|
"kniff",
|
|
"Knopf",
|
|
"Kobra",
|
|
"Kodex",
|
|
"Kohle",
|
|
"Kokon",
|
|
"Kolik",
|
|
"Komet",
|
|
"Komik",
|
|
"Komma",
|
|
"Konto",
|
|
"Kopie",
|
|
"Koran",
|
|
"Korps",
|
|
"Korso",
|
|
"Kosak",
|
|
"Krach",
|
|
"kraft",
|
|
"Krake",
|
|
"krank",
|
|
"Kranz",
|
|
"krass",
|
|
"kraus",
|
|
"Kraut",
|
|
"Krebs",
|
|
"Kreis",
|
|
"Krepp",
|
|
"Kreuz",
|
|
"Krieg",
|
|
"Krimi",
|
|
"Krise",
|
|
"kroch",
|
|
"Krone",
|
|
"Kropf",
|
|
"kross",
|
|
"Krume",
|
|
"krumm",
|
|
"Kuben",
|
|
"Kubus",
|
|
"Kugel",
|
|
"Kuhle",
|
|
"Kunde",
|
|
"Kunst",
|
|
"Kupee",
|
|
"Kupon",
|
|
"Kuppe",
|
|
"kuren",
|
|
"Kurie",
|
|
"Kurve",
|
|
"laben",
|
|
"labil",
|
|
"Labor",
|
|
"Lache",
|
|
"Lachs",
|
|
"laden",
|
|
"Lader",
|
|
"Lagen",
|
|
"Lager",
|
|
"Lakai",
|
|
"Laken",
|
|
"Lamee",
|
|
"Lampe",
|
|
"Lande",
|
|
"Lanze",
|
|
"Larve",
|
|
"Laser",
|
|
"Lasso",
|
|
"Latex",
|
|
"Latte",
|
|
"Laube",
|
|
"Lauch",
|
|
"Lauer",
|
|
"Laune",
|
|
"leben",
|
|
"Leber",
|
|
"Leder",
|
|
"ledig",
|
|
"legal",
|
|
"legen",
|
|
"leger",
|
|
"Lehne",
|
|
"Lehre",
|
|
"leibt",
|
|
"Leier",
|
|
"Leine",
|
|
"leise",
|
|
"Lemma",
|
|
"Lende",
|
|
"Lepra",
|
|
"Lesbe",
|
|
"lesen",
|
|
"Leser",
|
|
"Letzt",
|
|
"Leute",
|
|
"Liane",
|
|
"licht",
|
|
"Liebe",
|
|
"Liege",
|
|
"liest",
|
|
"Ligen",
|
|
"Lilie",
|
|
"Limes",
|
|
"Limit",
|
|
"Linde",
|
|
"Linie",
|
|
"linke",
|
|
"links",
|
|
"Linse",
|
|
"Lippe",
|
|
"Liter",
|
|
"Litze",
|
|
"Lobby",
|
|
"loben",
|
|
"Logik",
|
|
"Logis",
|
|
"lokal",
|
|
"losen",
|
|
"loten",
|
|
"Lotos",
|
|
"Lotse",
|
|
"Lotto",
|
|
"loyal",
|
|
"Luchs",
|
|
"Luder",
|
|
"lugen",
|
|
"Lunge",
|
|
"Lunte",
|
|
"Luxus",
|
|
"Lymph",
|
|
"Lyrik",
|
|
"Macho",
|
|
"Macht",
|
|
"Macke",
|
|
"madig",
|
|
"Mafia",
|
|
"Magen",
|
|
"mager",
|
|
"Magie",
|
|
"Magma",
|
|
"magst",
|
|
"Major",
|
|
"Makel",
|
|
"Makro",
|
|
"malen",
|
|
"Maler",
|
|
"Malus",
|
|
"Malve",
|
|
"manch",
|
|
"Manie",
|
|
"Manko",
|
|
"Manna",
|
|
"Mappe",
|
|
"Marge",
|
|
"Markt",
|
|
"Maske",
|
|
"Masse",
|
|
"Mauer",
|
|
"Media",
|
|
"Meile",
|
|
"Meise",
|
|
"meist",
|
|
"Melde",
|
|
"Menge",
|
|
"Mensa",
|
|
"Messe",
|
|
"Meter",
|
|
"Meute",
|
|
"Miene",
|
|
"Miete",
|
|
"Mieze",
|
|
"Mikro",
|
|
"Milan",
|
|
"Milbe",
|
|
"Milch",
|
|
"Miliz",
|
|
"Mimik",
|
|
"Minen",
|
|
"minus",
|
|
"Misch",
|
|
"Mitte",
|
|
"mixen",
|
|
"Mixer",
|
|
"mobil",
|
|
"Modul",
|
|
"Modus",
|
|
"Mogul",
|
|
"Mokka",
|
|
"Monat",
|
|
"Moped",
|
|
"Moral",
|
|
"Morse",
|
|
"Motel",
|
|
"Motiv",
|
|
"Motor",
|
|
"Motte",
|
|
"Motto",
|
|
"Muffe",
|
|
"Mulde",
|
|
"Multi",
|
|
"Mumie",
|
|
"Murks",
|
|
"Musik",
|
|
"musst",
|
|
"muten",
|
|
"mutig",
|
|
"Mutti",
|
|
"Myrre",
|
|
"Nabel",
|
|
"Nacht",
|
|
"nackt",
|
|
"Nadel",
|
|
"Nagel",
|
|
"nagen",
|
|
"Nager",
|
|
"nahen",
|
|
"Namen",
|
|
"Narbe",
|
|
"Nasen",
|
|
"nativ",
|
|
"Natur",
|
|
"Nebel",
|
|
"neben",
|
|
"nebst",
|
|
"Neffe",
|
|
"Nelke",
|
|
"netto",
|
|
"neuer",
|
|
"neunt",
|
|
"nicht",
|
|
"Niere",
|
|
"Niete",
|
|
"nimmt",
|
|
"nobel",
|
|
"Nomen",
|
|
"Nonne",
|
|
"norme",
|
|
"Notar",
|
|
"Noten",
|
|
"Notiz",
|
|
"Novum",
|
|
"Nudel",
|
|
"Nugat",
|
|
"Nylon",
|
|
"Obhut",
|
|
"oblag",
|
|
"ocker",
|
|
"Odium",,
|
|
"offen",
|
|
"Oheim",
|
|
"Ohren",
|
|
"Oktan",
|
|
"Oktav",
|
|
"Olive",
|
|
"Olymp",
|
|
"Onkel",
|
|
"Opern",
|
|
"Opfer",
|
|
"Opium",
|
|
"Optik",
|
|
"Orbit",
|
|
"Orden",
|
|
"Order",
|
|
"Organ",
|
|
"Orgel",
|
|
"Orgie",
|
|
"Orkan",
|
|
"orten",
|
|
"Osten",
|
|
"Oster",
|
|
"Otter",
|
|
"Ozean",
|
|
"Pacht",
|
|
"Paket",
|
|
"Palme",
|
|
"Panik",
|
|
"Panne",
|
|
"Pappe",
|
|
"Papst",
|
|
"parat",
|
|
"Pasta",
|
|
"Paste",
|
|
"Pater",
|
|
"Pauke",
|
|
"Pause",
|
|
"Pedal",
|
|
"Pegel",
|
|
"Perle",
|
|
"Pfahl",
|
|
"Pfand",
|
|
"Pfarr",
|
|
"Pfeil",
|
|
"Pferd",
|
|
"pfiff",
|
|
"Pflug",
|
|
"Pfote",
|
|
"Pfuhl",
|
|
"Pfund",
|
|
"Phase",
|
|
"Photo",
|
|
"piano",
|
|
"Piezo",
|
|
"Pille",
|
|
"Pilot",
|
|
"Pinie",
|
|
"Pinne",
|
|
"Pirat",
|
|
"Piste",
|
|
"Pixel",
|
|
"Pizza",
|
|
"platt",
|
|
"Platz",
|
|
"plump",
|
|
"Pluto",
|
|
"Pokal",
|
|
"Poker",
|
|
"polar",
|
|
"Polen",
|
|
"polig",
|
|
"Polis",
|
|
"Polit",
|
|
"Polle",
|
|
"Polyp",
|
|
"Poren",
|
|
"Porti",
|
|
"Porto",
|
|
"Posse",
|
|
"prall",
|
|
"Preis",
|
|
"Press",
|
|
"pries",
|
|
"prima",
|
|
"Prime",
|
|
"Prinz",
|
|
"Probe",
|
|
"Profi",
|
|
"Prosa",
|
|
"prost",
|
|
"Prunk",
|
|
"Psalm",
|
|
"Pudel",
|
|
"Puder",
|
|
"Pulle",
|
|
"Pulli",
|
|
"Pumpe",
|
|
"Punkt",
|
|
"Puppe",
|
|
"Puter",
|
|
"Pylon",
|
|
"Qualm",
|
|
"Quant",
|
|
"Quark",
|
|
"Quart",
|
|
"Quarz",
|
|
"quasi",
|
|
"Quell",
|
|
"Quere",
|
|
"Quirl",
|
|
"quitt",
|
|
"Quote",
|
|
"Rache",
|
|
"Radar",
|
|
"Radau",
|
|
"Radio",
|
|
"Radon",
|
|
"ragen",
|
|
"Rampe",
|
|
"rapid",
|
|
"Rappe",
|
|
"rasch",
|
|
"rasen",
|
|
"Rasse",
|
|
"raten",
|
|
"Ratte",
|
|
"Rauch",
|
|
"Raudi",
|
|
"rauen",
|
|
"Raupe",
|
|
"Realo",
|
|
"recht",
|
|
"reden",
|
|
"reell",
|
|
"Regal",
|
|
"Regel",
|
|
"regen",
|
|
"Regie",
|
|
"reich",
|
|
"Reihe",
|
|
"Reise",
|
|
"remis",
|
|
"Rente",
|
|
"reuig",
|
|
"Revue",
|
|
"Richt",
|
|
"Ricke",
|
|
"Riege",
|
|
"Riese",
|
|
"riete",
|
|
"rigid",
|
|
"Rille",
|
|
"Rinde",
|
|
"rings",
|
|
"Rinne",
|
|
"Rippe",
|
|
"Riten",
|
|
"Robbe",
|
|
"roden",
|
|
"Rolle",
|
|
"Rolli",
|
|
"Roman",
|
|
"Rommé",
|
|
"Rondo",
|
|
"Rosen",
|
|
"rosig",
|
|
"Rotor",
|
|
"Route",
|
|
"Rubel",
|
|
"Rubin",
|
|
"Ruder",
|
|
"rufen",
|
|
"Rufer",
|
|
"Rugby",
|
|
"ruhen",
|
|
"ruhig",
|
|
"Rumpf",
|
|
"Runde",
|
|
"Rupie",
|
|
"Sache",
|
|
"sacht",
|
|
"sagen",
|
|
"Sahne",
|
|
"Saite",
|
|
"Salat",
|
|
"Salbe",
|
|
"Saldo",
|
|
"Salon",
|
|
"Salto",
|
|
"Salut",
|
|
"Salve",
|
|
"Samba",
|
|
"Samen",
|
|
"sanft",
|
|
"Satan",
|
|
"Satin",
|
|
"Satyr",
|
|
"Sauce",
|
|
"sauen",
|
|
"sauer",
|
|
"Sauna",
|
|
"Schad",
|
|
"Schaf",
|
|
"Schah",
|
|
"schal",
|
|
"Scham",
|
|
"Schar",
|
|
"Schau",
|
|
"scheu",
|
|
"schob",
|
|
"schon",
|
|
"schor",
|
|
"Schub",
|
|
"schuf",
|
|
"Schuh",
|
|
"Schul",
|
|
"Schur",
|
|
"sechs",
|
|
"Seele",
|
|
"Segel",
|
|
"Segen",
|
|
"sehen",
|
|
"Seher",
|
|
"Seide",
|
|
"Seife",
|
|
"Seite",
|
|
"selbe",
|
|
"selig",
|
|
"Semit",
|
|
"Senat",
|
|
"Sende",
|
|
"senil",
|
|
"Señor",
|
|
"Seren",
|
|
"Serie",
|
|
"Serum",
|
|
"Sesam",
|
|
"Sexte",
|
|
"Sexus",
|
|
"Sicht",
|
|
"siech",
|
|
"sieht",
|
|
"Silbe",
|
|
"Sinus",
|
|
"Sippe",
|
|
"Sirup",
|
|
"Sitte",
|
|
"Skala",
|
|
"Skalp",
|
|
"Skier",
|
|
"Slawe",
|
|
"smart",
|
|
"Socke",
|
|
"sogar",
|
|
"Sohle",
|
|
"solch",
|
|
"Solei",
|
|
"solle",
|
|
"somit",
|
|
"Sonde",
|
|
"Sonne",
|
|
"sonor",
|
|
"sonst",
|
|
"sooft",
|
|
"Sorge",
|
|
"Sorte",
|
|
"sowie",
|
|
"Spalt",
|
|
"Spann",
|
|
"Spant",
|
|
"Spatz",
|
|
"Speck",
|
|
"Speer",
|
|
"Sperr",
|
|
"Spezi",
|
|
"Spiel",
|
|
"spien",
|
|
"Spike",
|
|
"Spind",
|
|
"Spion",
|
|
"spitz",
|
|
"Spore",
|
|
"Sporn",
|
|
"Sport",
|
|
"Spott",
|
|
"Spreu",
|
|
"Sprit",
|
|
"Spule",
|
|
"Spurt",
|
|
"Staat",
|
|
"Stabs",
|
|
"stach",
|
|
"Stadt",
|
|
"stahl",
|
|
"Stall",
|
|
"Stamm",
|
|
"stand",
|
|
"stank",
|
|
"starb",
|
|
"stark",
|
|
"starr",
|
|
"Start",
|
|
"statt",
|
|
"Staub",
|
|
"Steak",
|
|
"Stech",
|
|
"Steck",
|
|
"steif",
|
|
"Steig",
|
|
"steil",
|
|
"Stein",
|
|
"Stell",
|
|
"Stemm",
|
|
"Stern",
|
|
"stete",
|
|
"stets",
|
|
"Stich",
|
|
"stieg",
|
|
"Stiel",
|
|
"Stier",
|
|
"Stift",
|
|
"still",
|
|
"Stimm",
|
|
"Stirn",
|
|
"Stock",
|
|
"Stoff",
|
|
"Stola",
|
|
"stolz",
|
|
"Stopp",
|
|
"Straf",
|
|
"Streb",
|
|
"Streu",
|
|
"Stroh",
|
|
"Strom",
|
|
"Stube",
|
|
"Stuck",
|
|
"Stufe",
|
|
"Stuhl",
|
|
"stumm",
|
|
"Stunk",
|
|
"Sturm",
|
|
"Sturz",
|
|
"Stuss",
|
|
"Stute",
|
|
"Suche",
|
|
"Sucht",
|
|
"Suite",
|
|
"Summe",
|
|
"Sumpf",
|
|
"super",
|
|
"Suppe",
|
|
"Sushi",
|
|
"Szene",
|
|
"Tabak",
|
|
"Tadel",
|
|
"Tafel",
|
|
"tagen",
|
|
"Tages",
|
|
"Taiga",
|
|
"Takel",
|
|
"Taler",
|
|
"Talon",
|
|
"Tango",
|
|
"Tanne",
|
|
"Tante",
|
|
"Tapet",
|
|
"Tarif",
|
|
"Tasse",
|
|
"Taste",
|
|
"Tatze",
|
|
"Taube",
|
|
"Tauch",
|
|
"tauen",
|
|
"Taxen",
|
|
"Teeei",
|
|
"Teich",
|
|
"Teile",
|
|
"Teint",
|
|
"Telex",
|
|
"Tempo",
|
|
"Tenne",
|
|
"Tenor",
|
|
"teuer",
|
|
"Theke",
|
|
"Thema",
|
|
"These",
|
|
"Thron",
|
|
"Tiger",
|
|
"Tilde",
|
|
"Tinte",
|
|
"Tisch",
|
|
"Titan",
|
|
"Titel",
|
|
"Toast",
|
|
"toben",
|
|
"Todes",
|
|
"Tonne",
|
|
"Topas",
|
|
"Torso",
|
|
"Torte",
|
|
"tosen",
|
|
"total",
|
|
"Toten",
|
|
"Trafo",
|
|
"Trage",
|
|
"Trakt",
|
|
"trank",
|
|
"Traum",
|
|
"Treff",
|
|
"Treib",
|
|
"Trend",
|
|
"Trenn",
|
|
"Treue",
|
|
"Trias",
|
|
"Trick",
|
|
"trieb",
|
|
"Trink",
|
|
"trist",
|
|
"Tritt",
|
|
"Troll",
|
|
"Tropf",
|
|
"Tross",
|
|
"Trost",
|
|
"Trott",
|
|
"trotz",
|
|
"Truhe",
|
|
"Trunk",
|
|
"Trupp",
|
|
"tuend",
|
|
"Tulpe",
|
|
"Tumor",
|
|
"Tunte",
|
|
"Turbo",
|
|
"Tusch",
|
|
"tuten",
|
|
"Tutor",
|
|
"Typen",
|
|
"Typus",
|
|
"ulken",
|
|
"ulkig",
|
|
"Ultra",
|
|
"Umbau",
|
|
"umgab",
|
|
"umher",
|
|
"umhin",
|
|
"umkam",
|
|
"umsah",
|
|
"umtun",
|
|
"Umweg",
|
|
"umzog",
|
|
"Umzug",
|
|
"Unfug",
|
|
"Union",
|
|
"unken",
|
|
"Unmut",
|
|
"Unrat",
|
|
"Unruh",
|
|
"unser",
|
|
"unsre",
|
|
"unten",
|
|
"unter",
|
|
"Urahn",
|
|
"uralt",
|
|
"urban",
|
|
"Vater",
|
|
"vegan",
|
|
"Velin",
|
|
"Venen",
|
|
"Venus",
|
|
"Video",
|
|
"viert",
|
|
"Vikar",
|
|
"Villa",
|
|
"Viper",
|
|
"Viren",
|
|
"Virus",
|
|
"Visum",
|
|
"vital",
|
|
"Vlies",
|
|
"Vogel",
|
|
"voilà",
|
|
"Vokal",
|
|
"Volks",
|
|
"vorab",
|
|
"voran",
|
|
"vorig",
|
|
"Votum",
|
|
"Waage",
|
|
"Wache",
|
|
"Wachs",
|
|
"Wacht",
|
|
"Waden",
|
|
"Waffe",
|
|
"wagen",
|
|
"Wagon",
|
|
"Waise",
|
|
"Walze",
|
|
"Wange",
|
|
"Wanne",
|
|
"Wanst",
|
|
"Wanze",
|
|
"waren",
|
|
"Warte",
|
|
"warum",
|
|
"Warze",
|
|
"Wasch",
|
|
"waten",
|
|
"Watte",
|
|
"weben",
|
|
"Weber",
|
|
"Wedel",
|
|
"weder",
|
|
"wehen",
|
|
"weich",
|
|
"Weide",
|
|
"Weihe",
|
|
"weise",
|
|
"Weite",
|
|
"welch",
|
|
"Welle",
|
|
"Welpe",
|
|
"Wende",
|
|
"wenig",
|
|
"Werbe",
|
|
"Werft",
|
|
"Werks",
|
|
"Werte",
|
|
"Wesen",
|
|
"Wespe",
|
|
"Weste",
|
|
"Wette",
|
|
"Wicke",
|
|
"wider",
|
|
"Wiese",
|
|
"wieso",
|
|
"Wille",
|
|
"wirbt",
|
|
"wirft",
|
|
"wirst",
|
|
"Wisch",
|
|
"Witwe",
|
|
"wobei",
|
|
"Woche",
|
|
"Wodka",
|
|
"woher",
|
|
"wohin",
|
|
"Wolfs",
|
|
"Wolke",
|
|
"Wolle",
|
|
"womit",
|
|
"Wonne",
|
|
"woran",
|
|
"worin",
|
|
"worum",
|
|
"Wotan",
|
|
"wovon",
|
|
"wovor",
|
|
"Wrack",
|
|
"wrang",
|
|
"wuchs",
|
|
"Wucht",
|
|
"Wulst",
|
|
"Wunde",
|
|
"wurde",
|
|
"Wurst",
|
|
"wusch",
|
|
"Yacht",
|
|
"Zange",
|
|
"Zebra",
|
|
"Zeche",
|
|
"zehnt",
|
|
"Zeige",
|
|
"Zeile",
|
|
"Zelle",
|
|
"Zeter",
|
|
"Zicke",
|
|
"Ziege",
|
|
"Zille",
|
|
"zirka",
|
|
"Zitat",
|
|
"Zitze",
|
|
"zivil",
|
|
"Zobel",
|
|
"Zonen",
|
|
"zotig",
|
|
"Zuber",
|
|
"Zucht",
|
|
"zudem",
|
|
"zugab",
|
|
"zugig",
|
|
"zumal",
|
|
"Zunft",
|
|
"Zunge",
|
|
"Zuruf",
|
|
"zusah",
|
|
"Zutat",
|
|
"Zutun",
|
|
"zuvor",
|
|
"zuzog",
|
|
"Zuzug",
|
|
"zwang",
|
|
"Zweck",
|
|
"Zweig",
|
|
"zweit",
|
|
"Zwerg",
|
|
"Zwirn",
|
|
"Zwist",
|
|
"Zyste",
|
|
];
|
|
|
|
|
|
const lowerWords = words.map(word => word.toLowerCase());
|
|
|
|
const letterArr = [
|
|
"Q",
|
|
"W",
|
|
"E",
|
|
"R",
|
|
"T",
|
|
"Z",
|
|
"U",
|
|
"I",
|
|
"O",
|
|
"P",
|
|
"A",
|
|
"S",
|
|
"D",
|
|
"F",
|
|
"G",
|
|
"H",
|
|
"J",
|
|
"K",
|
|
"L",
|
|
"ENTER",
|
|
"Y",
|
|
"X",
|
|
"C",
|
|
"V",
|
|
"B",
|
|
"N",
|
|
"M",
|
|
"DEL",
|
|
];
|
|
let END = false;
|
|
let LEVEL = 0;
|
|
let LETTER = 0;
|
|
|
|
const gameArea = document.getElementById("game-area");
|
|
const keyboard = document.getElementById("keyboard");
|
|
const wordle = document.getElementById("wordle");
|
|
|
|
var date = new Date();
|
|
var day = date.getDate();
|
|
var month = date.getMonth() + 1;
|
|
var year = date.getFullYear();
|
|
var dateKey = day.toString() + month.toString() + year.toString();
|
|
Math.seedrandom(dateKey);
|
|
var randomNum = Math.floor(Math.random() * 1535) + 1;
|
|
|
|
const THEWORD = lowerWords[randomNum].toUpperCase();
|
|
// const THEWORD = lowerWords[Math.floor(Math.random() * lowerWords.length)].toUpperCase();
|
|
// console.log(THEWORD);
|
|
|
|
//setting up the game area
|
|
for (let i = 0; i <= 5; i++) {
|
|
for (let j = 0; j <= 4; j++) {
|
|
const newDiv = document.createElement("div");
|
|
newDiv.classList.add("row" + i);
|
|
newDiv.classList.add("wordle-box");
|
|
newDiv.id = "div" + i + j;
|
|
const newSpan = document.createElement("span");
|
|
newSpan.id = i + "-" + j;
|
|
newDiv.appendChild(newSpan);
|
|
gameArea.appendChild(newDiv);
|
|
}
|
|
}
|
|
|
|
//add letter function which is called by the keyboard and when you click on the in game keyboard
|
|
const addLetter = (letterEvent) => {
|
|
const currLetter = document.getElementById(LEVEL + "-" + LETTER);
|
|
currLetter.appendChild(letterEvent);
|
|
const animateDiv = document.getElementById("div" + LEVEL + LETTER);
|
|
animateDiv.classList.add("addLetter");
|
|
setTimeout(() => {
|
|
animateDiv.classList.remove("addLetter");
|
|
}, "100");
|
|
if (LETTER < 5) {
|
|
LETTER++;
|
|
}
|
|
};
|
|
//delete letter function called by the backspace and the clickable delete button
|
|
const deleteLetter = () => {
|
|
if (LETTER > 0) {
|
|
LETTER--;
|
|
}
|
|
const deletedLetter = document.getElementById(LEVEL + "-" + LETTER);
|
|
deletedLetter.innerText = "";
|
|
};
|
|
|
|
//setting up the keyboard
|
|
for (let i = 0; i < letterArr.length; i++) {
|
|
const newBtn = document.createElement("button");
|
|
newBtn.classList.add("keyboard-btn");
|
|
newBtn.id = "key" + letterArr[i];
|
|
const letter = document.createTextNode(letterArr[i]);
|
|
newBtn.appendChild(letter);
|
|
keyboard.appendChild(newBtn);
|
|
|
|
//adding event listeners to the keys
|
|
newBtn.addEventListener("click", (e) => {
|
|
if (e.target.id.length === 4) {
|
|
const newGuess = document.createTextNode(e.target.innerText);
|
|
addLetter(newGuess);
|
|
}
|
|
});
|
|
}
|
|
|
|
//adding event listener to the delete button
|
|
const deleteBtn = document.getElementById("keyDEL");
|
|
deleteBtn.addEventListener("click", (e) => {
|
|
deleteLetter();
|
|
});
|
|
|
|
//the warning box that pops up
|
|
const createWarning = (message) => {
|
|
const warning = document.createElement("div");
|
|
warning.innerText = message;
|
|
wordle.appendChild(warning);
|
|
warning.classList.add("warning-div");
|
|
warning.classList.add("appear");
|
|
setTimeout(() => {
|
|
wordle.removeChild(warning);
|
|
}, "3000");
|
|
};
|
|
|
|
//the animation that gets called when you make an illegal guess
|
|
const shakeAnimation = () => {
|
|
currRow = document.getElementsByClassName("row" + LEVEL);
|
|
for (let i = 0; i < currRow.length; i++) {
|
|
currRow[i].classList.add("shake");
|
|
}
|
|
setTimeout(() => {
|
|
for (let i = 0; i < currRow.length; i++) {
|
|
currRow[i].classList.remove("shake");
|
|
}
|
|
}, "400");
|
|
};
|
|
|
|
//the animation that gets called when you make a legal guess
|
|
const animateRow = (colorArr) => {
|
|
const currRow = document.getElementsByClassName("row" + LEVEL);
|
|
for (let i = 0; i < 5; i++) {
|
|
const milliseconds = i * 3 + "50";
|
|
setTimeout(() => {
|
|
currRow[i].classList.add(colorArr[i]);
|
|
}, milliseconds);
|
|
currRow[i].style.animationDelay = i * 3 + "00ms";
|
|
currRow[i].classList.add("makeGuess");
|
|
}
|
|
};
|
|
|
|
//the function that gets called when you make a guess. It sends legal guesses to the makeGuess function
|
|
const guessFunction = () => {
|
|
if (LETTER < 5) {
|
|
shakeAnimation();
|
|
createWarning("Nicht genügend Buchstaben.");
|
|
} else if (LETTER === 5) {
|
|
let currWord = "";
|
|
for (let i = 0; i < LETTER; i++) {
|
|
currWord += document.getElementById(LEVEL + "-" + i).innerText;
|
|
}
|
|
if (!lowerWords.includes(currWord.toLowerCase())) {
|
|
shakeAnimation();
|
|
createWarning("Wort nicht in der Liste.");
|
|
} else {
|
|
makeGuess(currWord);
|
|
}
|
|
}
|
|
};
|
|
|
|
//the function that compares your guess to the word and ends the game
|
|
|
|
const makeGuess = (guess) => {
|
|
const guessWordArr = guess.split("");
|
|
const theWordArr = THEWORD.split("");
|
|
|
|
let colorArr = [0, 1, 2, 3, 4];
|
|
|
|
const letterCounts = {};
|
|
// first, I make 2 arrays with sub arrays that have the letters and their iterations in the word, or the amount of times that letter has been guessed.
|
|
theWordArr.forEach((element) => {
|
|
letterCounts[element] = (letterCounts[element] || 0) + 1;
|
|
});
|
|
|
|
const mappedLetterCounts = Object.entries(letterCounts).map(
|
|
([key, value]) => [key, value]
|
|
);
|
|
|
|
let guessCounts = mappedLetterCounts.map((eachLetter) => {
|
|
return [eachLetter[0], 0];
|
|
});
|
|
|
|
//GREEN
|
|
for (let i = 0; i < 5; i++) {
|
|
if (guessWordArr[i] === theWordArr[i]) {
|
|
colorArr.splice(i, 1, "green");
|
|
|
|
const letterToGreen = document.getElementById("key" + guessWordArr[i]);
|
|
letterToGreen.classList.add("green-letter");
|
|
|
|
guessCounts.forEach((eachLetter) => {
|
|
if (eachLetter[0] === guessWordArr[i]) {
|
|
eachLetter[1]++;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
//for every correct letter guess, I iterate the sub array with the corresponding letter.
|
|
|
|
//YELLOW
|
|
let currentGuessCount = 0;
|
|
let maxGuessCount = 0;
|
|
|
|
for (let i = 0; i < 5; i++) {
|
|
if (theWordArr.includes(guessWordArr[i])) {
|
|
//I then check the total amount of times the current letter appears in the guess array and compare it
|
|
//to the total amount of times it appears in the word so that no extra boxes are made yellow.
|
|
guessCounts.forEach((eachLetter) => {
|
|
if (eachLetter[0] === guessWordArr[i]) {
|
|
currentGuessCount = eachLetter[1];
|
|
}
|
|
});
|
|
|
|
let index = mappedLetterCounts.findIndex(
|
|
(subArr) => subArr[0] === guessWordArr[i]
|
|
);
|
|
|
|
mappedLetterCounts.forEach((eachLetter) => {
|
|
if (eachLetter[0] === guessWordArr[i]) {
|
|
maxGuessCount = eachLetter[1];
|
|
}
|
|
});
|
|
|
|
if (currentGuessCount < maxGuessCount) {
|
|
if (typeof colorArr[i] === "number") {
|
|
colorArr.splice(i, 1, "yellow");
|
|
guessCounts[index][1]++;
|
|
const letterToYellow = document.getElementById(
|
|
"key" + guessWordArr[i]
|
|
);
|
|
letterToYellow.classList.add("yellow-letter");
|
|
}
|
|
}
|
|
}
|
|
//turning keys gray
|
|
if (!theWordArr.includes(guessWordArr[i])) {
|
|
const letterToGray = document.getElementById("key" + guessWordArr[i]);
|
|
letterToGray.classList.add("gray");
|
|
}
|
|
}
|
|
//This array sends the yellow and green classes to the animate function. It's a bit weird but it's what I thought of, and hey it works.
|
|
animateRow(colorArr);
|
|
//endgame messages
|
|
if (guess === THEWORD) {
|
|
if (LEVEL === 0) {
|
|
createWarning("Unbelievable!");
|
|
} else if (LEVEL === 1) {
|
|
createWarning("Incredible!");
|
|
} else if (LEVEL === 2) {
|
|
createWarning("Stupendous!");
|
|
} else if (LEVEL === 3) {
|
|
createWarning("Bananas!");
|
|
} else if (LEVEL === 4) {
|
|
createWarning("Close one!");
|
|
} else if (LEVEL === 5) {
|
|
createWarning("Phew!");
|
|
}
|
|
const keyboard = document.getElementsByClassName("keyboard-btn");
|
|
END = true;
|
|
}
|
|
|
|
LEVEL++;
|
|
LETTER = 0;
|
|
|
|
if (LEVEL === 6) {
|
|
createWarning(THEWORD);
|
|
}
|
|
};
|
|
|
|
if(END == false){
|
|
//adding event listener to the enter button and the users keyboard
|
|
const enterBtn = document.getElementById("keyENTER");
|
|
enterBtn.addEventListener("click", guessFunction);
|
|
|
|
window.addEventListener("keydown", (e) => {
|
|
if (e.key === "Enter") {
|
|
guessFunction();
|
|
} else if (letterArr.includes(e.key.toUpperCase())) {
|
|
const letter = document.createTextNode(e.key.toUpperCase());
|
|
addLetter(letter);
|
|
} else if (e.key === "Backspace") {
|
|
deleteLetter();
|
|
}
|
|
});
|
|
} |